配置Linux密码有效期可提升系统安全,需修改/etc/login.defs设置PASS_MAX_DAYS、PASS_MIN_DAYS等参数,并用chage命令为现有用户设置策略,同时启用PAM模块支持,最后验证配置生效。

在Linux系统中,设置用户密码有效期是加强系统安全的重要措施之一。通过配置密码策略,可以强制用户定期更改密码,防止长期使用弱密码带来的安全风险。以下是详细的配置步骤,适用于大多数基于PAM的Linux发行版(如CentOS、RHEL、Ubuntu等)。
1. 修改全局密码策略(/etc/login.defs)
该文件定义了创建新用户时的默认密码策略。编辑 /etc/login.defs 文件:
sudo vi /etc/login.defs找到并修改以下参数:
- PASS_MAX_DAYS:密码最长有效天数,建议设为90
- PASS_MIN_DAYS:两次修改密码之间的最小天数,防止用户反复更改绕过策略,建议设为7
- PASS_MIN_LEN:密码最小长度,建议至少8位
- PASS_WARN_AGE:密码到期前提前警告天数,建议设为7
示例配置:
PASS_MAX_DAYS 90 PASS_MIN_DAYS 7 PASS_MIN_LEN 8 PASS_WARN_AGE 7
注意:这些设置仅对新创建的用户生效。已有用户需单独处理。
2. 为已有用户设置密码有效期
使用 chage 命令可查看和修改指定用户的密码策略。
查看用户当前密码策略:
sudo chage -l username设置密码策略示例:
sudo chage -M 90 -m 7 -W 7 username- -M:密码最大天数
- -m:密码最小修改间隔
- -W:到期前警告天数
也可使用交互式方式:
sudo chage username然后按提示输入各项值。
3. 强制用户首次登录修改密码
新建用户后,若希望其首次登录时必须修改密码,可执行:
sudo passwd --expire username该命令将用户密码状态设为“已过期”,下次登录会提示更改密码。
4. 检查并确保PAM模块启用密码策略
大多数Linux系统通过PAM(Pluggable Authentication Modules)实现密码策略。确认 /etc/pam.d/common-password 或 /etc/pam.d/system-auth 包含如下行:
password required pam_unix.so sha512 shadow nullok
确保启用了 shadow 支持,这样才能读取 /etc/shadow 中的密码过期信息。
在某些系统中还需启用:
account required pam_unix.so
以支持账户和密码有效期检查。
5. 验证配置是否生效
可通过以下方式验证:
- 使用 chage -l username 查看设置是否正确
- 切换到测试用户,观察登录时是否有密码过期提示
- 模拟密码即将到期,检查系统是否提前发出警告
若用户密码已过期但未修改,系统会在下次登录时强制要求更改。
基本上就这些。合理配置密码有效期能显著提升系统安全性,建议结合强密码策略(如使用pam_pwquality)一起部署,形成完整的账户安全管理机制。









