chage 命令用于检查和更改用户密码的到期日期。利用该命令,系统管理员可以查看用户密码是什么时候修改的,可以修改这个日期,也可以在一定时间内冻结用户账户。
下面我们讨论几个关于 chage 命令常见的例子。
查看用户账户的变更信息
要查看用户账户的变更信息,可以使用 chage 命令和 -l 选项,如下所示:
这里:
- Last password chage 指示最近更改密码的日期;
- Password expires 显示密码的到期日期;
- Password inactive 将显示密码过期后账户处于非活动状态的天数;
- Minimum number of days between password change 显示两次密码更改之间所需的最短间隔时间;
- Maximum number of days between password change 显示当前密码还可使用的天数(当前密码需要更改的剩余天数)。
一旦您知道了所有字段的用法,您就可以使用以下命令在交互模式下使用chage命令,它会逐一检查每个字段:
锁定用户账户
chage 命令最常见的用途就是锁定用户账户。锁定用户的语法如下:
比如,接下来我们锁定一个用户名为 sagar 的账户:
一旦执行了锁定账户的命令,该账户就不能再登录系统了。
上述命令中,-E 选项用于设置账户的到期日期,然后 0 就是设定的其到期日期。
强制用户下次登录时更改密码
chage 命令还可以用于强制用户在下次登录时修改密码,通过如下命令来实现:
设置帐户到期日期
要设置用户账户的到期日期,可使用 -E 选项,后面跟具体的到期日期和用户名。比如,我们将用户 sagar 的到期日期设置为 2023年 4 月 11日:
以系统管理员身份删除帐户到期日期
当你的账户过期后,系统会发送一个报错信息:"account validation failure, is your account locked?"
解决这个问题,首先就是需要使用 su 命令获取 root 访问权限,然后执行如下命令:
然后再使用 chage 命令检查一下用户的信息,如下:
设置密码最大有效期(天数)
设置密码的有效期,可使用 -M 选项,如下所示:
比如,我们设置密码在使用 5 天后需要更改:
设置密码过期后账户处于非活动状态的天数
帐户不活动字段指示密码过期后帐户将保持不活动状态的天数。要设置非活动时间,可使用 -I 选项,如下:
比如,我们将账户的不活动时间设置为 12 天:
上面例子中,密码过期日期为 2023年 1 月 15 日,所以添加 12 天的非活动时间后,它的密码非活动字段显示为 2023 年 1 月 27 日。
在需要更改密码之前通知用户
我们可以使用 -W 选项来设置密码过期前的警告天数:
例如,如果我们想在密码到期 2 天之前发出警告,可以使用以下命令:
最后,不添加任何选项的情况下执行 chage 命令,可进入 chage 命令的交互模式,可更改每个信息: