chage
是 Linux 系统中用于管理用户密码过期信息的实用工具。它允许系统管理员查看和修改用户密码的有效期设置,是用户账户安全管理的重要组成部分。
chage [选项] 用户名
选项 | 描述 |
---|---|
-d 最近修改日期 |
设置密码最后修改日期(YYYY-MM-DD或天数) |
-E 过期日期 |
设置账户过期日期(YYYY-MM-DD或天数) |
-I 不活跃天数 |
密码过期后账户被锁定的天数 |
-l |
列出当前账户的密码过期信息 |
-m 最小天数 |
设置密码修改的最小间隔天数 |
-M 最大天数 |
设置密码有效的最大天数 |
-W 警告天数 |
设置密码过期前的警告天数 |
查看用户密码过期信息
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
设置密码过期策略
chage -M 60 -m 7 -W 7 username
设置账户过期日期
chage -E 2023-12-31 username
或使用天数(从1970-01-01开始计算):
chage -E $(date -d "2023-12-31" +%s) username
强制用户下次登录时修改密码
chage -d 0 username
禁用密码过期
chage -M 99999 username
chage
命令接受的日期格式可以是:
- YYYY-MM-DD (如 2023-12-31)
- 从1970年1月1日(UNIX纪元)开始的天数
新员工账户设置
# 创建用户
useradd newuser
# 设置初始密码
echo "newuser:initialpassword" | chpasswd
# 强制首次登录修改密码
chage -d 0 newuser
# 设置90天密码有效期
chage -M 90 newuser
临时账户设置
# 设置账户3个月后过期
chage -E $(date -d "+3 months" +%Y-%m-%d) tempuser
批量修改用户策略
# 为所有普通用户设置密码策略
for user in $(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd); do
chage -M 90 -m 7 -W 7 $user
done
chage
命令需要 root 权限才能修改其他用户的设置/etc/shadow
文件中/etc/shadow
- 存储用户密码和过期信息/etc/login.defs
- 系统默认的密码策略设置通过合理使用 chage
命令,系统管理员可以有效地管理用户密码策略,提高系统安全性。