执行 sudo passwd -e username 可强制用户下次登录时修改密码,系统将 /etc/shadow 中密码最后修改日期设为 0,登录时提示“You must change your password now”且不可跳过;验证用 sudo passwd -S username,第三字段为 0 且第二字段为 P 即生效。

用 passwd -e 就能强制指定用户下次登录时必须修改密码。
直接执行强制过期命令
只需一条命令:
sudo passwd -e username
执行后,系统会把该用户在 /etc/shadow 中的“密码最后修改日期”设为 0。用户下次通过 SSH 或本地终端登录时,会立即被拦截并提示:“You must change your password now”,无法跳过,必须完成新密码设置才能继续使用账户。
验证是否生效
运行以下命令查看状态:
sudo passwd -S username
输出中第三字段(最后修改日期)显示为 0,且第二字段为 P(表示密码可用但已过期),就说明设置成功。例如:
username P 0 0 99999 7 -1
常见配合操作
- 常和新建用户一起用:创建完用户后立刻执行
sudo passwd -e username,确保首次登录必须设密 - 配合
passwd -n 1可防止用户改完马上再改,避免绕过策略 - 若用户已登录且未登出,该策略会在下一次认证(如重新 SSH、su 切换)时触发
注意权限与限制
- 只有 root 或有 sudo 权限的用户能对他人执行
-e - 普通用户只能对自己执行
passwd,但不能用-e强制自己 - 该操作不改变密码本身,只重置生命周期状态;原密码仍有效,仅用于触发强制修改流程


















