Linux中密码最小修改期限通过/etc/login.defs的PASS_MIN_DAYS设置新用户默认值,或用chage -m为已有用户单独配置,对应/etc/shadow第4字段,0表示无限制,正整数启用约束。

Linux 中设置密码的最小修改期限,就是限制用户改完密码后,必须至少隔多少天才能再次修改。这个限制能防止用户绕过策略(比如改个新密码马上又切回旧密码)。关键在于两个地方:对新用户统一生效用 /etc/login.defs,对已有用户单独设置用 chage 命令。
通过 /etc/login.defs 设置新用户的默认最小间隔
该文件只影响后续新建的用户,不影响已存在的账户。
- 用 root 权限编辑:sudo vi /etc/login.defs
- 找到或添加 PASS_MIN_DAYS 行,设为所需天数,例如强制至少 7 天后才能再改:
PASS_MIN_DAYS 7 - 保存退出即可。之后用 useradd 创建的用户,其 /etc/shadow 第 4 字段会自动写入该值。
用 chage 为已有用户单独设置
这是最常用、最直接的方式,立即写入 /etc/shadow,实时生效。
- 设置用户 alice 的密码至少使用满 5 天才能再改:
sudo chage -m 5 alice - 查看是否生效:
sudo chage -l alice | grep "Minimum number" - 注意:-m 参数只控制“两次修改之间最少间隔”,不控制“首次设置后多久必须改”。如需强制首次登录改密,请用 chage -d 0。
补充说明
最小修改期限实际对应 /etc/shadow 文件中用户记录的第 4 个字段(以冒号分隔)。例如某行是:
alice:$6$abc...:19820:5:90:7:::
其中 5 就表示最小修改间隔为 5 天。
若设为 0(默认值),表示无限制;设为正整数(如 3、7、30)才起约束作用。设得过高可能影响运维响应,建议结合安全要求与实际场景权衡。











