Come trovare tutti i modi in cui un account utente Unix è bloccato


12

Occasionalmente mi trovo in una situazione in cui un sistema non gestito ha un account che è stato bloccato. Il problema è che esistono diversi modi in cui un account può essere bloccato, ognuno con il proprio metodo di sblocco.

Non è che l'account sia stato bloccato in modo improprio, solo inaspettatamente, ma è difficile trovare il blocco corretto da ripristinare.

Il mio ultimo attacco a questo problema è stato su un sistema SUSE, e si è scoperto che la password era scaduta (che inizialmente non era noto perché i tentativi di accesso non erano attraverso un sistema che forniva quel tipo di feedback), e poi bloccato a causa di tentativi di accesso falliti.

Esiste un elenco da qualche parte di tutti i diversi blocchi account possibili e come disabilitarli? Intendo che l'effettiva interruzione, come problemi di accesso alla home directory, librerie PAM corrotte, ecc., Non rientri in questa domanda.

Risposte:


13

È possibile utilizzare passwdper raccogliere alcune informazioni, ad esempio se un account è bloccato

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)

L' chageutilità fornirà informazioni sui vari timer su un account, ad esempio per una password non scaduta

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

per una password scaduta

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

Le utilità passwde chageelencano anche molti dei blocchi degli account.

È possibile utilizzare getentper estrarre le informazioni direttamente dal database pertinente per l'esame

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

In generale: no.

La risposta di Iain è un buon riassunto di come interrogare i sistemi di invecchiamento della password, ma ha perso ogni sorta di cose. Per esempio:

  • Qualcuno che tenta di accedere tramite ssh potrebbe essere vietato dalle direttive nella sshdconfigurazione.
  • Un sistema può essere configurato per consentire l'accesso solo ai membri di un determinato netgroup.
  • La PAMconfigurazione locale può richiedere l'appartenenza esplicita al gruppo per l'accesso o può consentire solo un determinato elenco di utenti.
  • Quello che sembra un account bloccato potrebbe rivelarsi un problema di accesso alla directory principale.
  • Qualcuno potrebbe aver creato /etc/nologin, che per alcune applicazioni (ad es. ssh) Bloccherà tutti gli utenti.

In altre parole, ci sono molti modi per bloccare un account che non hanno nulla a che fare con il passwdfile. La soluzione migliore è verificare /var/log/secureo l'analogo locale appropriato per la distribuzione.


Intendevo la mia domanda supporre che le cose non fossero "rotte" e che l'utente fosse stato in grado di accedere prima. Cioè, alcuni sistemi che funzionano correttamente hanno bloccato l'account. Questi sono buoni punti, ma aggiornerò la domanda per essere un po 'più esplicito.
wfaulk,

1

Oltre a quanto sopra, passwd chagee getent, c'è anchepam_tally2

Se il numero di tentativi di accesso falliti è superiore al limite consentito (che è impostato in /etc/pam.d/password-auth), dovrai farlo pam_tally2 --user=foo --resetprima di poter accedere nuovamente.


0

Lo script seguente ti darebbe una breve descrizione di tutti gli utenti e il loro stato (bloccato o no)

cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }'

Questo controlla solo uno dei modi in cui un account può essere bloccato.
wfaulk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.