目录
61. shell命令--chage
功能说明
chage 命令在 Linux 系统中用于更改用户密码的过期信息。这个命令允许系统管理员设置或查看用户的密码年龄信息,包括密码最后一次更改的日期、密码过期日期、密码过期前的警告天数、密码过期后的宽限天数以及密码在到期前必须更改的最小天数等。这对于管理用户账户和确保系统安全非常重要。
语法格式
chage [选项] 用户名
SYNOPSIS
chage [options] LOGIN
选项说明
-l:列出用户的密码年龄信息。
-m:设置密码的最小使用期限(天数)。
-M:设置密码的最大使用期限(天数)。
-W:设置密码过期前的警告天数。
-I:设置密码过期后的宽限天数,即用户密码过期后,用户还可以登录系统多少天。
-E:设置密码的过期日期,格式为 YYYY-MM-DD。
-d:设置密码最后更改的日期,格式为 YYYY-MM-DD。
-R:设置用户的chroot目录
-h:显示帮助信息
实践操作
0. 相关配置文件
grep ^PASS /etc/login.defs
cat /etc/default/useradd
1. 查看用户的密码年龄信息
useradd test-chage
chage -l test-chage #这将列出指定用户的密码年龄信息,包括密码最后一次更改的日期、密码过期日期等
chage -l root
2. 设置密码的最小使用期限
chage -l test-chage
chage -m 9 test-chage #这将设置用户的密码在更改后至少需要使用 9 天
chage -l test-chage
3. 设置密码的最大使用期限
chage -l test-chage
chage -M 90 test-chage #这将设置用户的密码有效期为90天,即密码每90天必须更改一次
chage -l test-chage
4. 设置密码过期前的警告天数
chage -l test-chage
chage -W 14 test-chage #这将在密码过期前14天开始提醒用户更改密码
chage -l test-chage
5. 设置密码过期后的宽限天数
chage -l test-chage
chage -I 7 test-chage #这允许用户在密码过期后还有7天的时间来更改密码,而不会立即被锁定
chage -l test-chage
6. 设置密码的过期日期
chage -l test-chage
chage -E 2099-12-31 test-chage #这将设置用户的密码在2099年12月31日过期
chage -l test-chage
7. 设置密码最后更改的日期
chage -l test-chage
chage -d 2088-01-01 test-chage #这会将用户的密码最后更改日期设置为2088年1月1日。
#注意,这通常用于特殊情况下的手动调整,而不是常规操作
chage -l test-chage
8. 综合使用
# 要求 test-chage 用户 7 天内不能更改密码,60 天以后必须修改密码,
# 过期前 10 天通知用户,过期 30 天后禁止用户登录。
chage -l test-chage
chage -m7 -M60 -W10 -I30 test-chage
chage -l test-chage
注意事项
- 使用 chage 命令时,需要具有足够的权限,通常是 root 用户或具有 sudo 权限的用户。
- 更改密码策略时,请确保这些更改符合组织的安全政策和最佳实践。
- 某些系统可能还允许通过 /etc/login.defs 文件和 /etc/shadow 文件的直接编辑来设置密码策略,但 chage 命令提供了一种更直接和用户友好的方式来管理这些设置。