Answers:
您可以passwd
用来收集一些信息,例如帐户是否被锁定
passwd -S user
user LK 2012-11-06 0 99999 7 -1 (Password locked.) (CentOS)
user L 01/22/2013 0 99999 7 -1 (Ubuntu)
该chage
实用程序将提供有关帐户上各种计时器的信息,例如未使用的密码
chage -l user
Last password change : Nov 12, 2012
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
输入过期的密码
chage -l user
Last password change : password must be changed
Password expires : password must be changed
Password inactive : password must be changed
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 22
Number of days of warning before password expires : 33
该passwd
和chage
实用程序还列出许多帐户锁定。
您可以用来getent
直接从相关数据库中提取信息以进行检查
getent passwd user
user:x:505:505::/home/passtest:/sbin/nologin <-- denied login
getent shadow user
user:!!:0:0:22:33:44:: <-- this is locked
总的来说:不。
Iain的答案很好地总结了如何查询密码老化系统,但漏掉了各种各样的东西。例如:
sshd
配置中的指令可能会禁止尝试通过ssh登录的人。PAM
配置可能需要显式的组成员身份才能登录,或者可能仅允许特定的用户列表。/etc/nologin
,这对于某些应用程序(例如ssh
)将锁定所有用户。换句话说,帐户被锁定的方式有很多与passwd
文件无关。最好的选择是检查/var/log/secure
或分配适合的本地模拟产品。
以下脚本将为您简要描述所有用户及其状态(是否锁定)
cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }'