在Linux系统管理中,用户密码管理是一项基础且关键的任务。无论是日常运维还是应对安全检查,掌握核心的密码修改与强制更新方法都能提升效率。以下将系统介绍这些实用技巧。 普通用户修改自身密码:passwd命令 普通用户修改自己的密码操作简便。登录系统后,在终端直接输入 passwd 命令,随后按提示输
Linux用户密码修改与强制过期密码重置指南
时间:2026-05-19
浏览:279
文章目录
在Linux系统管理中,用户密码管理是一项基础且关键的任务。无论是日常运维还是应对安全检查,掌握核心的密码修改与强制更新方法都能提升效率。以下将系统介绍这些实用技巧。

普通用户修改自身密码:passwd命令
普通用户修改自己的密码操作简便。登录系统后,在终端直接输入 passwd 命令,随后按提示输入一次旧密码和两次新密码即可完成。此过程无需root权限,但需知晓当前密码。
操作中常见问题主要有两类:一是旧密码输入错误;二是新密码因过于简单而被系统的PAM密码强度策略拒绝。若遇到 Authentication token manipulation error 这类报错,可能并非密码输入错误,而是源于更深层问题,例如 /etc/shadow 文件权限设置不当或文件系统处于只读状态。
需特别注意:passwd 命令默认仅修改当前登录用户的密码。若尝试后接其他用户名(如 passwd alice),则属于越权操作,普通用户无此权限。
root用户修改其他用户密码:passwd username
拥有root权限的管理员操作更为灵活。为其他用户修改密码时可跳过旧密码验证。命令格式为 passwd 用户名,例如 passwd bob,回车后直接输入并确认新密码即可生效。
此操作会直接更新 /etc/shadow 文件中相应用户的密码哈希值,并重置其密码过期状态。执行后可使用 chage -l bob 命令查看确认。
一个易被忽略的细节是:若修改密码时目标用户正处于登录状态(如活跃的SSH会话或桌面环境),此次更改不会立即中断其当前会话。用户会话将持续直至主动注销或超时断开。
强制用户下次登录时修改密码:chage -d 0
当需要强制用户在下次登录时必须更改密码时,可使用 chage -d 0 username 命令。执行后,该用户下次尝试登录时将被系统拦截,强制进入密码修改流程后方可继续。
其原理是将 /etc/shadow 文件中对应用户的“上次密码修改日期”字段设置为0(代表1970年1月1日),系统比对后会判定密码已“过期”。此功能适用于新员工账号初始化、安全事件后批量重置密码等场景。
- 需注意:
chage -d 0仅对执行后的新登录尝试生效,不影响用户已建立的现有会话。 - 若用户配置了SSH密钥登录且禁用了密码认证,此命令将失效,因为登录流程不经过密码验证。
passwd -e username命令可实现类似效果,但chage -d 0在语义上更清晰,直接体现了“将日期归零”的操作核心。
检查与调试密码过期策略:chage -l 与 grep
密码管理不仅在于“修改”,也需善于“检查”。要了解用户详细的密码状态,chage -l username 是实用工具。输出信息中应重点关注 Last password change(上次修改时间)、Password expires(密码过期时间)、Password inactive(密码失效宽限期)等条目。若显示为 never,则表示未设置过期策略。
如需批量查找所有被设置为“强制修改密码”的用户,可使用命令:sudo awk -F: '$5 == "0" {print $1}' /etc/shadow。该命令将从 /etc/shadow 文件中筛选出“上次修改日期”为0的所有用户名。
实际管理中,复杂的PAM策略常是问题根源。例如,若 /etc/pam.d/common-password 配置文件中设置了 remember=5,则用户不能重复使用最近5次用过的密码。此时即使旧密码输入正确,系统也会拒绝修改。遇到此类不明报错,建议结合系统认证日志 /var/log/auth.log 来排查具体拒绝原因。
实用工具推荐
绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
选择画质和输出格式,预览压缩前后的大小。