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.