插件窝 干货文章 学习Linux chage命令的参数和用法

学习Linux chage命令的参数和用法

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

Linux 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 天数 设置密码过期前的警告天数

使用示例

  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. 设置密码过期时间(90天后过期)

    chage -M 90 username
    
  3. 设置密码修改最小间隔(7天内不能修改密码)

    chage -m 7 username
    
  4. 设置账户过期日期(2023-12-31)

    chage -E 2023-12-31 username
    
  5. 强制用户下次登录时修改密码

    chage -d 0 username
    
  6. 禁用账户过期功能

    chage -E -1 username
    

高级用法

  1. 批量设置多个用户的密码策略

    for user in user1 user2 user3; do
     chage -M 60 -m 7 -W 7 $user
    done
    
  2. 查找即将过期的账户

    awk -F: '($2 != "*" && $2 != "!!") {print $1}' /etc/shadow | while read user; do
     echo -n "$user: "
     chage -l $user | grep "Password expires"
    done
    
  3. 使用天数而不是日期设置(从1970-1-1开始计算)

    chage -d $(date +%s -d "2023-01-01")/86400 username
    

注意事项

  1. chage 命令需要 root 权限才能修改其他用户的信息
  2. 修改的信息存储在 /etc/shadow 文件中
  3. 密码策略设置应符合组织安全规范
  4. 对于服务账户,通常应设置为密码永不过期
  5. 使用 -E -1 可以取消账户的过期日期

相关文件

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

chage 是 Linux 用户账户安全管理的重要工具,合理设置密码过期策略可以有效提高系统安全性。