一、passwd命令简介

  passwd实用程序用于更新用户的身份验证令牌。这个任务是通过调用LinuxPAM和Libuser API来实现的。本质上,它将自己初始化为使用Linux PAM的“passwd”服务,并利用配置的密码模块进行身份验证,然后更新用户的密码。passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。一般情况下我们使用passwd命令修改密码需要确认密码,交互式环境操作没有关系,如果是使用脚本批量修改密码怎么处理呢?事实上passwd提供了stdin参数可以直接修改密码,无需确认密码,简化和便捷了批量修改密码的工作。

二、使用示例

1、获取命令帮助

[root@s7 ~]# passwd --help

2、passwd修改普通用户密码

[wuhs@s7 ~]$ passwd
Changing password for user wuhs.
Changing password for wuhs.
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

3、显示账户密码相关信息

[root@s7 ~]# passwd -S wuhs
wuhs PS 2022-01-01 0 99999 7 -1 (Password set, MD5 crypt.)

4、使用root修改普通用户密码

#使用root可以修改普通用户密码且不需要知道原密码,不满足密码策略要求也可以修改成功,普通用户修改自己密码必须知道原密码,新密码必须满足密码策略规则要求。
[root@s7 ~]# passwd wuhs
Changing password for user wuhs.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

5、删除指定账户密码

[root@s7 ~]# passwd -d wuhs
Removing password for user wuhs.
passwd: Success
[root@s7 ~]# passwd -S wuhs
wuhs NP 2022-01-02 0 99999 7 -1 (Empty password.)

6、锁定用户

[root@s7 ~]# passwd -l wuhs
Locking password for user wuhs.
passwd: Success
#使用-l锁定用户后普通用户切换登录会密码验证失败
[sunru@s7 ~]$ su - wuhs
Password:
su: Authentication failure

7、解锁用户

[root@s7 ~]# passwd -u wuhs
Unlocking password for user wuhs.
passwd: Success
#使用-u解锁后登录成功
[sunru@s7 ~]$ su - wuhs
Password:
Last login: Sun Jan 2 14:41:30 CST 2022 on pts/1
Last failed login: Sun Jan 2 14:43:00 CST 2022 on pts/1
There were 3 failed login attempts since the last successful login.

8、强制用户下次登录时必须修改口令

[root@s7 ~]# passwd -e wuhs
Expiring password for user wuhs.
passwd: Success
在这里插入图片描述

9、设置用户wuhs密码过期策略

#设置密码有效期30天,密码过期7天后必须修改密码
[root@s7 ~]# passwd -x 30 -n 7 -i 7 wuhs
Adjusting aging data for user wuhs.
passwd: Success
#使用cat /etc/shadow查看密码过期策略配置,默认是最小有效期0天,最大有效期99999天,口令到期提前7天告警,无密码到期后强制修改要求。
在这里插入图片描述

10、密码过期后更新密码

[root@s7 ~]# passwd -k wuhs
Changing password for user wuhs.
Changing password for wuhs.
(current) UNIX password:
You must wait longer to change your password
passwd: Authentication token manipulation error
在这里插入图片描述

11、使用stdin方式修改密码

#使用passwd user方式修改密码需要确认密码,在脚本操作中处理很困难,我们可以通过stdin参数修改密码,可以一次完成密码设置或修改。
[root@s7 ~]# echo “123456” |passwd --stdin wuhs
Changing password for user wuhs.
passwd: all authentication tokens updated successfully.

三、使用语法及参数说明

1、使用语法

用法:#passwd [OPTION…] <accountName>

2、参数说明

参数参数说明
-k, --keep-tokens更新只能发送在过期之后
-d, --delete删除密码(root only)
-l, --lock停止账号使用(root only)
-u, --unlock启用已被停止的账户(root only)
-e, --expire强迫用户下次登录时必须修改口令(root only)
-f, --force强制执行
-x, --maximum=DAYS指定口令最长存活期(root only)
-n, --minimum=DAYS指定口令最短存活期(root only)
-w, --warning=DAYS口令要到期提前警告的天数(root only)
-i, --inactive=DAYS口令过期后多少天停用账户(root only)
-S, --status显示密码信息(root only)
–stdin从stdin读取新密码(root only)
-?, --help显示帮助信息
–usage显示简短的使用信息
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐