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.