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

wfa*_*ulk 12 linux unix authentication user-accounts

我偶尔会发现自己处于维护不足的系统有一个帐户被锁定的情况。问题是有多种方法可以锁定帐户,每种方法都有自己的解锁方法。

不是账户被不正确锁定,只是意外,但找到正确的锁定来重置很困难。

我最近对该问题的攻击是在 SUSE 系统上进行的,结果密码已过期(最初并不知道,因为登录尝试不是通过提供此类反馈的系统),然后也被锁定由于登录尝试失败。

是否有列出所有不同可能的帐户锁定以及如何禁用它们的列表?我打算解决实际损坏问题,例如主目录访问问题、损坏的 PAM 库等,不在此问题的范围内。

use*_*517 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)
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

对于过期的密码

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)


lar*_*sks 7

一般来说:没有。

Iain 的回答很好地总结了如何查询密码老化系统,但错过了各种事情。例如:

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

换句话说,有很多方法可以锁定与passwd文件无关的帐户。最好的办法是检查/var/log/secure或分发适当的本地模拟。