Linux中密码生命周期管理由passwd和chage协同完成:chage配置长期策略(如-M、-W、-I等),passwd执行即时动作(如-e、-l、-S等),二者均操作/etc/shadow,需注意策略逻辑关系、新用户默认配置及定期检查临期账户。

Linux 中管理用户密码生命周期,主要靠 passwd 和 chage 两个命令配合使用。前者侧重密码本身的操作(如修改、锁定、过期),后者专注策略配置(如有效期、警告期、宽限期)。两者都直接作用于 /etc/shadow,但分工明确:passwd 更偏向“即时动作”,chage 更偏向“长期规则”。
用 chage 设置精细密码策略
chage 是专为密码生命周期设计的工具,适合管理员批量或逐个设定安全策略:
- -M 90:设密码最长使用 90 天,超期必须改密;设为 -1 表示永不过期
- -m 7:新密码至少用满 7 天才能再次修改,防绕过历史检查
- -W 7:密码到期前 7 天起,每次登录都提示用户即将过期
- -I 14:密码过期后仍可登录 14 天,但首次登录即强制改密;设为 0 则立即锁账户
- -E 2026-12-31:设整个账户在该日期后彻底失效,与密码是否有效无关
- -d 0:把“最后修改日期”设为 0,用户下次登录时必须重设密码
执行后用 chage -l username 可完整查看当前所有策略项,字段清晰对应。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
用 passwd 快速执行策略动作
passwd 命令在非交互模式下也能完成部分策略设置,操作更轻量:
-
sudo passwd -x 90 username:等效于
chage -M 90,设最大有效期 -
sudo passwd -w 7 username:等效于
chage -W 7,设警告天数 -
sudo passwd -i 14 username:等效于
chage -I 14,设宽限期 - sudo passwd -e username:强制密码立即过期,用户下次登录必须改密
-
sudo passwd -l username:锁定账户(在 shadow 中加
!前缀),无法登录 -
sudo passwd -S username:快速查看账户密码状态,比
chage -l更简洁
策略落地与日常维护建议
单条命令容易执行,但真正管住密码生命周期还需注意三点:
- 策略值之间要有逻辑关系:比如 -W 值必须小于 -M 值,否则警告不会触发;-I 值不应大于 -M,避免宽限期长于有效期造成混淆
- 新用户默认策略应统一配置:修改
/etc/login.defs中的PASS_MAX_DAYS、PASS_MIN_DAYS、PASS_WARN_AGE,让useradd创建用户时自动继承 - 定期检查临期账户:可用脚本结合
chage -l或passwd -S提取 “Password expires” 字段,筛选出 7 天内将过期的用户并通知
不复杂但容易忽略

















