如何在Linux中检查用户密码的到期日期
如果您在Linux上启用了密码策略,则必须在密码过期之前对其进行更改,否则,登录时会提示您更改密码,直到密码过期为止。这通常是7天的宽限期。
出于安全原因,定期更改密码被认为是一种好习惯。
如果您很少使用帐户,则可能由于密码过期而被锁定。
在许多情况下,这种情况可能会在使用无密码登录的服务帐户中发生,因为没有人可以监视它。
这将导致停止在Linux服务器上配置的cronjobs / crontab。如果是这样,如何缓解这种情况?
编写shell脚本可以发送通知,而我们不久前也写了一篇有关它的文章。请转到下面的链接以了解更多信息。
Bash脚本发送带有“ X”天到期的用户帐户列表的电子邮件
上面的脚本将为您提供密码到期的剩余天数,但是本文旨在为您提供终端上的实际日期,这可以通过’chage’命令来实现。
什么是chage命令?
chage代表变革时代。它用于修改用户密码到期信息。它使您可以查看用户帐户的老化信息,更改两次密码更改之间应该经过的天数以及查看上次密码更改的日期。
系统使用此信息来确定用户何时应更改其密码。
它允许管理员执行其他功能,例如设置帐户到期日期,将到期后的密码设置为无效以及设置到期警告。
1)如何在Linux上查看特定用户的密码有效期限?
如果要检查Linux中特定用户的密码到期日期,请使用以下命令:
# chage -l daygeek Last password change : Feb 13, 2020 Password expires : May 13, 2020 Password inactive : never 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 : 7
2)如何查看Linux上所有用户的密码有效期限?
chage 命令可用于查看特定用户的密码到期日期,但不能一次查询多个用户的此信息。
为此,您可能需要编写一个小的Shell脚本。以下shell脚本允许您列出所有用户(包括系统用户)的密码到期日期:
$ sudo vi /opt/scripts/user-password-expiration-date.sh #!/bin/sh for user in $(cat /etc/passwd |cut -d: -f1) do echo $user chage -l $user | grep "Password expires" done | paste -d " " - - | sed 's/Password expires//g'
置对shell脚本文件的可执行权限:
$ sudo chmod +x /opt/scripts/user-password-expiration-date.sh
执行脚本后,您将获得类似以下的输出,但用户名可能有所不同(示例用户均为u1至u5)
$ sudo sh /opt/scripts/user-password-expiration-date.sh root : never bin : never daemon : never adm : never lp : never sync : never shutdown : never u1 : Nov 12, 2018 u2 : Jun 17, 2019 u3 : Jun 17, 2019 u4 : Jun 17, 2019 u5 : Jun 17, 2019
3)如何查看Linux上除系统用户外的所有用户的密码有效期?
下面的shell脚本将显示用户列表(不包括系统用户)以及他们的密码到期日期:
$ sudo vi /opt/scripts/user-password-expiration-date-1.sh #!/bin/sh for user in $(cat /etc/passwd |cut -d: -f1) do echo $user chage -l $user | grep "Password expires" done | paste -d " " - - | sed 's/Password expires//g' | grep -v "never"
设置对shell脚本文件的可执行权限:
$ sudo chmod +x /opt/scripts/user-password-expiration-date-1.sh
您将得到类似下面的输出,但是用户名可能不同(示例用户都是u1到u5):
$ sudo sh /opt/scripts/user-password-expiration-date-1.sh u1 : Nov 12, 2018 u2 : Jun 17, 2019 u3 : Jun 17, 2019 u4 : Jun 17, 2019 u5 : Jun 17, 2019
结束语
在本指南中,您学习了如何使用Shell脚本查找所有Linux用户的失效日期