1.用户的理解
用户就是系统使用者的身份
在系统中用户存储为若干串字符+若干个系统配置文件
用户信息涉及到的系统配置文件:
/etc/passwd ##用户信息
用户:密码(x表示加密):uid:gid:说明:家目录:用户使用的shell
/etc/shadow ##用户认证信息
用户:密码(乱码表示加密,512对称加密,!!表示该用户被冻结):最后一次密码修改该时间:最短有效期:最长有效期(999即无限期,超时不改会被冻结):警告期(7即7天提醒修改密码):非活跃期:帐号到期日
/etc/group ##组信息
组名称:组密码:组id:附加组成员
/etc/gshadow ##组认证信息
/home/username ##用户家目录
/etc/skel/.* ##用户骨架文件
注意: /etc/skel/ 这个目录中的所有文件或目录在用户新建的过程中会被复制到用户的家目录里
这个目录中默认存在的隐藏文件是用户的默认配置文件
<用户存在的意义>
用户管理是对文件进行管理,用户的存在是为了回收权力
<组存在的意义>
组的存在是为了共享权力,组和用户是两个不同的机制
<组的分类>
初始组:用户出生时就加入的组
附加组:用户后期加入的组
2.用户的查看
命令 | 功能 |
---|---|
whoami | 查看当前用户 |
id -username | 查看指定用户信息 |
id -a | 显示所有信息 |
id -u | 显示用户uid(创建就有的id) |
id -g | 显示用户gid(初始组id) |
id -G | 显示用户所有组(初始组+附加组)的id |
id -n | 查看用户组名(与g/G连用) |
3.用户的管理
(1)用户的建立
参数 | 功能 |
---|---|
useradd -u | 指定用户uid |
useradd -g | 指定用户初始组信息 |
useradd -G | 指定附加组 |
useradd -c | 用户说明 |
useradd -d | 用户家目录 |
useradd -s | 用户所使用的shell,/etc/shells记录了用户能使用shell的名字 |
(2)查看命令当前的状态
watch -n 1 每秒更新一次
注:同时监控多个命令时可以用’ ‘将watch -n 1后的命令括起来,’ '里的命令可以用;隔开
watch -n 1 ‘tail -n 6 /etc/passwd /etc/group;ls -l /home/’
##每秒更新一次并查看passwd和group文件的后六行
当以上参数在同一命令中生效时:
(2)用户的删除
userdel -r username ##-r表示删除用户信息及用户的系统配置文件
当我们删除ld1的时候,发现他的组与其他成员共用,且上面显示与ld1共用的组有ld3和ld6,因此需要把这两个用户删除后组1111才会被删除掉。
(3)组的建立与删除
命令 | 功能 |
---|---|
groupadd 组名 | 建立组 |
groupadd -g 组名 | 建立设定好id的组 |
groupdel 组名 | 删除组 |
注意:若用户存在,则不能单独删除组
若在删除用户时没有使用-r则删除不彻底,
需用find命令找到用户的邮件和home下的档案用rm -rf彻底删除
(4)用户的切换
<1> su 用户名称 ##切换用户却不切换工作环境
<2> su - 用户名,其中 “-” 标示在用户身份切换时同时切换当前用户的环境
注意:su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要密码。
4.用户信息更改
usermod 参数 用户
参数 | 功能 |
---|---|
-l | 更改用户名称 |
-u | 更改用户uid |
-g | 更改用户gid |
-G | 更改附加组 |
-aG | 添加附加组 |
-c | 更改说明 |
-d | 更改家目录指定 |
-md | 更改家目录指定及家目录名称 |
-s | 更改shell |
-L | 冻结帐号 |
-U | 解锁帐号 |
usermod -l 新用户名 旧用户名
注意:-g、-G和-aG使用时要注意这个组必须存在
更改附加组-G和添加附加组-aG
注意:在原附加组不变的情况下添加附加组-aG会把原来的附加组删掉,然后添加新的附加组
usermod -G " " username ##清空该用户的所有附加组
双引号单引号均可(仅强弱引用之别)
注意:建立一个用户的同时会建立一个对应的组,修改用户的名字时原来组的名字不会变,当修改信息与原来信息相同时系统会提示usermod: no changes
usermod -s username ##更改用户的shell
注意:更改shell时shell必须是系统中存在的shell,查看系统中的shell用 cat /etc/shells
usermod -d 家目录 用户名 ##只更改家目录的指向,名字不变
注意:这时切换到该用户,会出现问题,这是因为该用户的家目录指向改变了,但系统中他的家目录还是以前的名字。
usermod -md 家目录 用户名 ##改变家目录的名字和指向
usermod -L username ## 锁定用户
注意:冻结和解锁用户前需要设定密码
当用户冻结时,登陆界面没有该用户
usermod -U username ##解冻用户
重新打开该用户出现
5.用户密码
命令 | 功能 |
---|---|
passwd username | 修改用户密码 |
passwd -l username | 锁定用户密码(密码前加!!) |
passwd -u username | 解锁密码(去掉!!) |
passwd -d username | 删除密码 |
passwd -S username | 查看用户密码信息 |
ld用户密码加锁,redhat用户密码不加锁
passwd -S username ## 查看用户密码信息
当用户密码不为空时会显示密码的加密方式(SHA512即512对称加密)
注意: 普通用户改密码时
(1)必须知道当前用户原始密码
(2)密码不能和帐号名称相似
(3)密码不能是纯数字或纯字母
(4)密码不能是有序的字母和数字的组合
超级用户无此限制,只是有提示,仍然可以修改成功。
6.用户认证信息的控制
命令 | 功能 |
---|---|
chage -d | 用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码 |
passwd -e | 同上 |
注意:当密码最后一次执行时间被更改时再次登陆该用户系统会强制更改密码
登陆该用户,提示修改密码,先输入旧密码
然后输入新密码两次
命令 | 功能 |
---|---|
chage -m | 最短有效期 |
passwd -n | 同上 |
操作前需要将最短有效期改成一个大于0的数
由上可知:修改后在指定的时间内普通用户无法修改自身密码,当用户在最短有效期内修改自己的密码时系统会提示需要再等更长的时间,但超级用户可以修改
命令 | 功能 |
---|---|
chage -M | 最长有效期 |
passwd -x | 同上 |
passwd -x 30 ld ##设定ld用户在30天内必须改密码
chage -M 30 ld ##同上
命令 | 功能 |
---|---|
chage -W | 警告期 |
passwd -w | 同上 |
passwd -w 2 ld ##密码过期前两天有警告
chage -W 2 ld
命令 | 功能 |
---|---|
chage -I(大写 i) | 用户非活跃天数 |
passwd -i | 同上 |
注意:默认的非活跃天数是-1,0表示到期当天还可以使用
passwd -i 10 ld ##密码过期后仍可登陆系统的天数
chage -I 10 ld
命令 | 功能 |
---|---|
chage -E | 帐号到期日 xxxx-xx-xx |
chage -E 2020-11-11 ld ##ld用户在2020-11-11日会被冻结
注意:passwd VS chage
passwd可以修改密码,chage 不可以修改密码
passwd不可以修改密码到期时间
chage是专门更改用户密码信息的命令