Cos'è#
La directory /etc/ contiene i file di configurazione globali del sistema operativo e delle applicazioni installate. Il nome deriva da "Editable Text Configuration" o storicamente "et cetera".
Gerarchia delle Configurazioni#
In Linux esiste una gerarchia di priorità per le impostazioni:
- System-wide (
/etc/): Impostazioni globali per tutti gli utenti. - User-specific (
~/.config/o~/.*): Impostazioni che sovrascrivono quelle globali solo per l'utente corrente.
File di riferimento rapido in /etc/#
| File | Scopo |
|---|---|
/etc/passwd | Database utenti locali — leggibile da tutti |
/etc/group | Database gruppi locali |
/etc/shadow | Hash delle password — solo root puo' leggerlo |
/etc/sudoers | Lista utenti con privilegi elevati |
/etc/nsswitch.conf | Configura da dove getent prende i dati |
/etc/shadow — come sono codificate le password#
sudo less /etc/shadow
# Formato di ogni riga:
# utente:$id$salt$hash:giorni_ultimo_cambio:min:max:avviso:...
# Il campo $id identifica l'algoritmo usato:
# $6$ = SHA-512 (standard moderno — Linux da anni)
# $5$ = SHA-256
# $y$ = yescrypt (Ubuntu e Kali recenti — piu' resistente)
# $1$ = MD5 (vecchio, insicuro — non dovrebbe piu' comparire)
# ! = account bloccato (vedi usermod -L)
# * = account senza password (utenti di sistema come daemon, nobody)# Esempio riga reale (valori fittizi):
barno:$y$j9T$sAlTcAsUaLe$hAsHlUnGo123456:19800:0:99999:7:::
^
yescrypt — sistema modernoIl salt e' un valore casuale generato al momento della creazione della password. Due utenti con la stessa password producono hash completamente diversi perche' il salt e' diverso. Questo blocca i rainbow table attack: non puoi precomputare gli hash perche' non conosci il salt in anticipo.
/etc/shadow e' leggibile solo da root. /etc/passwd e' leggibile da tutti perche' molti programmi ne hanno bisogno. La separazione tra i due file e' una scelta di sicurezza: le password hash stanno nel file protetto, le informazioni non sensibili nel file pubblico.
/etc/group — perche' il nome appare in posizioni diverse#
cat /etc/group | grep -i barno
# barno:x:1000: <- barno e' il PROPRIETARIO del gruppo
# kaboxer:x:130:barno <- barno e' MEMBRO aggiuntivo del gruppo kaboxerIl formato e' nome:x:GID:lista_membri_aggiuntivi.
Il quarto campo contiene solo i membri secondari.
Se sei il proprietario (primary group), il tuo nome e' nel primo campo
e non si ripete nel quarto.
Scenario Reale (Incident Response)#
# DNS Hijacking: server che non risolve i nomi
cat /etc/resolv.conf # IP DNS sconosciuto? Possibile hijacking
# Account sospetto: utente con UID 0 non autorizzato
awk -F: '$3 == 0 {print $1}' /etc/passwd
# Solo "root" dovrebbe comparire
# Password deboli: cerca account con algoritmo MD5 ($1$)
sudo grep ':\$1\$' /etc/shadow
# Ogni risultato e' un account a rischio — hash MD5 e' craccabileCollegato a#
- system — categoria
- iam — categoria
- linux-filesystem-hierarchy — contesto struttura
- user-management — comandi per gestire utenti
- etc-passwd-anatomy — struttura dettagliata di passwd


