使用 chage 管理 Linux 密码过期和老化
最佳实践建议用户定期更改密码。但通常情况下,Linux 系统的开发人员和其他用户不会更改密码,除非他们被迫更改密码。
找到强制开发人员更改密码的方法是系统管理员的责任。用枪顶着用户强迫用户更改密码不是一种选择!尽管大多数具有安全意识的系统管理员甚至可能会尝试这样做。
在本文中,让我们了解一下如何使用 Linux chage 命令执行几个实用的密码老化活动,包括如何强制用户更改密码。
在 debian 上,您可以通过执行以下命令来安装 chage:
# apt-get install chage
注意:这个命令很容易打错字。您可能最终将其输入为 change,而不是 chage。请记住 chage 代表“改变年龄”。即chage命令的缩写类似于chmod、chown等,
1. 列出用户的密码及其相关详细信息
如下图,任何用户都可以自己执行chage命令来识别自己的密码什么时候到期。
Syntax: chage –-list username (or) chage -l username
$ chage --list dhinesh
Last password change : Apr 01, 2009
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
如果用户 dhinesh 尝试为用户 ramesh 执行相同的命令,他将收到以下权限被拒绝的消息。
$ chage --list ramesh
chage: permission denied
注意:但是,root 用户可以为任何用户帐户执行 chage 命令。
当用户 dhinesh 在 2009 年 4 月 23 日更改他的密码时,它将更新“Last password change”值,如下所示。
$ date
Thu Apr 23 00:15:20 PDT 2014
$ passwd dhinesh
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
$ chage --list dhinesh
Last password change : Apr 23, 2009
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
2. 使用 chage 选项 -M 为用户设置密码到期日期
root 用户(系统管理员)可以为任何用户设置密码到期日期。在以下示例中,用户 dhinesh 密码设置为自上次更改密码后 10 天到期。
请注意,选项 -M 将更新“密码过期”和“密码更改之间的最大天数”条目,如下所示。
Syntax: # chage -M number-of-days username
# chage -M 10 dhinesh
# chage --list dhinesh
Last password change : Apr 23, 2009
Password expires : May 03, 2009
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 10
Number of days of warning before password expires : 7
3. 登录时密码过期警告信息
默认情况下,密码过期前的警告天数设置为 7。因此,在上面的示例中,当用户 dhinesh 尝试在 2009 年 4 月 30 日登录时,他将收到以下消息。
$ ssh dhinesh@tiamo
dhinesh@testingserver's password:
Warning: your password will expire in 3 days
4. 用户在到期后被迫更改密码
如果密码到期且用户未更改密码,系统将强制用户在登录前更改密码,如下所示。
$ ssh dhinesh@tiamo
dhinesh@testingserver's password:
You are required to change your password immediately (password aged)
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for dhinesh
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
5. 为用户设置账户到期日
您还可以使用 chage 命令使用选项 -E 设置帐户到期日期,如下所示。下面给出的日期采用“YYYY-MM-DD”格式。这将更新“帐户到期”值,如下所示。
# chage -E "2014-05-31" dhinesh
# chage -l dhinesh
Last password change : Apr 23, 2014
Password expires : May 03, 2014
Password inactive : never
Account expires : May 31, 2014
Minimum number of days between password change : 0
Maximum number of days between password change : 10
Number of days of warning before password expires : 7
6. 强制用户帐户在 X 天不活动天数后被锁定
通常,如果密码已过期,用户将在下次登录时被迫更改密码。您还可以设置一个附加条件,在密码过期后,如果用户在 10 天内从未尝试登录,您可以使用选项 -I 自动锁定他们的帐户,如下所示。在此示例中,“密码无效”日期设置为“密码过期”值的 10 天。
一旦帐户被锁定,只有系统管理员才能解锁它。
# chage -I 10 dhinesh
# chage -l dhinesh
Last password change : Apr 23, 2009
Password expires : May 03, 2009
Password inactive : May 13, 2009
Account expires : May 31, 2009
Minimum number of days between password change : 0
Maximum number of days between password change : 10
Number of days of warning before password expires : 7
7.如何禁用用户帐户的密码老化
要关闭用户帐户的密码过期,请设置以下内容:
- -m 0将密码更改之间的最小天数设置为 0
- -M 99999将密码更改之间的最大天数设置为 99999
- -I -1(数字减一)将“密码无效”设置为从不
- -E -1(数字减一)将“帐户过期”设置为从不。
# chage -m 0 -M 99999 -I -1 -E -1 dhinesh
# chage --list dhinesh
Last password change : Apr 23, 2009
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
- 点赞
- 收藏
- 关注作者
评论(0)