dump / output / list所有用户的Linux密码过期信息

上下文

所以我build立了一个新的Debian服务器,并增加了一些用户的网页空间等等,这是平常的事情。

向前跳过180天,用户开始抱怨login无效。 鉴于不止一个人提出了,我检查了身份validation日志和… BOOM。 由于密码过期而导致login失败。 党!

傻我没有考虑在这个特定的服务器上的密码过期政策。

请注意,这些用户没有shell权限,但可以通过sftplogin来pipe理他们的networking空间。 所以即使他们知道,他们也不会被提醒过期或者有能力改变密码。 从我可以告诉,错误只是被logging在服务器端。 客户端这是一个通用的身份validation错误。

如何轻松询问服务器以获取所有用户的密码过期信息?

一旦我有了这些信息,我就可以很容易地看到哪些用户正在受到影响以及将来会受到哪些影响。

像这样的命令应该会显示/etc/passwd定义的所有帐户的到期状态。

 cut -f 1 -d: /etc/passwd | xargs -n 1 -I {} bash -c " echo -e '\n{}' ; chage -l {}" 

重要的命令是chage -l username 。 这是返回用户到期状态的命令。 Chage也是您用来修改过期规则的命令。 根据您的系统设置,您可能需要在chage之前添加sudo

你也可以使用这个简单的命令:

awk -F':' '{ system("echo " $1 " && chage -l " $1) }' /etc/passwd

使用awksystem使它更简单。

1. awk -F':' here :是以/etc/passwd文件作为input的字段分隔符。

2. system("echo " $1 " && chage -l " $1)这将首先回声$1和用户的密码到期信息chage -l