首页/安全/安全加固速查/chage 逐账号口令生命周期管理
口令与认证策略55 条

chage 逐账号口令生命周期管理

chage 是账号口令时效的操作面:查询(-l)、设置最大/最小天数(-M/-m)、提醒(-W)、强制下次改密(-d 0)、账号有效期(-E)。

安全加固速查安全更新于 2026-10-13

chage 管什么

chage 是账号口令时效的操作面:查询(-l)、设置最大与最小天数(-M / -m)、到期前提醒天数(-W)、强制下次登录改密(-d 0),以及账号整体有效期(-E)。它改的是 /etc/shadow 里对应的时效字段,是账号生命周期类基线最常见的落地工具。

基本信息

适用平台Linux(shadow 套件,RHEL 与 Debian 系都有)
风险等级中
基线要求关键账号有到期与提醒设置
相关文件/etc/shadow 与 /etc/login.defs
权限要求root

典型使用场景

  • 按合规要求给交互账号设置口令有效期
  • 规划服务账号的到期时间与轮换提醒
  • 新账号交付前统一设置时效参数
  • 离职处置前强制改密或直接设置账号到期
  • 用脚本批量对齐全机口令策略

常用组合

常用组合
chage -l deploy               # 查看该账号的时效设置
chage -M 90 -m 1 -W 7 deploy  # 最长 90 天、最短 1 天、到期前 7 天提醒
chage -d 0 deploy             # 强制下次登录必须改密
chage -E 2027-01-31 deploy    # 设置账号整体到期日
chage -l deploy | head -3     # 复核改动结果

批量对齐策略

批量对齐策略
for u in $(awk -F: '$3>=1000 && $3<65534 {print $1}' /etc/passwd); do chage -M 90 -W 7 "$u"; done   # 只对普通用户账号批量设置

时效字段读法

字段含义注意点
口令有效期-M 设置的最长使用天数到期必须改密
两次改密间隔-m 设置的最小天数防止立刻改回原口令
到期提醒-W 设置的提前提醒天数太短容易被忽略
账号到期-E 设置的账号失效日期到期后完全不可登录
上次修改日期最近一次改密的时间使用 -d 0 会把它置零
用 -E 设置账号到期后,该账号会完全无法登录,密钥方式也一样被拒:它比口令过期更硬,投放前必须先确认影响范围。
服务账号(部署、备份用的那种)在到期前必须有人工或自动化轮换流程,否则到期当天批量任务会一起失败。
chage -d 0 会让该账号下次登录时强制改密,部分 PAM 配置下会直接中断当前会话;对已经在用密钥登录的账号,先小范围验证再推广。

易错点

  • 用 -E 设账号到期后连密钥登录也被禁止,比口令过期更硬,投放前先确认影响范围
  • 给服务账号设了口令有效期却没安排轮换流程,到期当天批量任务全部失败
  • 只设 -m 不设 -W,用户临近到期没有任何提醒,容易出现突然无法登录
  • 用 chage -d 0 强制改密前没验证 PAM 行为,个别配置下会把用户直接挡在登录之外

数据来源与参考

  • man 1 chage
  • CIS Benchmark:Password Expiration 条目

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌