In Linux, le password sono memorizzate in modo sicuro nei file di sistema e nei database per gestire l’autenticazione degli utenti e il controllo degli accessi. Capire dove Linux memorizza le password e come vengono protette è essenziale per gli amministratori di sistema e i professionisti della sicurezza.

1. Il file /etc/passwd (informazioni sull’utente)

Il file /etc/passwd contiene un elenco di tutti gli utenti del sistema, insieme ai dettagli di base degli account.

Esempio di inserimento in /etc/passwd:

username:x:1001:1001:User Name:/home/username:/bin/bash

Campi spiegati:

  • username: il nome di login dell’utente.
  • x: Segnaposto che indica che la password è memorizzata in un file separato.
  • 1001:1001: ID utente (UID) e ID gruppo (GID).
  • Nome utente: Nome completo o descrizione dell’utente.
  • /home/username: la directory home dell’utente.
  • /bin/bash: La shell predefinita assegnata all’utente.

2. Il file /etc/shadow (password crittografate)

Linux memorizza gli hash delle password effettive nel file /etc/shadow, accessibile solo all’utente root.

Esempio di inserimento in /etc/shadow:

username:$6$abc123$XYZhashedpassword:18528:0:99999:7:::

Campi spiegati:

  • $6$: indica l’algoritmo di crittografia (SHA-512 in questo caso).
  • abc123: Sale utilizzato per l’hash della password.
  • XYZhashedpassword: la password effettiva sottoposta a hash.
  • 18528: data dell’ultima modifica della password.
  • 0:99999:7: Informazioni sull’invecchiamento della password (validità minima e massima della password).

Controllo dell’algoritmo di hashing della password:

Per vedere l’algoritmo di hashing utilizzato, eseguire:

cat /etc/shadow | grep username

3. Il file /etc/group (informazioni sul gruppo)

Il file /etc/group contiene informazioni sui gruppi di utenti e sulle appartenenze ai gruppi.

Esempio di inserimento in /etc/group:

developers:x:1002:username1,username2

4. La directory /var/lib/AccountsService/ (account utente GUI)

Alcune distribuzioni Linux memorizzano le preferenze degli account utente per i login GUI in:

/var/lib/AccountsService/users/

Questi file contengono metadati come i nomi di visualizzazione e le preferenze di sessione, ma non memorizzano le password.

5. Comandi per la gestione delle password

Modifica della password dell’utente:

passwd username

Visualizzazione delle informazioni sull’invecchiamento della password:

chage -l username

Forzare gli utenti a cambiare la password al prossimo accesso:

passwd --expire username

6. Come Linux protegge le password

  • Hashing e Salting: Le password non vengono mai memorizzate in chiaro. Sono invece sottoposte a hash e salatura per impedirne il recupero diretto.
  • Accesso solo per root: I file come /etc/shadow sono limitati all’accesso di root.
  • Moduli di autenticazione collegabili (PAM): L’autenticazione in Linux è gestita da PAM, che applica le politiche di sicurezza delle password.

Conclusione

Linux memorizza in modo sicuro le credenziali degli utenti in file di sistema come /etc/passwd e /etc/shadow, garantendo un accesso criptato e limitato. La comprensione di questi meccanismi di memorizzazione è essenziale per la sicurezza del sistema e la gestione degli utenti.