方法1:使用 chage
命令(推荐)
chage
是专用于管理密码时效的工具,提供清晰的口令过期信息:
sudo chage -l 用户名 # 需root权限
输出示例:
Last password change : Jun 15, 2025
Password expires : Sep 13, 2025 # 密码过期日期
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 90 # 密码最长有效期
Warning number of days before password expires : 7
关键字段:
Password expires
:密码失效日期Maximum number of days
:密码有效天数(从最后一次修改起计算)
方法2:查看 /etc/shadow
文件(底层数据)
系统所有用户的口令策略存储在加密文件 /etc/shadow
中:
sudo grep '用户名' /etc/shadow
输出示例:
alice:$y$j9T$...$:19457:7:90:7:::
字段解析(以冒号分割):
- 用户名
- 加密密码
- 最后一次修改密码的天数(从1970-1-1起计算)
- 最小修改间隔(7天内不可改)
- 密码有效期(90天后过期)
- 过期前警告天数(7天)
- 密码过期后宽限期
- 账户绝对过期时间
⚠️ 注意:直接修改此文件可能导致系统故障,建议使用
chage
或passwd
命令。
方法3:passwd
命令状态查询
sudo passwd -S 用户名
输出示例:
alice PS 2025-06-15 7 90 7 -1 # 关键字段:最后修改日期、最短有效期、最长有效期、警告期
状态标识:
PS
:密码已设置(有效)LK
:账户被锁定NP
:无密码
方法4:getent
命令查询系统数据库
sudo getent shadow 用户名 # 等效于查看/etc/shadow中单条记录
输出格式与 /etc/shadow
相同,适用于自动化脚本处理。
口令过期策略配置原理
Linux口令策略由两个文件控制:
/etc/login.defs
定义默认策略(如PASS_MAX_DAYS 90
表示全局密码有效期90天)。/etc/shadow
存储用户级策略(优先级高于全局配置)。
安全建议
- 定期检查:每月执行
chage -l
审计关键账户(如root、管理员)。 - 策略优化:
sudo chage -M 90 -W 7 用户名 # 设置90天有效期+提前7天警告
- 合规要求:金融或医疗系统建议有效期≤90天,并启用多因素认证。
- 账户锁定:对离职员工立即执行
sudo usermod -L 用户名
。
📌 最佳实践:结合
cron
任务自动发送密码到期提醒(参考脚本)。
引用说明:
- 命令文档:
man 5 shadow
,man chage
,man passwd
- 安全标准:NIST SP 800-63B (2025), CIS Linux Benchmarks
- 策略配置:Linux
login.defs
官方手册 (man 5 login.defs)
通过以上方法,您可高效管理Linux系统口令生命周期,显著提升防御凭证泄露的能力,企业环境建议部署集中式身份管理(如FreeIPA或OpenLDAP)实现统一策略控制。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9659.html