Linux 命令:passwd
Linux passwd
命令详细教程
passwd
(Password Change)是 Linux 系统中用于管理用户密码的核心命令。它允许用户修改自己的密码,或由系统管理员重置其他用户的密码。本文将详细介绍其用法、选项及安全配置。- 资料已经分类整理好:
https://pan.quark.cn/s/26d73f7dd8a7
一、基本语法
passwd [选项] [用户名]
- 核心功能:
- 修改当前用户的密码(无参数时)。
- 管理员修改其他用户的密码(需指定用户名)。
- 配置密码过期策略、锁定/解锁账户等。
二、常用选项
选项 | 功能描述 |
---|---|
-l | 锁定用户账户(L ock) |
-u | 解锁用户账户(U nlock) |
-d | 删除用户密码(D elete),使用户可以无密码登录(慎用) |
-e | 强制用户下次登录时修改密码(E xpire) |
-n 天数 | 设置密码最短使用天数(N ot before) |
-x 天数 | 设置密码最长使用天数(E X pire) |
-w 天数 | 设置密码过期前的警告天数(W arning) |
-i 天数 | 设置密码过期后的宽限天数(I nactive) |
--stdin | 从标准输入读取密码(用于脚本自动化) |
三、实际操作示例
1. 修改当前用户密码
passwd # 系统会提示输入当前密码(若已设置)和新密码
交互过程示例:
Changing password for user testuser.
(current) UNIX password: # 输入当前密码
Enter new UNIX password: # 输入新密码
Retype new UNIX password: # 再次输入确认
passwd: password updated successfully # 密码更新成功
2. 管理员修改其他用户密码
sudo passwd username # 管理员无需知道原密码,直接设置新密码
3. 锁定/解锁用户账户
sudo passwd -l username # 锁定账户,无法登录
sudo passwd -u username # 解锁账户,恢复正常
- 锁定后,用户密码会被加密存储为
!
或*
(取决于系统)。
4. 强制用户下次登录时修改密码
sudo passwd -e username # 下次登录时必须修改密码
5. 从标准输入设置密码(脚本自动化)
echo "newpassword" | sudo passwd --stdin username # 危险!密码可能泄露在命令历史中
- 安全替代方案(使用
chpasswd
):echo "username:newpassword" | sudo chpasswd
四、密码策略配置
Linux 通过 /etc/login.defs
和 PAM(Pluggable Authentication Modules)模块管理密码策略。
-
设置密码复杂度(通过 PAM 模块)
编辑/etc/pam.d/common-password
,添加或修改以下行:password requisite pam_pwquality.so retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
- 参数说明:
minlen=8
:密码最小长度为 8。ucredit=-1
:至少包含 1 个大写字母。lcredit=-1
:至少包含 1 个小写字母。dcredit=-1
:至少包含 1 个数字。ocredit=-1
:至少包含 1 个特殊字符。
- 参数说明:
-
设置密码有效期
编辑/etc/login.defs
:PASS_MAX_DAYS 90 # 密码最大有效期(天) PASS_MIN_DAYS 7 # 密码最小有效期(天) PASS_WARN_AGE 14 # 密码过期前警告天数
五、查看密码状态
使用 chage
命令查看或修改用户密码状态:
chage -l username # 查看用户密码信息
输出示例:
Last password change : May 01, 2025
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
六、注意事项
-
密码安全建议:
- 使用长密码(至少 12 字符),包含大小写字母、数字和特殊符号。
- 避免使用与个人信息相关的密码(如生日、姓名)。
- 定期更换密码(根据组织安全策略)。
-
管理员权限:
- 管理员可绕过密码复杂度检查,直接设置弱密码(需谨慎)。
-
密码存储位置:
- 加密后的密码存储在
/etc/shadow
(需 root 权限访问)。
- 加密后的密码存储在
-
安全风险:
- 使用
--stdin
选项时,密码可能泄露在 shell 历史记录或日志中。
- 使用
七、总结
passwd
是 Linux 系统中管理用户密码的核心工具,核心用法可总结为:
- 修改密码:
passwd
(普通用户)或sudo passwd username
(管理员)。 - 锁定账户:
sudo passwd -l username
。 - 强制密码过期:
sudo passwd -e username
。 - 自动化设置:
echo "user:pass" | sudo chpasswd
。
合理配置密码策略和定期审计用户密码是系统安全的重要组成部分。建议结合 PAM 模块和 /etc/login.defs
实现符合组织安全标准的密码管理。