chage 命令
基本介绍
chage(Change Age)是 Linux 系统中用于管理用户密码过期策略的命令。它可以设置密码过期时间、密码最短使用期限、密码最长使用期限、警告天数等参数,帮助系统管理员强制用户定期更换密码,提高系统安全性。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
语法
chage [OPTIONS] USERNAME常用选项
基本选项
-d, --lastday=LAST_DAY:设置上次密码修改日期(格式:YYYY-MM-DD 或从 epoch 开始的天数)-E, --expiredate=EXPIRE_DATE:设置账户过期日期(格式:YYYY-MM-DD)-h, --help:显示帮助信息-I, --inactive=INACTIVE:设置账户过期后多少天禁用-l, --list:列出用户的密码过期信息-m, --mindays=MIN_DAYS:设置密码最短使用天数-M, --maxdays=MAX_DAYS:设置密码最长使用天数-R, --root=PATH:指定根目录路径-W, --warndays=WARN_DAYS:设置密码过期前警告天数
密码过期字段说明
| 字段 | 说明 |
|---|---|
Last password change | 上次密码修改日期 |
Password expires | 密码过期日期 |
Password inactive | 密码过期后账户禁用天数 |
Account expires | 账户过期日期 |
Minimum number of days between password change | 密码最短使用天数 |
Maximum number of days between password change | 密码最长使用天数 |
Number of days of warning before password expires | 警告天数 |
使用示例
1. 列出用户密码过期信息
chage-lusername输出示例:
Last password change : May 01, 2024 Password expires : Aug 01, 2024 Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 90 Number of days of warning before password expires : 72. 设置密码最长使用天数
chage-M90username3. 设置密码最短使用天数
chage-m7username4. 设置密码过期警告天数
chage-W7username5. 设置账户过期日期
chage-E2025-12-31 username6. 设置账户过期后禁用天数
chage-I7username7. 设置上次密码修改日期
chage-d0username# 强制用户下次登录时修改密码chage-d2024-05-01 username8. 交互式修改密码策略
chage username输出示例:
Changing the aging information for username Enter the new value, or press ENTER for the default Minimum Password Age [0]: 7 Maximum Password Age [90]: 180 Last Password Change (YYYY-MM-DD) [2024-05-01]: Password Expiration Warning [7]: 14 Password Inactivity Period [never]: Account Expiration Date (YYYY-MM-DD) [never]:9. 强制用户下次登录修改密码
chage-d0username10. 设置账户永不过期
chage-E-1username输出格式说明
-l 选项输出
Last password change : May 01, 2024 Password expires : Aug 01, 2024 Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 90 Number of days of warning before password expires : 7相关文件
| 文件 | 说明 |
|---|---|
/etc/shadow | 用户密码和过期信息 |
/etc/login.defs | 默认密码策略配置 |
实用技巧
设置严格的密码策略
#!/bin/bashUSERNAME="username"# 设置密码有效期为 90 天chage-M90"$USERNAME"# 设置最短使用时间为 7 天chage-m7"$USERNAME"# 设置警告时间为 14 天chage-W14"$USERNAME"# 设置密码过期后 7 天禁用账户chage-I7"$USERNAME"echo"Password policy set for$USERNAME"批量设置密码策略
#!/bin/bash# 为所有用户设置密码有效期foruserin$(cut-d:-f1/etc/passwd|grep-vE'^(root|daemon|bin|sys)');doecho"Setting policy for$user"chage-M90-m7-W14"$user"done检查用户密码即将过期
#!/bin/bash# 查找密码即将在 7 天内过期的用户foruserin$(cut-d:-f1/etc/passwd);doexpires=$(chage-l"$user"|grep'Password expires'|awk'{print $4,$5,$6}')# 检查是否即将过期# 这里可以添加更复杂的日期比较逻辑echo"$user:$expires"done强制所有用户下次登录修改密码
#!/bin/bash# 强制用户下次登录修改密码foruserin$(cut-d:-f1/etc/passwd|grep-v'^root$');dochage-d0"$user"echo"Forced password change for$user"done密码策略最佳实践
| 策略类型 | 推荐值 | 说明 |
|---|---|---|
| 最大使用天数 | 90 | 密码有效期 |
| 最小使用天数 | 7 | 防止频繁修改 |
| 警告天数 | 7-14 | 提前提醒 |
| 禁用天数 | 7 | 密码过期后禁用 |
| 账户过期 | 根据需求 | 临时账户 |
相关命令
passwd:设置用户密码usermod:修改用户信息useradd:添加用户userdel:删除用户id:显示用户和组信息/etc/shadow:用户密码文件/etc/login.defs:密码策略配置文件
注意事项
- 权限要求:
chage需要 root 权限 - 日期格式:日期可以使用 YYYY-MM-DD 格式或从 epoch 开始的天数
- 特殊值:-1 表示永不过期,0 表示立即过期
- 强制修改:使用
-d 0强制用户下次登录时修改密码 - 系统用户:通常不为系统用户设置密码过期策略
- 配置文件:
/etc/login.defs包含默认的密码策略设置
总结
chage是 Linux 系统中管理用户密码过期策略的重要工具。它可以设置密码的最短/最长使用天数、过期警告天数、账户过期日期等参数。通过合理配置密码策略,可以提高系统安全性,强制用户定期更换密码。chage是系统管理员维护系统安全的必备工具。