Linux passwd 命令详解:用于 设置和更改用户密码 的命令
Linux passwd
命令详解
一、命令简介
passwd
是 Linux 系统中用于 设置和更改用户密码 的命令,同时也可用于管理密码的相关策略(如密码过期、锁定账号等)。这是一个非常关键的系统安全命令,普通用户可以使用 passwd
修改自己的密码,而系统管理员(root)则可以为任意用户设置或重置密码。
此外,passwd
还集成了对 /etc/passwd
、/etc/shadow
等账户和密码文件的操作控制,是用户账户安全机制中的核心组成部分。
二、命令语法
passwd [选项] [用户名]
-
不带用户名时,表示修改当前用户的密码。
-
指定用户名时(通常需要 root 权限),表示修改指定用户的密码。
三、命令选项
选项 | 含义 |
---|---|
-d | 删除指定用户的密码(允许该用户无密码登录) |
-e | 强制指定用户在下次登录时修改密码(立即过期) |
-l | 锁定指定用户的账户(不能登录) |
-u | 解锁指定用户账户 |
-S | 显示用户密码状态(是否锁定、加密方式等) |
-n DAYS | 设置用户密码的最短使用期限(多少天后可改) |
-x DAYS | 设置用户密码的最大有效期限(多少天必须改) |
-w DAYS | 设置密码过期前多少天开始警告用户 |
-i DAYS | 设置密码过期后多少天禁用账户 |
--stdin | 从标准输入读取新密码(用于脚本) |
--help | 显示帮助信息 |
四、常见用法详解
1. 普通用户修改自己的密码
passwd
执行后系统将提示输入当前密码,验证通过后再输入新密码两次确认。
2. root 用户修改任意用户密码
sudo passwd username
无需提供旧密码,可直接设置新密码。
3. 删除用户密码(允许空密码登录)
sudo passwd -d username
风险提醒:这可能导致用户无密码即可登录,不建议在公网或多用户系统使用。
4. 强制用户下次登录时修改密码
sudo passwd -e username
设置密码为立即过期状态,下次登录系统时会提示必须修改密码。
5. 锁定 / 解锁账户
sudo passwd -l username # 锁定
sudo passwd -u username # 解锁
锁定后,用户无法登录,但 root 可登录并操作该账户。
6. 查看用户密码状态
sudo passwd -S username
示例输出:
user1 P 05/01/2025 0 99999 7 -1
其中各字段分别代表:用户名、状态(P=已设密码)、最后更改日期、最小期限、最大期限、警告天数、不活动天数。
7. 设置密码策略示例
sudo passwd -n 3 -x 60 -w 7 -i 14 username
-
最短使用期限:3 天
-
最长有效期限:60 天
-
密码过期前 7 天开始警告
-
密码过期后 14 天禁用账户
五、密码相关文件说明
文件 | 说明 |
---|---|
/etc/passwd | 存储用户基本信息(用户名、UID、GID、家目录、shell) |
/etc/shadow | 存储用户密码的加密信息、密码策略等 |
/etc/login.defs | 默认密码策略和账户限制配置文件 |
/etc/pam.d/ | Pluggable Authentication Modules,控制认证行为的配置 |
passwd
修改密码后,会自动更新 /etc/shadow
中对应用户的加密密码行和相关策略字段。
六、脚本中使用 passwd 命令
passwd
默认无法在脚本中直接使用,因为它会要求交互式输入密码。但可以通过 --stdin
结合 echo
实现:
echo "new_password" | sudo passwd --stdin username
此方法适用于自动化运维、批量账户管理等场景。
注意:不是所有发行版都支持
--stdin
,如 Ubuntu 通常不支持。
七、图形界面中的 passwd
在桌面环境下,大多数 Linux 发行版也提供图形化用户和密码管理工具,这些工具的核心仍然调用的是 passwd
命令。
八、常见错误与排查
错误提示 | 原因与解决方案 |
---|---|
passwd: Authentication token manipulation error | 可能未以 root 运行,或 /etc/shadow 文件权限不当 |
passwd: User not known to the underlying authentication module | 用户不存在,或系统未使用标准的认证模块(如 LDAP 环境) |
BAD PASSWORD: it is based on a dictionary word | 密码过于简单,不符合 PAM 密码策略,可以修改 /etc/pam.d/common-password |
九、与账户安全策略的集成
passwd
与 Linux 密码策略紧密相关,策略控制主要体现在以下方面:
-
密码复杂度(通过 PAM 配置)
-
密码长度、是否包含特殊字符
-
密码历史记录防重复
-
是否允许空密码登录
配置文件路径举例:
/etc/login.defs
/etc/pam.d/passwd
/etc/pam.d/common-password
十、总结
项目 | 内容 |
---|---|
命令名称 | passwd |
主要功能 | 设置、修改、删除用户密码;管理密码策略 |
使用权限 | 普通用户可改自己密码;root 可管理任意用户 |
密切关联文件 | /etc/passwd , /etc/shadow , /etc/login.defs |
常用操作 | 修改密码、强制重设、密码过期、锁定账号 |
passwd
是保障 Linux 用户账号安全的核心工具之一,熟练掌握它有助于管理员更好地控制用户访问权限和系统安全策略。在现代系统中,它通常与 PAM 模块和密码策略系统深度整合,是 Linux 安全体系中的关键一环。
这里是封面: