七:用户信息的更改
1.改用户名:usermod -l
2.usermod -u 更改id
代码: usermod -g 21 linux
linux:x:1001:21::/home/lee:/bin/bash
3.usermod -G 更改用户的附加组
给一个附加组身份;更改附加组(可以跟名字也可以跟数字)
代码: usermod -G tcpdump linux
[root@localhost 桌面]# usermod -G tcpdump linux
[root@localhost 桌面]# id linux
uid=1001(linux) gid=21(slocate) 组=21(slocate),72(tcpdump)
tcpdump:x:72:linux
72代表的是tcpdump,当输入:usermod -G 21 linux时,将会清除所有附加组,改为指定的组
[root@localhost 桌面]# id linux
uid=1001(linux) gid=21(slocate) 组=21(slocate)
保证原始附加组存在的情况下,添加新的附加组:
4. usermod -aG 额外添加
[root@localhost 桌面]# usermod -aG 21 linux
[root@localhost 桌面]# id linux
uid=1001(linux) gid=21(slocate) 组=21(slocate),72(tcpdump)
5.usermod -c 添加说明文字
[root@localhost 桌面]# usermod -c "hello linux" linux
想清空说明文字:
[root@localhost 桌面]# usermod -c "" linux
这样就建立出来了
6. usermod -d 指定用户家目录的指向,实际上并没有改变家目录名称
用户信息文件中的字符串
7.usermod -md 重命名
目录和指向一起变
可以看出来,都变化了,变成了haha
8.usermod -s 更改默认的shell
9.usermod -L 冻结账号
10. usermod -U 解锁(9.10,都是密码,认证信息的更改)
八:用户认证信息文件
man 5 shadow 看shadow的解释
监视观察以后,对此使用,修改密码
1. passwd -S username 查看密码状态
[root@localhost 桌面]# watch -n 1 "tail -n 1 /etc/shadow;echo @@@@;passwd -S lee"
[root@localhost 桌面]# passwd -S lee
lee LK 2021-12-28 0 99999 7 -1 (密码已被锁定。)
[root@localhost 桌面]# passwd lee
更改用户 lee 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
2. passwd username 更改密码
九:如何修改用户密码
一行里执行两个命令,用分号隔开,再加echo @@@@分割
[root@localhost 桌面]# watch -n 1 "tail -n 1 /etc/shadow;echo @@@@;passwd -S lee"
Every 1.0s: tail -n 1 /etc/shadow;echo... localhost.localdomain: Tue Dec 28 18:03:58 2021
lee:$6$V3mh5urbvjeeVGOL$qhJnGG1SB7vJBJE45dFoA6HWxmbVebH2YH/qFQw6t.ZXoxZZlXhptKSFqMLNuJscmh
Ag4MiI/DEu/YPBV3zar0:18989:0:99999:7:::
@@@@
lee PS 2021-12-28 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
超级用户修改密码:
[root@localhost 桌面]# passwd -S lee
lee PS 2021-12-28 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost 桌面]# passwd lee
更改用户 lee 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
普通用户修改密码:
[root@localhost 桌面]# su - lee
[lee@localhost ~]$ passwd lee
passwd:只有 root 用户才能指定用户名。
[lee@localhost ~]$ passwd
更改用户 lee 的密码 。
Current password:
新的 密码:
无效的密码: 这个密码和原来的相同
passwd: 鉴定令牌操作错误
非交互式密码更改方式:设定lee 的密码为westos (--stdin 意为标准输入)
[root@localhost 桌面]# echo westos | passwd --stdin lee
更改用户 lee 的密码 。
passwd:所有的身份验证令牌已经成功更新。
删除用户密码:
[root@localhost 桌面]# passwd -d lee
清除用户的密码 lee。
passwd: 操作成功
十:修改用户认证属性
冻结密码:
[root@localhost 桌面]# passwd -l lee
锁定用户 lee 的密码 。
passwd: 操作成功
密码前面两个感叹号,证明已冻结
lee:!!$6$kg8mRdVrMGGYGUWe$8xYv6G3Vwjg1vOJgUHymvpGTMuuWtCDWD/H2p/xsAXiciY2HOnB1uX2gBmsBDXFA0Gcj/EoFQ
um6w39C0DR0S0:18989:0:99999:7:::
解锁:
[root@localhost 桌面]# passwd -u lee
解锁用户 lee 的密码。
passwd: 操作成功
大写也可以冻结,解锁:
[root@localhost 桌面]# usermod -L lee
[root@localhost 桌面]# usermod -U lee
更改密码最后一次被修改的时间,即下次启动时强制改密码:
两种方法见下面:
[root@localhost 桌面]# passwd -e lee
正在终止用户 lee 的密码。
passwd: 操作成功
[root@localhost 桌面]# chage -d 0 lee
更改最短有效期:
[root@localhost 桌面]# passwd -n 1 lee
调整用户密码老化数据lee。
passwd: 操作成功
[root@localhost 桌面]# su - lee
[lee@localhost ~]$ passwd
更改用户 lee 的密码 。
Current password:
当前密码:
passwd: 鉴定令牌操作错误
错误的原因:需要等待一天(因为设置的是1天)
更改最长有效期:
更改警告期:
更改非活跃天数:
-1代表没有非活跃天数
账号认证到期时间;不能用passwd修改,只能:
(最后一位本来没有,但是天数变成了18748)
十一:用户权力下放:
visudo打开文件,插入xizi,退出后:
[root@localhost 桌面]# visudo
>>> /etc/sudoers: 语法错误 near line 9 <<<
现在做什么?
visudo: 此命令是用vi编辑/etc/sudoers文件的工具(特点:会语法报错)
特点是提供语法检测
表示第九行有错误。
[root@localhost 桌面]# visudo
>>> /etc/sudoers: 语法错误 near line 9 <<<
现在做什么?e
[root@localhost 桌面]# visudo
[root@localhost 桌面]#
删除以后退出,不再提示错误
,通过下面查到的路径,编写visudo文件如下:
[root@localhost 桌面]# hostname
localhost.localdomain
[root@localhost 桌面]# which useradd
/usr/sbin/useradd
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
lee localhost.localdomain=(root) /usr/sbin/useradd
上面代码含义:lee用户可以在localhost主机中以root 用户身份执行useradd命令
同理编写userdel 权限
root ALL=(ALL) ALL
lee localhost.localdomain=(root) /usr/sbin/useradd, /usr/sbin/userdel
完成后就可以以lee身份使用root权限的userdel了
另外建立一个身份xizi,实验如何让第一次操作也免密(添加NOPASSWD: )
lee localhost.localdomain=(root) /usr/sbin/useradd, /usr/sbin/userdel
xizi localhost.localdomain=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
失误了一波,导致警告,但是可以看出操作是免密码的
[root@localhost 桌面]# su - xizi
[xizi@localhost ~]$ sudo useradd test1
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
正在创建信箱文件: 文件已存在
[xizi@localhost ~]$ sudo useradd test2
[xizi@localhost ~]$