chage
命令详解chage
是 Linux 系统中用于管理用户密码过期信息的实用工具,全称为 "change age"。它可以查看和修改用户密码的有效期设置,是系统管理员进行账户安全管理的常用命令。
chage [选项] 用户名
参数 | 描述 |
---|---|
-d 日期 或 --lastday 日期 |
设置密码最后修改日期(YYYY-MM-DD格式或从1970-1-1起的天数) |
-E 日期 或 --expiredate 日期 |
设置账户过期日期(YYYY-MM-DD格式或从1970-1-1起的天数) |
-I 天数 或 --inactive 天数 |
密码过期后账户被禁用的宽限天数 |
-l 或 --list |
显示账户的密码过期信息 |
-m 天数 或 --mindays 天数 |
设置密码修改的最小间隔天数(0表示可随时修改) |
-M 天数 或 --maxdays 天数 |
设置密码有效的最大天数 |
-W 天数 或 --warndays 天数 |
设置密码过期前的警告天数 |
查看用户密码过期信息
chage -l username
输出示例:
Last password change : Jan 01, 2023
Password expires : Apr 01, 2023
Password inactive : Apr 08, 2023
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 90
Number of days of warning before password expires : 14
设置密码过期时间(90天后过期)
chage -M 90 username
设置密码修改最小间隔(7天内不能修改密码)
chage -m 7 username
设置账户过期日期(2023-12-31)
chage -E 2023-12-31 username
强制用户下次登录时修改密码
chage -d 0 username
禁用账户过期功能
chage -E -1 username
批量设置多个用户的密码策略
for user in user1 user2 user3; do
chage -M 60 -m 7 -W 7 $user
done
查找即将过期的账户
awk -F: '($2 != "*" && $2 != "!!") {print $1}' /etc/shadow | while read user; do
echo -n "$user: "
chage -l $user | grep "Password expires"
done
使用天数而不是日期设置(从1970-1-1开始计算)
chage -d $(date +%s -d "2023-01-01")/86400 username
chage
命令需要 root 权限才能修改其他用户的信息/etc/shadow
文件中-E -1
可以取消账户的过期日期/etc/shadow
- 存储用户密码和过期信息的文件/etc/login.defs
- 系统默认的密码策略设置chage
是 Linux 用户账户安全管理的重要工具,合理设置密码过期策略可以有效提高系统安全性。