前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术|如何在 Linux 上检查所有用户密码到期日期

技术|如何在 Linux 上检查所有用户密码到期日期

原创
作者头像
知忆
修改2021-07-07 10:17:11
1.7K0
修改2021-07-07 10:17:11
举报
文章被收录于专栏:linux百科小宇宙linux百科小宇宙

如果你在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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档