chage -E 设置账户绝对失效日期最标准可靠,如 sudo chage -E 2026-12-31 username;需配合 -M、-W、-I 避免密码策略脱节;批量设置应筛选普通用户并预先验证。

直接用 chage -E 设置指定日期,系统会在该日期零点起自动禁止登录,这是最标准、内核级生效的做法。
查看当前账户过期状态
执行命令确认目标用户的当前设置:
chage -l username
重点关注输出中的 Account expires 行。若显示 never,说明账户永不过期;若已设日期,则以该日期为准。
设置精确的绝对失效日期
使用 -E 参数指定 YYYY-MM-DD 格式日期(推荐,清晰可靠):
-
sudo chage -E 2026-12-31 username→ 账户在 2026 年 12 月 31 日 00:00 后无法登录 -
sudo chage -E -1 username或sudo chage -E never username→ 恢复为永不过期
避免使用天数格式(如 chage -E 19876),易出错且不可读。
避免密码策略脱节导致异常
只改账户过期日(-E),不调整密码参数,可能引发登录后立即被强制改密、甚至卡住无法操作。稳妥做法是组合设置:
sudo chage -E 2026-12-31 -M 90 -W 7 -I 5 username
含义:账户年底失效;密码 90 天一换,提前 7 天提醒,过期后还有 5 天宽限期可登录并改密。
批量设置多个用户
对普通用户统一延期,可用循环配合 /etc/passwd 筛选:
for u in $(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd); do sudo chage -E 2026-12-31 "$u"; done
执行前建议先抽样运行 chage -l 验证,避开关键服务账户(如 nginx、mysql 等)。


















