Introduzione
Esistono diversi schemi di autenticazione che possono essere utilizzati su sistemi Linux. Lo schema standard più comunemente usato è quello di eseguire l'autenticazione verso i file /etc/passwd
e /etc/shadow
.
/etc/shadow
è un file di testo che contiene informazioni sulle password degli utenti del sistema. È di proprietà dell'utente root e del gruppo shadow e dispone di 640 autorizzazioni.
Formato del file /etc/shadow
Il file /etc/shadow
contiene una voce per riga, ognuna delle quali rappresenta un account utente. Puoi visualizzare il contenuto del file con un editor di testo o un comando come cat
:
sudo cat /etc/shadow
In genere, la prima riga descrive l'utente root, seguito dal sistema e dai normali account utente. Le nuove voci vengono aggiunte alla fine del file.
Ogni riga del file /etc/shadow
contiene nove campi separati da virgola:
mark:$6$.n.:17736:0:99999:7:::
[--] [----] [---] - [---] ----
| | | | | |||+-----------> 9. Unused
| | | | | ||+------------> 8. Expiration date
| | | | | |+-------------> 7. Inactivity period
| | | | | +--------------> 6. Warning period
| | | | +------------------> 5. Maximum password age
| | | +----------------------> 4. Minimum password age
| | +--------------------------> 3. Last password change
| +---------------------------------> 2. Encrypted Password
+----------------------------------------> 1. Username
- Username (Nome utente). La stringa digitata quando si accede al sistema. L'account utente che esistente sul sistema.
- Encrypted Password (Password crittografata). La password utilizza il formato
$type$salt$hashed
.$type
è l'algoritmo di crittografia hash del metodo e può avere i seguenti valori:
$1$
- MD5
$2a$
- Blowfish
$2y$
- Eksblowfish
$5$
- SHA-256
$6$
- SHA-512
Se il campo password contiene un asterisco (*
) o un punto esclamativo (!
), l'utente non sarà in grado di accedere al sistema utilizzando l'autenticazione con password. Altri metodi di accesso come l'autenticazione basata su chiave o il passaggio all'utente sono ancora consentiti.
Nei sistemi Linux precedenti, la password crittografata dell'utente era archiviata nel file /etc/passwd
.
- Last password change (Ultima modifica della password). Questa è la data dell'ultima modifica della password. Il numero dei giorni è conteggiato dal 1 ° gennaio 1970 (epoch date).
- Minimum password age (Età minima della password). Il numero di giorni che devono trascorrere prima che la password dell'utente possa essere modificata. In genere è impostato su zero, il che significa che non esiste una durata minima della password.
- Maximum password age (Età massima della password). Il numero di giorni dopo che la password dell'utente deve essere modificato. Per impostazione predefinita, questo numero è impostato su
99999
. - Warning period (Periodo di avviso). Il numero di giorni prima della scadenza della password durante il quale l'utente viene avvisato che la password deve essere modificata.
- Inactivity period (Periodo di inattività). Il numero di giorni dopo la scadenza della password dell'utente prima che l'account sia disabilitato. In genere questo campo è vuoto.
- Expiration date (Data di scadenza). La data in cui l'account è stato disabilitato. È rappresentato come una data di epoca.
- Unused (Inutilizzato). Questo campo è ignorato. È riservato per uso futuro.
Il file /etc/shadow
non deve essere modificato manualmente a meno che tu non sappia cosa stai facendo. Utilizzare sempre un comando progettato per lo scopo. Ad esempio, per modificare una password utente, utilizzare il comando passwd
e per modificare le informazioni sulla scadenza della password, utilizzare il comando chage
.
Esempio
Diamo un'occhiata al seguente esempio:
noviello:$1$bgfrJMa5U384smbQ$z6nch...:18009:0:120:7:14::
La voce sopra contiene informazioni sull'utente "noviello" password:
- La password è crittografata con SHA-512 (la password viene troncata per una migliore leggibilità).
- La password è stata modificata l'ultima volta il 23 aprile 2019 -
18009
. - Non esiste un'età minima per la password.
- La password deve essere cambiata almeno ogni 120 giorni.
- L'utente riceverà un messaggio di avviso sette giorni prima della data di scadenza della password.
- Se l'utente non tenta di accedere al sistema 14 giorni dopo la scadenza della password, l'account verrà disabilitato.
- Non esiste una data di scadenza dell'account.
Conclusione
Il file /etc/shadow
tiene traccia delle password degli utenti crittografati e di altre informazioni relative alle password.