passwd命令修改密码分三类:普通用户改自己需验证旧密码并满足复杂度;root用sudo passwd 用户名直接设新密码;自动化场景可用echo "pwd" | sudo passwd --stdin或chpasswd,新建账号后用sudo passwd -e强制首次登录改密。

直接用 passwd 命令就能完成,但具体操作取决于你是普通用户还是 root,以及目标是改自己还是别人密码。
普通用户修改自己的密码
只需运行 passwd,不带任何参数和用户名:
- 系统会先要求输入当前密码(验证身份)
- 再提示输入新密码两次(防止输错)
- 密码需满足复杂度要求:通常至少8位,含大小写字母、数字或特殊字符
- 如果太简单,会显示
BAD PASSWORD警告,但仍可能允许通过(取决于PAM策略)
root 或 sudo 用户修改他人密码
执行 sudo passwd 用户名,例如:
-
sudo passwd alice—— 为用户 alice 设置新密码 - 不需要输入 alice 的旧密码,直接设置新密码两次即可
- 适用于新员工开户、密码遗忘、安全应急等场景
批量或脚本化设密码(适合运维自动化)
不能交互时,可用 --stdin 方式传入密码:
echo "MyPass123!" | sudo passwd --stdin bob- 注意:
--stdin不是所有发行版默认支持,需确认系统启用了该功能(常见于 RHEL/CentOS;Debian/Ubuntu 需安装whois包或改用chpasswd) - 更通用的替代方案:
echo "bob:MyPass123!" | sudo chpasswd
配合策略强制用户首次登录改密
新建账号后常需让用户第一次登录就重设密码:
-
sudo passwd -e username—— 立即让密码过期 - 用户下次 SSH 或图形登录时,会被强制中断并进入密码修改流程
- 这是入职流程、审计合规中的标准做法











