一、用户的基本概述

  • 用户指的是能够正常登录Linux或Windows系统,只不过Linux支持同一时刻多个用户同时登陆,且登陆后相互之间操作并不影响。
    用户为:超级用户与普通用户
    多个用户为一个组,一个用户可以加入多个组
  • 创建用户的意义在于:
  1. 系统上的每一个进程(运行的程序),都需要一个特定的用户运行
  2. 通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障。
  • 查看用户的信息
id				#查看当前用户的信息
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
id xzl_new		#查看其他用户的信息
uid=6001(xzl_new) gid=1003(devops) groups=1003(devops),1002(sa),1004(network)
  • Linux系统的用户信息一般存放在/etc/passwd,记录了用户的信息,而密码信息被存放在/etc/shadow。(不要轻易修改)
cat /etc/passwd |head -1
  root :   x    :    0   :   0  :  root   :   /root   :   /bin/bash 
#用户名 密码占位符  用户UID   组GID  注释信息   用户家目录      登录shell
cat /etc/shadow -n |sed -n '21p'
    21	tom:!!:18325:0:99999:7:2:66257:
#第一列:tom		用户名
#第二列:!!		!!表示是无密码,有密码则是一串加密的字符串,*代表无法登录的用户
#第三列:18325	最近一次变更密码,从1970年到现在过了多少天
#第四列:0		密码最少使用天数,0为无限制
#第五列:99999	密码最长使用天数,默认99999不过期
#第六列:7		密码到期前,系统会在密码到期前7天提醒变更密码
#第七列:2		密码到期后,密码过期后2天强制提示变更用户密码。空格则表示无提示
#第八列:66257	账户失效时间,从1970年起,账户在这个日期前可使用,到期后失效
  • UID的潜规则
用户UID 系统中的含义
0 超级管理员,最高权限,有着极强的破坏能力
1~200 系统用户,用来运行系统自带的进程,默认已创建
201~999 系统用户,用来运行用户安装的程序,所以此类用户无需登录系统
1000+ 普通用户,正常可以登陆系统的用户,权限比较小,能执行的任务有限

二、用户相关命令

  • 创建用户
    useradd/adduser+用户名称+选项=创建成功
    选项:
    -u : 指定要创建用户的UID,不允许冲突
    -g :指定要创建用户默认组
    -G :指定要创建用户附加组,逗号隔开可添加多个附加组
    -d :指定要创建用户家目录
    -s :指定要创建用户的bash shell
    -c :指定要创建用户注释信息
    -M :给创建的用户不创建家目录
    -r :创建系统账户,默认无家目录
    :创建mike用户,UID5001,基本组为students,附加组为sa,注释信息为’2019 new student’,登录shell:/bin/bash。
groupadd students																#创建组
groupadd sa																		#创建组
useradd mike -u 5001 -g students -G sa -c '2019 new students' -s /bin/bash		#创建用户
id mike																			#检查用户
uid=5001(mike) gid=1001(students) groups=1001(students),1002(sa)
tail -1 /etc/passwd																#检查passwd文件
mike:x:5001:1001:2019 new students:/home/mike:/bin/bash
  • 修改用户信息
    usermod+用户名称+选项=修改成功
    选项:
    -u :指定要修改用户的UID
    -g :指定要修改用户基本组
    -G :指定要修改用户附加组,使用逗号隔开多个附加组, 覆盖原有的附加组
    -aG :追加附加组
    -d :指定要修改用户家目录
    -s :指定要修改用户的bash shell
    -c :指定要修改用户注释信息
    -l :指定要修改用户的登陆名
    -L :指定要锁定的用户
    -U :指定要解锁的用户
    **例:**修改mike用户的UID6001,组改为devops,附加组增加一个network,用户家目录改为/opt/mike,登录shell:/bin/sh。
groupadd devops															#创建组
groupadd network														#创建组
usermod mike -u 6001 -g devops -G network,sa -d /opt/mike -s /bin/sh	#修改用户信息
id mike																	#检查
uid=6001(mike) gid=1003(devops) groups=1003(devops),1002(sa),1004(network)
grep 'mike' /etc/passwd													#检查/etc/passwd文件
mike:x:6001:1003:2019 new students:/opt/mike:/bin/sh
#(修改用户信息附加组位置也可以用添加选项 -aG network)
  • 删除用户
    userdel+用户名+选项=删除成功
    选项:-r :删除用户的家目录,以及用户的邮件(工作环境中最好不要用,慎用!)
  • 检查用户登录情况:who,whoami,w

三、密码的相关命令

  • 使用passwd命令对密码进行操作
    passwd :给当前用户修改密码
    passwd+用户名 :给用户修改密码
    (1.普通用户只允许变更自己的密码,无法修改其他人密码,并且密码长度必须8位字符2.管理员用户允许修改任何人的密码,无论密码长度多长或多短。)
  • 通过passwd --stdin读取输出结果,将结果赋值给用户
echo '123' |passwd --stdin mike		#给mike密码设置为123
echo $RANDOM |md5sum |cut -c 2-10	#生成一个随机数并且只要2-10位
  • mkpasswd生成随机自负串
    选项:
    -l :设定密码长度,
    -d :数子,
    -c :小写字母,
    -C : 大写字母,
    -s : 特殊字符
yum install expect -y					#下载组件
mkpasswd -l 10 -d 2 -c 3 -C 3 -s 2		#生成10个随机数,2个数字,3个小写字母,3个大写字母,2个特殊字符

推荐下载软件:lastpass