passwd 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于用户与权限命令族(见用户与权限命令族)。改密码、锁账户都靠它。
passwd(password)修改用户密码,也能锁定/解锁账户。普通用户改自己的,root 能改任何人的。
一、基本用法
bash
passwd # 改当前用户密码(交互输入两次)
sudo passwd bob # root 改 bob 的密码普通用户改自己密码要验旧密码;root 改别人密码不需要旧密码。交互式两次输入防手滑。
二、非交互 / 批量(谨慎)
bash
echo "newpass" | sudo passwd --stdin bob # 从 stdin 读新密码(部分发行版支持)
# 或:
echo "bob:newpass" | chpasswd # chpasswd 更通用
--stdin在某些发行版(如 CentOS/RHEL 的 passwd)可用,Debian 系不一定。批量/脚本设密更推荐 chpasswd(读user:pass格式)。明文密码进命令行/历史有泄露风险(见history),生产慎用。
三、锁定与解锁
bash
sudo passwd -l bob # 锁定 bob(禁止登录,密码前加 !)
sudo passwd -u bob # 解锁
sudo passwd -S bob # 查看状态(L=锁/U=未锁)
-l(lock)给密码加!前缀使其失效,常用于临时禁用离职账号但不删用户。-S看状态。配合usermod -L同理。
四、密码策略
bash
passwd -e bob # 强制 bob 下次登录改密码
# /etc/login.defs 控制密码最小长度、老化周期等
-e(expire)让密码立即过期,用户下次登录必须重设——新员工首次登录、或怀疑泄露后强制轮换都用它。具体复杂度规则由 PAM 模块(如 pam_pwquality)控制。
一句话总结
passwd = 改密码/锁账户:passwd 改自己、sudo passwd user 改他人;--stdin/chpasswd 批量设密(明文有泄露风险、生产慎用);-l/-u 锁/解锁账户、-S 看状态;-e 强制下次登录改密。密码策略由 PAM/pam_pwquality 与 /etc/login.defs 控制。