功能:passwd命令可以修改用户密码及密码过期时间等内容
语法:
passwd [option] [username]
常用选项:
-l 锁定用户 (仅仅root用户有权锁定其他用户)
--stdin 从标准输入读取密码字符串
-u 解锁用户(仅root有权)
-d 删除用户密码
-e 使用户密码立即过期,将在用户下次登录时强制更新密码
-n 修改密码的最短天数
-x 修改密码最长天数
-i 密码过期多少天后禁用账户
说明:
1)root可以修改任何用户的密码,普通用户只能修改自己的
2)root用户修改密码时,如果不符合系统密码规则,则给出警告信息,但密码设置仍然生效。普通用户修改密码时,如果使用弱密码,则给出告警信息,且修改无效。
范例
1)设置普通用户的密码
[root@fenfa ~]# useradd oldtest
[root@fenfa ~]# passwd oldtest
Changing password for user oldtest.
New password: 输入密码
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password: 再次输入密码
passwd: all authentication tokens updated successfully.
[root@fenfa ~]# passwd -S oldtest
oldtest PS 2018-01-11 0 99999 7 -1 (Password set, SHA512 crypt.) --该命令只能在root用户下运行
2)
[root@fenfa ~]# echo "Aa123321" |passwd --stdin oldtest
Changing password for user oldtest.
passwd: all authentication tokens updated successfully.
说明:在实际环境中,一般用这个方式来设置密码
3)要求oldtwo用户7天内不能更改密码,60天以后必须修改密码,过期前10天通知用户,过期后5天后禁止用户登录。
[root@fenfa ~]# passwd -n 7 -x 60 -w 10 -i 5 oldtwo
Adjusting aging data for user oldtwo.
passwd: Success
[root@fenfa ~]# passwd -S oldtwo
oldtwo LK 2018-01-11 7 60 10 5 (Password locked.)
-n :控制多少天内不能更改密码
-x : 控制多少天以后必须修改密码
3)[root@fenfa ~]# echo stu{02..05}|tr " " "\n" |sed -r 's#(.*)#useradd \1;pass=$((RANDOM+1000000));echo $pass|passwd --stdin \1#g'|bash
Changing password for user stu02.
passwd: all authentication tokens updated successfully.
Changing password for user stu03.
passwd: all authentication tokens updated successfully.
Changing password for user stu04.
passwd: all authentication tokens updated successfully.
Changing password for user stu05.
passwd: all authentication tokens updated successfully.