如果你在Linux上启用了密码策略。密码必须在到期前进行更改,并且登录到系统时会收到通知。
如果你很少使用自己的帐户,那么可能由于密码过期而被锁定。在许多情况下,这可能会在无需密码登录的服务帐户中发生,因为没人会注意到它。
这将导致停止服务器上配置的cronjob/crontab。
如果如此,该如何缓解这种情况。
你可以写一个shell脚本来获得有关它的通知,我们前一段时间为此写了一篇文章。
使用Bash脚本发送包含几天内到期的用户账号列表的电子邮件它将给出天数,但是本文旨在在终端中给你实际日期。
这可以使用chage命令来实现。
什么是chage命令?chage代表更改时效changeage。它更改用户密码到期信息。
chage命令可以修改两次密码更改之间的天数,以及最后一次更改密码的日期。
系统使用此信息来确定用户何时应更改密码。
它还允许用户执行其他功能,例如设置帐户到期日期、在到期后将密码设置为无效、显示帐户时效信息、设置密码更改之前的最小和最大天数以及设置到期警告天数。
1)如何在Linux上检查特定用户的密码到期日期如果要检查Linux上特定用户的密码到期日期,请使用以下命令。
#chage-ldaygeekLastpasswordchange:Feb13,2020Passwordexpires:May13,2020Passwordinactive:neverAccountexpires:neverMinimumnumberofdaysbetweenpasswordchange:7Maximumnumberofdaysbetweenpasswordchange:90Numberofdaysofwarningbeforepasswordexpires:72)如何在Linux上检查所有用户的密码到期日期你可以直接对单个用户使用chage命令,不过可能你对多个用户使用时可能无效。
为此,你需要编写一个小的shell脚本。下面的shell脚本可以列出添加到系统中的所有用户,包括系统用户。
#foruserin$(cat/etc/passwd|cut-d:-f1);doecho$user;chage-l$user|grep"Passwordexpires";done|paste-d""--|sed's/Passwordexpires//g'你将得到类似以下的输出,但是用户名可能不同。
root:neverbin:neverdaemon:neveradm:neverlp:neversync:nevershutdown:neveru1:Nov12,2018u2:Jun17,2019u3:Jun17,2019u4:Jun17,2019u5:Jun17,20193)如何检查Linux上除系统用户外的所有用户的密码有效期下面的shell脚本将显示有到期日期的用户列表。
#foruserin$(cat/etc/passwd|cut-d:-f1);doecho$user;chage-l$user|grep"Passwordexpires";done|paste-d""--|sed's/Passwordexpires//g'|grep-v"never"你将得到类似以下的输出,但是用户名可能不同。
u1:Nov12,2018u2:Jun17,2019u3:Jun17,2019u4:Jun17,2019u5:Jun17,2019