一、命令详解
1.命令说明
passwd
命令用于更改设置用户密码。本质上,它将自己初始化为使用Linux PAM的“passwd”服务,并利用配置的密码模块进行身份验证,然后更新用户的密码。
passwd
命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
通过 useradd 命令创建的用户初始是没有密码的,需要通过
passwd
命令来为其设置密码,未设置密码的用户不能登录系统。
注意:
超级用户(root)可以为自己和其他用户设置密码。
而普通用户只能为自己设置密码,且密码要求足够复杂。
超级用户和普通用户为自己设置口令,直接用passwd
命令,不用加用户名。
2.语法格式
passwd [option] [accountName]
passwd [选项] [用户名字]
3.选项描述
-k, --keep-tokens keep non-expired authentication tokens
#保留未过期的身份验证令牌
-d, --delete delete the password for the named account (root only)
#删除命名帐户的密码(仅限root用户)
-l, --lock lock the password for the named account (root only)
#锁定命名帐户的密码(仅限root用户)
-u, --unlock unlock the password for the named account (root only)
#解锁命名帐户的密码(仅限root用户)
-e, --expire expire the password for the named account (root only)
#指定帐户的密码过期(仅限root用户)
-f, --force force operation
#强制执行
-x, --maximum=DAYS maximum password lifetime (root only)
#最大密码有效期(仅限root用户)
-n, --minimum=DAYS minimum password lifetime (root only)
#最小密码生存期(仅限root用户)
-w, --warning=DAYS number of days warning users receives before password
expiration (root only)
#口令密码要到期提前警告的天数
-i, --inactive=DAYS number of days after password expiration when an
account becomes disabled (仅限root用户)
-S, --status report password status on the named account (root only)
#口令过期后多少天停用账户(仅限root用户)
--stdin read new tokens from stdin (root only)
#从stdin读取新密码(root only)
二、命令示例
案例1:修改自身密码 passwd
无论是root,还是普通用户,改密码都可以直接输入
passwd
。
普通用户修改自己的密码时,会要求先输入原来的密码,只有通过验证才可以修改,并且普通用户修改的密码要足够复杂。
[cyan@centos7 ~]$ passwd
Changing password for user cyan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
案例2:设置普通用户的密码 passwd users
使用root可以修改普通用户密码,且不需要知道原密码,不满足密码策略要求也可以修改成功。
普通用户修改自己密码必须知道原密码,新密码必须满足密码策略规则要求。
[root@centos7 ~]#passwd cyan
Changing password for user cyan.
New password:
BAD PASSWORD: The password is a palindrome #不满足要求也能成功
Retype new password:
passwd: all authentication tokens updated successfully.
案例3:显示账户密码相关信息 passwd -S
[root@centos7 ~]#passwd -S cyan
cyan PS 2023-03-06 0 99999 7 -1 (Password set, SHA512 crypt.)
cyan 表示用户名。
PS 表示密码,不是以明文显示。
2023-03-06 表示密码设定时间。
0 表示密码修改间隔时间。
99999 表示密码有效期。
7 表示警告时间。
-1 表示密码不失效。
SHA512 crypt 表示密码使用 SHA512 算法进行的加密。
案例4:删除指定账户密码 passwd -d
[root@centos7 ~]#passwd -d cyan
Removing password for user cyan.
passwd: Success
案例5:锁定用户 passwd -l
使用
passwd -l
锁定用户后,普通用户切换登录会密码验证失败。
[root@centos7 ~]#passwd -l cyan
Locking password for user cyan.
passwd: Success
案例6:解锁用户 passwd -u
[root@centos7 ~]#passwd -u cyan
Unlocking password for user cyan.
passwd: Warning: unlocked password would be empty.
passwd: Unsafe operation (use -f to force)
案例7:强制用户下次登录必须修改口令 passwd -e
[root@centos7 ~]#passwd -e cyan
Expiring password for user cyan.
passwd: Success
案例8:设置用户密码策略 -x -n -i
-x 设置密码有效期60天。
-n 密码过期7天后必须修改密码。
-i 口令过期后7天停用账户。
[root@centos7 ~]#passwd -x 60 -n 7 -i 7 cyan
Adjusting aging data for user cyan.
passwd: Success
[root@centos7 ~]#cat /etc/shadow |grep cyan
cyan:!!:0:7:60:7:7::