插件窝 干货文章 深入解读Linux chage命令的用法

深入解读Linux chage命令的用法

密码 过期 用户 chage 809    来源:    2025-04-09

Linux chage命令详解

chage命令是Linux系统中用于管理用户密码过期策略的重要工具,它允许系统管理员查看和修改用户账户的密码时效设置。下面我将详细介绍chage命令的用法和实际应用场景。

基本语法

chage [选项] 用户名

常用选项

选项 描述
-d, --lastday LAST_DAY 设置密码最后修改日期(从1970-1-1起的天数)
-E, --expiredate EXPIRE_DATE 设置账户过期日期(YYYY-MM-DD)
-I, --inactive INACTIVE 密码过期后账户被锁定的宽限天数
-l, --list 显示账户时效信息
-m, --mindays MIN_DAYS 设置密码修改最小间隔天数
-M, --maxdays MAX_DAYS 设置密码有效最大天数
-W, --warndays WARN_DAYS 设置密码过期前警告天数

实际应用示例

1. 查看用户密码时效信息

sudo 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

2. 设置密码过期策略

sudo chage -M 90 -m 7 -W 14 username
  • 密码最大有效期90天(-M)
  • 密码修改最小间隔7天(-m)
  • 密码过期前14天警告用户(-W)

3. 设置账户过期日期

sudo chage -E 2023-12-31 username

设置用户账户在2023年12月31日过期

4. 强制用户下次登录时修改密码

sudo chage -d 0 username

将密码最后修改日期设为0(1970-1-1),强制用户下次登录时必须修改密码

5. 禁用密码过期

sudo chage -M 99999 username

将密码最大有效期设为非常大的数值(约273年),相当于禁用密码过期

高级用法

批量修改用户密码策略

for user in user1 user2 user3; do
  sudo chage -M 90 -m 7 -W 14 $user
done

使用日期字符串而非天数

sudo chage -d "2023-01-01" username

设置密码过期后的宽限期

sudo chage -I 7 username

密码过期后7天内账户仍可登录,之后将被锁定

注意事项

  1. 只有root用户或有sudo权限的用户才能使用chage命令
  2. 修改密码策略不会立即生效,只影响未来的密码更改
  3. 密码策略存储在/etc/shadow文件中
  4. 对于LDAP用户,可能需要使用其他工具如passwd -x或LDAP客户端工具

相关文件

  • /etc/shadow - 存储用户密码和时效信息
  • /etc/login.defs - 系统默认密码策略配置

通过合理使用chage命令,系统管理员可以有效地管理用户密码策略,提高系统安全性。