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 配置下会直接中断当前会话;对已经在用密钥登录的账号,先小范围验证再推广。