文章目录
一、passwd命令
设置用户口令的命令 passwd
用法:passwd [选项] [username]
(1) passwd:修改用户自己的密码;
(2) passwd USERNAME:修改指定用户的密码,但仅root有此权限;
选项:
- -l, -u:锁定和解锁用户;锁定后的用户其在shadow文件对应用户行的密码前会有两个感叹号"!!"进行标识,解锁后便不存在
- -d:清除用户密码串;清除后的用户其在shadow文件对应用户行的第二列显示加密后的密码便为空,即什么也不显示
- -i DAYS:在密码过期后多少天,用户被禁掉,后面接数字;对应于shadow文件该用户信息行的第7列
说明:此字段规定的宽限天数是 10,则代表密码过期 10 天后禁用;如果是 0,则代表密码过期后立即禁用 ;如果是 -1,则代表密码永远不会禁用 - -n DAYS:两次密码修改的最小天数,后面接数字;对应于shadow文件该用户信息行的第4列
- -x DAYS:密码的最长使用期限,即密码有效期,对应于shadow文件该用户信息行的第5列
- -w DAYS:在距多少天提醒用户修改密码,后面接数字 ,对应于shadow文件该用户信息行的第6列
- –stdin:echo “PASSWORD” | passwd --stdin USERNAME 从标准输入获取密码
- -S:简短查看某用户的口令状态信息
- -e:终止指名帐户的密码
【例 1】
锁定用户后,用户便无法登录 (对应于usermod -L)
[root@admin ~]# cat /etc/shadow |grep dxk
dxk:$6$5d3.bTJT$PfGZFkpy6HiKJSGmjmYoqIbsdqrT4G9GbWI5s8ixWpL51I2OtiETRUW0UGnzu08qW/AbBVd1Uo.Zw.1UZ6p6w0:18471:11:1111:9:100::
[root@admin ~]# passwd -l dxk
锁定用户 dxk 的密码 。
passwd: 操作成功
[root@admin ~]# cat /etc/shadow |grep dxk #对比着看,密码前出现两个感叹号
dxk:!!$6$5d3.bTJT$PfGZFkpy6HiKJSGmjmYoqIbsdqrT4G9GbWI5s8ixWpL51I2OtiETRUW0UGnzu08qW/AbBVd1Uo.Zw.1UZ6p6w0:18471:11:1111:9:100::
解锁用户 (对应于usermod -U)
[root@admin ~]# passwd -u dxk
【例 2】
清除密码后,密码将显示为空,且用户无法登录使用
[root@admin ~]# cat /etc/shadow | grep admin094
admin094:$6$8bcFTwAS$8TvVTfpP0q10QowX67W7EJ2opufeHlvbscSx77NWhzkQrgFHF8IWjL9CPFW40dAl0kdEM7CJndayRTHlSFcat1:18470:0:99999:7:::
[root@admin ~]# passwd -d admin094
清除用户的密码 admin094。
passwd: 操作成功
[root@admin ~]# cat /etc/shadow | grep admin094
admin094::18471:0:99999:7:::
需要root用户重新为该用户设置密码方能使用
【例 3】
设置用户在密码过期后19天,该用户被禁掉
[root@admin ~]# passwd -i 19 admin094
调整用户密码老化数据admin094。
passwd: 操作成功
[root@admin ~]# cat /etc/shadow | grep admin094
admin094:$6$Y2gnGihm$NMte5QCS5qVyC85fbkBK4nnoBgCeBl3yIaPTAT3NFRflNdVvN8LZnJZx/zWTkz//FItUybwinIx3X7iJaMLnh/:18471:0:99999:7:19::
#对应于第7列
设置该用户两次密码修改的最小天数为66,0表示随时可以修改
[root@admin ~]# passwd -n 66 admin094
调整用户密码老化数据admin094。
passwd: 操作成功
[root@admin ~]# cat /etc/shadow | grep admin094
admin094:$6$Y2gnGihm$NMte5QCS5qVyC85fbkBK4nnoBgCeBl3yIaPTAT3NFRflNdVvN8LZnJZx/zWTkz//FItUybwinIx3X7iJaMLnh/:18471:66:99999:7:19::
#对应于第4列
设置其密码有效期为90,这个时间是从1970年算起的时间天数,超过这个时间密码将过期,默认为99999即也就是 273 年,可认为是永久生效。如果改为 90,则表示密码被修改 90 天之后必须再次修改,否则该用户即将过期
[root@admin ~]# passwd -x 90 admin094
调整用户密码老化数据admin094。
passwd: 操作成功
[root@admin ~]# cat /etc/shadow | grep admin094
admin094:$6$Y2gnGihm$NMte5QCS5qVyC85fbkBK4nnoBgCeBl3yIaPTAT3NFRflNdVvN8LZnJZx/zWTkz//FItUybwinIx3X7iJaMLnh/:18471:66:90:7:19::
#对应于第5列
并设置距3天提醒用户修改密码
默认设置为7天。当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户 “再过 n 天你的密码就要过期了,请尽快重新设置你的密码!”
[root@admin ~]# passwd -w 3 admin094
调整用户密码老化数据admin094。
passwd: 操作成功
[root@admin ~]# cat /etc/shadow | grep admin094
admin094:$6$Y2gnGihm$NMte5QCS5qVyC85fbkBK4nnoBgCeBl3yIaPTAT3NFRflNdVvN8LZnJZx/zWTkz//FItUybwinIx3X7iJaMLnh/:18471:66:90:3:19::
#对应于第6列
修改此用户的密码为123456
[root@admin ~]# echo "123456" | passwd --stdin admin094
更改用户 admin094 的密码 。
passwd:所有的身份验证令牌已经成功更新。
【例 4】
查看dxk用户的口令状态信息
[root@admin ~]# passwd -S dxk
dxk PS 2020-07-28 11 1111 9 100 (密码已设置,使用 SHA512 算法。)
二、chage命令
更改用户密码过期信息的命令chage
用法:chage [选项] 登录名
选项:
-
-d:指定密码最后修改日期;对应于shadow文件该用户信息行的第2列
-
-E:密码到期的日期,过了这天,此账号被禁掉不可用,对应于shadow文件的第8列(账户失效时间,单位是对应于计算机元年的天数,若改为 -1 则账户永不过期)
-
-W:密码过期前,提前收到警告信息的天数,同passwd -w;对应于shadow文件该用户信息行的第6列
-
-m:密码可以更改的最小天数,0表示任意时刻都可以修改。同passwd -n;对应于shadow文件该用户信息行的第4列
-
-M:密码保持有效的最大天数,同passwd -x;对应于shadow文件该用户信息行的第5列
-
-l:显示帐户年龄信息
【例 】
指定用户的密码最后修改日期为20000,即自1970年1月1日后的20000天的这个日期
[root@admin ~]# chage -d 20000 admin093
[root@admin ~]# cat /etc/shadow | grep admin093
admin093:$6$tKo9iZ6i$CZt7mkQUDKueMZzKAgP.n4gKFjAtOvurukp02W2iNTdc0eWxrZ8J1CsCyMGfwf3ufx1EcN0OsYJPNZlnqO1L9.:20000:0:99999:7:::
[root@admin ~]# date -d "1970-01-01 20000 days"
2024年 10月 04日 星期五 00:00:00 CST
查看dxk用户年龄信息
[root@admin ~]# chage -l dxk
最近一次密码修改时间 :7月 28, 2020
密码过期时间 :8月 13, 2023
密码失效时间 :11月 21, 2023
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :11
两次改变密码之间相距的最大天数 :1111
在密码过期之前警告的天数 :9
其实就对应于shadow文件中的信息:
[root@admin ~]# cat /etc/shadow | grep dxk
dxk:$6$fSU1OoQi$xz.jFCpOKSVAp/7hz4sJCDhl5EdHvh8WYg9oaJ57XUumECiTWlnHoc3VsBXts8xyS0Puswb1oJZhR.hljziec/:18471:11:1111:9:100::
三、id 命令
查询用户的UID、GID 和附加组信息的命令id
用法:id [OPTION]… [USER]
选项:
- -u: 仅显示有效的UID;
- -g:仅显示用户的基本组ID;
- -G:仅显示用户所属的所有组的ID,(包括 基本组和附加组)
- -n:显示名字而非ID;(必须和-u或-g联合使用)
【例 1】
查看当前用户的用户及用户组相关信息
[dxk@admin ~]$ id