Linux中设置密码最小修改期限即最小使用天数,通过chage -m或/etc/login.defs中PASS_MIN_DAYS配置,写入/etc/shadow第4字段,chage优先级高于全局设置,值为0表示无限制。

Linux 中设置密码的最小修改期限,就是限制用户改完密码后,必须等多少天才能再次修改——防止频繁换回旧密码或绕过策略。这个参数叫 最小使用天数(minimum password age),核心通过 chage 命令或 /etc/login.defs 配置。
对单个用户设置最小修改期限
用 chage -m 指定天数,例如要求用户 alice 密码至少使用 7 天后才能再改:
sudo chage -m 7 alice- 执行后,
alice即使知道新密码,也无法在 7 天内用passwd再次更改 - 验证:运行
sudo chage -l alice,查看 “Minimum number of days between password change” 字段
为所有新建用户统一设置
修改 /etc/login.defs 中的 PASS_MIN_DAYS 行:
- 用
sudo vi /etc/login.defs打开文件 - 找到或添加一行:
PASS_MIN_DAYS 7 - 保存后,后续用
useradd创建的新用户默认继承该设置 - 注意:已有用户不受此影响,需单独用
chage -m设置
底层原理和注意事项
该限制实际写入 /etc/shadow 文件第 4 字段(即 min 字段),格式为数字(单位:天)。值为 0 表示无限制;设为正整数才生效。
- 如果同时设置了
PASS_MIN_DAYS和chage -m,后者优先级更高,覆盖前者 - 若设为大于
PASS_MAX_DAYS的值(比如 min=60,max=30),会导致用户无法修改密码,应避免 - 服务账户或自动化脚本账户通常设为 0,避免因策略阻断任务执行


















