首页>教程>Linux 命令手册> 用户与权限管理 >Linux chage 命令 - 更改用户密码过期信息

Linux chage 命令 - 更改用户密码过期信息

chage (全称为 change age)命令是 Linux、Unix 系统中用于管理用户密码与账户过期信息的一款命令,专门用于修改用户的密码有效期、账户的失效时间、密码修改的间隔时间等与密码相关的信息,是系统管理员管理用户账户安全与设置密码策略的必备工具。

[!TIP]

该命令与 passwd 命令的功能非常的相似。

chage 命令语法结构

chage 命令的语法非常的简单,其具体语法形式为:

chage [选项] 用户名

语法中各部分的解释说明:

  • [选项]:可选的内容,用于指定具体配置操作,可以多个选项组合在一起使用,当不适用任何选项时,会进入交互配置模式
  • 用户名:必选的内容,指定需要操作的用户

chage 命令使用示例

chage 命令用户管理用户的密码信息,在该部分给出其详细的使用示例,方便掌握如何使用 chage 命令。

[!TIP]

普通用户只能使用 -l 选项查询自身信息,其他操作需要以 root 权限或者 sudo 权限执行。

查询用户账户的时效信息

使用 -l--list 选项查看与用户密码相关的信息:

chage -l testuser

[!WARNING]

当不使用 rootsudo 权限执行命令时,用户名必须是当前登录的用户。

强制用户下次登录必须修改密码

使用 -d--lastday 选项并赋值 0 时强制用户下次登录后设置密码:

chage -d 0 testuser

设置用户账户自动过期

使用 -E--expiredate 选项设置账户的过期日期:

chage -E $(date -d +180days +%Y-%m-%d) testuser

命令解释说明:

设置账户 180 天后过期,使用 date -d +180days +%Y-%m-%d 命令自动生成 180 天后的日期。

移除用户账户过期时间(永久有效)

使用 -E--expiredate 选项把选项的值赋为 -1 删除过期时间,使用户永久有效:

chage -E -1 testuser

设置密码的最长有效期

使用 -M--maxdays 选项设置密码的最大有效天数:

chage -M 90 testuser

解释说明:

设置后,每隔相应的天数内就需要修改一次密码,如果在最大的有效天数内没有修改密码,则账户无法登录。

设置修改密码的最小间隔

使用 -m--mindays 选项设置密码最小修改间隔,即在最小间隔天数内只能修改一次密码:

chage -m 7 testuser

设置密码过期前的提醒

使用 -W--warndays 选项设置密码过期前多少天会提醒用户:

chage -W 7 testuser

该示例会在用户密码到期前 7 天,用户登录时会收到密码即将过期的提醒信息。

chage 命令选项详解

chage 命令专用于密码信息管理,它有很多不同的选项对应不同的操作,如下给出所有选项的详细解释说明:

选项详细功能说明
-d, --lastday LAST_DAY设置密码的最后修改时间,LAST_DAY 的值可以是时间戳或 YYYY-MM-DD 格式的时间,当值设置为 0 时,强制用户下次登录时修改密码
-E, --expiredate EXPIRE_DATE设置用户账户的过期日期,EXPIRE_DATE 的值可以是时间戳或 YYYY-MM-DD 格式的时间,当值设置为 -1 时,移除过期时间的限制
-h, --help显示命令的帮助信息并退出
-i, --iso8601以 YYYY-MM-DD 形式的时间格式显示日期信息
-I, --inactive INACTIVE设置密码过期后多少天后锁定用户,当值设置为 -1 时,移除锁定限制
-l, --list列出指定用户账户密码的时效信息,普通用户只能指定自己的用户名
-m, --mindays MIN_DAYS设置修改密码的最小间隔天数,当值设置为 0 时,可以随时修改密码
-M, --maxdays MAX_DAYS设置用户密码的最大有效天数,当值设置为 -1 时,取消密码有效期的检查
-R, --root CHROOT_DIR在指定 CHROOT_DIR 目录中执行操作,会使用 CHROOT_DIR 目录中的配置
-P, --prefix PREFIX_DIR在指定 PREFIX_DIR 目录中执行操作,会使用 PREFIX_DIR 目录中的配置,但是不会执行 chroot 操作。
-W, --warndays WARN_DAYS设置密码过期前多少数提醒用户修改密码

相关配置文件解释说明

chage 命令的所有操作的结果都会写入相应的配置文件,如下是与 chage 命令相关的配置文件:

文件路径说明
/etc/passwd存储用户账户的基本信息,密码位使用 x 占位符来表示
/etc/shadow存储加密后的密码、密码的过期时间、锁定状态等需要进行安全管理的信息

chage 命令的退出状态码

chage 执行后返回不同状态码,可用于脚本判断执行结果:

退出状态码含义
0命令执行成功
1执行权限不足,操作被拒绝
2命令语法错误,选项无效
15无法找到 /etc/shadow 配置文件,命令执行失败

结语

chage 是 Linux / Unix 系统中用于账户安全管理的工具,可以用来配置用户密码的时效、账户过期时间、提前多少天提醒用户等信息,可以提升系统账户的安全性。