银河麒麟系统密码过期提醒需同时配置/etc/login.defs中PASS_WARN_AGE值和chage命令,新建用户继承前者,现有用户须用chage -W单独设置,验证时需检查chage -l输出及passwd -S状态。

银河麒麟系统需在密码到期前向用户发出明确提醒,避免因突然失效导致业务中断或登录失败,该提醒由PAM模块与login.defs共同控制,必须同时配置警告天数与系统级默认策略。
设置密码过期前提醒天数
这一步直接决定用户从哪一天开始看到“Your password will expire in X days”提示,值太小会导致提醒滞后,太大则可能引发频繁干扰。
1. 用管理员权限打开终端,执行命令编辑全局登录策略文件:sudo nano /etc/login.defs
2. 在文件中查找以 PASS_WARN_AGE 开头的行——若该行被注释(开头为#)或根本不存在,需手动添加或取消注释;将其值设为期望的提前天数,例如提醒提前7天:PASS_WARN_AGE 7
3. 保存并退出编辑器。此设置仅对后续新建用户生效,对已有账户不产生影响。
为现有用户单独设置过期提醒
已有用户不会自动继承 /etc/login.defs 中的 PASS_WARN_AGE 值,必须用 chage 命令显式写入 shadow 数据库,否则登录时不会显示倒计时。
方法一:为当前用户设置提醒
执行:sudo chage -W 7 $USER
方法二:为指定用户设置提醒
执行:sudo chage -W 7 username(将 username 替换为实际用户名)
【-W 后的数字必须是正整数,输入0表示到期当天才提醒,输入负数将导致命令报错且无任何提示】
验证提醒是否已生效
配置完成后必须立即验证,因为部分桌面环境会缓存 chage 输出,仅靠重启不一定刷新提示。
第一步:运行命令查看目标用户完整策略:sudo chage -l username
第二步:检查输出中“Password warning period”字段是否显示为设定值(如7),且“Password expires”字段有具体日期而非“never”
第三步:切换至该用户终端会话,执行 passwd -S username,确认状态列为“PS”(即密码可用且策略已加载)
第四步:人为将密码过期日提前到24小时内(例如 sudo chage -E $(date -d '+1 day' +%Y-%m-%d) username),下次登录即可立即触发提醒。










