如何找到所有锁定Unix用户帐户的方法


12

我有时会发现自己处于维护不足的系统帐户被锁定的情况。问题在于,可以通过多种方式锁定帐户,每种方式都有其自己的解锁方法。

这并不是说帐户被意外锁定,而是要找到正确的重置密码是困难的。

我最近对这个问题的攻击是在SUSE系统上进行的,结果证明密码已过期(最初不知道,因为登录尝试不是通过提供这种反馈的系统进行的),然后又锁定了由于登录尝试失败。

是否在所有可能的帐户锁定中都列出了清单,以及如何禁用它们?我打算将实际损坏(例如主目录访问问题,损坏的PAM库等)排除在这个问题之外。

Answers:


13

您可以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

passwdchage实用程序还列出许多帐户锁定。

您可以用来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

7

总的来说:不。

Iain的答案很好地总结了如何查询密码老化系统,但漏掉了各种各样的东西。例如:

  • sshd配置中的指令可能会禁止尝试通过ssh登录的人。
  • 系统可以配置为仅允许某个网络组的成员登录。
  • 本地PAM配置可能需要显式的组成员身份才能登录,或者可能仅允许特定的用户列表。
  • 看起来像锁定帐户的帐户可能是主目录访问问题。
  • 可能已经有人创建了/etc/nologin,这对于某些应用程序(例如ssh)将锁定所有用户。

换句话说,帐户被锁定的方式有很多与passwd文件无关。最好的选择是检查/var/log/secure或分配适合的本地模拟产品。


我要问的问题是假设事情没有“中断”,并且用户之前已经能够登录。也就是说,某些功能正常的帐户被锁定。这些都是很好的观点,但是我将对问题进行更明确的更新。
wfaulk 2013年

1

除了上述passwd chage和之外getent,还有pam_tally2

如果失败的登录尝试次数超过允许的限制(在/etc/pam.d/password-auth中设置),则必须先执行操作,pam_tally2 --user=foo --reset然后才能再次登录。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.