Perché conta
Il DAC di Linux si regge sui permessi dei file. Un permesso troppo largo è una fuga di dati silenziosa: una chiave SSH privata leggibile dal gruppo, un file di configurazione con una password del database aperto a tutti, uno script modificabile da chi non dovrebbe. Nessun alert suona — finché qualcuno non ne approfitta. Padroneggiare i permessi è l’abilità più elementare e più sbagliata dell’amministrazione.
Leggere ls -l
|
|
Tre terzine: utente (owner), gruppo, altri. Ogni terzina è r (lettura), w
(scrittura), x (esecuzione). Il kernel sceglie una sola terzina: se sei l’owner usa la prima; se no
ma sei nel gruppo, la seconda; altrimenti la terza. Non si sommano.
L’ottale, velocemente
Ogni terzina è un numero: r=4, w=2, x=1, sommati.
|
|
chmod e chown in pratica
|
|
La X maiuscola è un trucco utile: applica x alle directory (che vanno attraversate) ma non ai file
di dati, evitando di rendere eseguibile per errore un file di testo.
umask: i permessi di default
Quando crei un file, i suoi permessi sono 666 & ~umask (per i file) e 777 & ~umask (per le dir).
La umask sottrae permessi.
|
|
Impostare umask 027 per gli account di sistema e i servizi fa sì che i file nuovi non siano leggibili
dal mondo per default — una difesa passiva che non richiede di ricordarsi chmod ogni volta.
I file che DEVONO essere stretti
|
|
I world-writable (-perm -0002) sono il sospetto classico: un file che chiunque può modificare è
un file di cui non puoi fidarti — soprattutto se è uno script eseguito da root.
Conclusione
I permessi rwx, letti bene e stretti dove serve (600 per i segreti, umask 027 come default), chiudono la fuga di dati più banale e più comune. Restano tre bit che cambiano le regole del gioco e sono sorgente di vulnerabilità gravi quando usati male: SUID, SGID e lo sticky bit. Sono il prossimo capitolo, i permessi speciali.