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]
当不使用
root或sudo权限执行命令时,用户名必须是当前登录的用户。
强制用户下次登录必须修改密码
使用 -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 系统中用于账户安全管理的工具,可以用来配置用户密码的时效、账户过期时间、提前多少天提醒用户等信息,可以提升系统账户的安全性。