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

深入了解Linux chage命令的用法

密码 天数 设置 过期 733    来源:    2025-04-10

Linux chage命令详解

chage 是 Linux 系统中用于管理用户密码过期信息的实用工具。它允许系统管理员查看和修改用户密码的有效期设置,是用户账户安全管理的重要组成部分。

基本语法

chage [选项] 用户名

常用选项

选项 描述
-d 最近修改日期 设置密码最后修改日期(YYYY-MM-DD或天数)
-E 过期日期 设置账户过期日期(YYYY-MM-DD或天数)
-I 不活跃天数 密码过期后账户被锁定的天数
-l 列出当前账户的密码过期信息
-m 最小天数 设置密码修改的最小间隔天数
-M 最大天数 设置密码有效的最大天数
-W 警告天数 设置密码过期前的警告天数

实用示例

  1. 查看用户密码过期信息

    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. 设置密码过期策略

    chage -M 60 -m 7 -W 7 username
    
    • 密码最长有效期60天
    • 修改密码最小间隔7天
    • 密码过期前7天开始警告
  3. 设置账户过期日期

    chage -E 2023-12-31 username
    

    或使用天数(从1970-01-01开始计算):

    chage -E $(date -d "2023-12-31" +%s) username
    
  4. 强制用户下次登录时修改密码

    chage -d 0 username
    
  5. 禁用密码过期

    chage -M 99999 username
    

日期格式

chage 命令接受的日期格式可以是: - YYYY-MM-DD (如 2023-12-31) - 从1970年1月1日(UNIX纪元)开始的天数

实际应用场景

  1. 新员工账户设置

    # 创建用户
    useradd newuser
    # 设置初始密码
    echo "newuser:initialpassword" | chpasswd
    # 强制首次登录修改密码
    chage -d 0 newuser
    # 设置90天密码有效期
    chage -M 90 newuser
    
  2. 临时账户设置

    # 设置账户3个月后过期
    chage -E $(date -d "+3 months" +%Y-%m-%d) tempuser
    
  3. 批量修改用户策略

    # 为所有普通用户设置密码策略
    for user in $(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd); do
     chage -M 90 -m 7 -W 7 $user
    done
    

注意事项

  1. chage 命令需要 root 权限才能修改其他用户的设置
  2. 修改的设置会立即生效
  3. 密码策略信息存储在 /etc/shadow 文件中
  4. 对于LDAP或AD集成的系统,可能需要使用其他工具

相关文件

  • /etc/shadow - 存储用户密码和过期信息
  • /etc/login.defs - 系统默认的密码策略设置

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