So finden Sie alle Möglichkeiten, wie ein Unix-Benutzerkonto gesperrt wird

12

Ich befinde mich gelegentlich in einer Situation, in der ein unterwartetes System ein Konto hat, das gesperrt wurde. Das Problem ist, dass es verschiedene Möglichkeiten gibt, ein Konto zu sperren, wobei jede ihre eigene Methode zum Entsperren hat.

Es ist nicht so, dass das Konto nicht ordnungsgemäß, nur unerwartet gesperrt wird, aber es ist schwierig, die richtige Sperre zum Zurücksetzen zu finden.

Mein letzter Angriff auf dieses Problem war auf einem SUSE-System, und es stellte sich heraus, dass das Kennwort abgelaufen war (was ursprünglich nicht bekannt war, da die Anmeldeversuche nicht über ein System erfolgten, das diese Art von Feedback lieferte) und dann auch gesperrt wurde aufgrund fehlgeschlagener Anmeldeversuche.

Gibt es irgendwo eine Liste der verschiedenen möglichen Kontosperren und wie man sie deaktiviert? Ich beabsichtige, dass tatsächliche Zerbrochenheit, wie z. B. Probleme beim Zugriff auf das Home-Verzeichnis, beschädigte PAM-Bibliotheken usw., für diese Frage nicht in Frage kommt.

wfaulk
quelle

Antworten:

13

Sie können passwdeinige Informationen sammeln, z. B. wenn ein Konto gesperrt ist

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)

Das chageDienstprogramm bietet Informationen zu den verschiedenen Timern eines Kontos, z. B. für ein nicht abgelaufenes Kennwort

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

für ein abgelaufenes Passwort

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

Die Dienstprogramme passwdund chagelisten auch viele der Kontosperren auf.

Sie können getentdie Informationen zur Prüfung direkt aus der entsprechenden Datenbank abrufen

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
user9517
quelle
7

Im Allgemeinen: nein.

Iains Antwort ist eine gute Zusammenfassung der Abfrage der Kennwortalterungssysteme, hat jedoch alle möglichen Dinge übersehen. Beispielsweise:

  • Jemand, der versucht, sich über ssh anzumelden, kann durch Anweisungen in der sshdKonfiguration gesperrt werden .
  • Ein System kann so konfiguriert werden, dass sich nur Mitglieder einer bestimmten Netzgruppe anmelden können.
  • Die lokale PAMKonfiguration erfordert möglicherweise eine explizite Gruppenmitgliedschaft, um sich anzumelden, oder erlaubt möglicherweise nur eine bestimmte Liste von Benutzern.
  • Was wie ein gesperrtes Konto aussieht, kann sich als Problem beim Zugriff auf das Home-Verzeichnis herausstellen.
  • Möglicherweise hat jemand etwas erstellt /etc/nologin, das für einige Anwendungen (z. B. ssh) alle Benutzer sperrt.

Mit anderen Worten, es gibt viele Möglichkeiten, ein Konto zu sperren, die nichts mit der passwdDatei zu tun haben . Am besten überprüfen Sie /var/log/securedas verteilungsgerechte lokale Analogon.

Larsks
quelle
Ich wollte mit meiner Frage davon ausgehen, dass die Dinge nicht "kaputt" waren und dass sich der Benutzer zuvor anmelden konnte. Das heißt, dass ein ordnungsgemäß funktionierendes System das Konto gesperrt hat. Dies sind gute Punkte, aber ich werde die Frage etwas expliziter aktualisieren.
Wfaulk
1

Neben den oben genannten passwd chageund getentgibt es auchpam_tally2

Wenn die Anzahl der fehlgeschlagenen Anmeldeversuche über dem zulässigen Grenzwert liegt (der in /etc/pam.d/password-auth festgelegt ist), müssen Sie dies tun, pam_tally2 --user=foo --resetbevor sie sich erneut anmelden können.

Jistanidiot
quelle
0

Das folgende Skript gibt Ihnen eine kurze Beschreibung aller Benutzer und ihres Status (gesperrt oder nicht).

cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }'
Arun Krishnan
quelle
Dies überprüft nur eine der Möglichkeiten, wie ein Konto gesperrt werden kann.
Wfaulk