Le ACL (Access Control List) in Linux estendono i permessi classici Unix e permettono di gestire accessi in modo piu granulare. Sono utili quando il modello tradizionale owner/group/others non basta.
Cosa sono le ACL
Nel modello classico, ogni file o directory ha permessi per tre classi: proprietario, gruppo, altri. Le ACL aggiungono regole dedicate a utenti o gruppi specifici, mantenendo una gestione piu precisa del principio del minimo privilegio.
Comandi principali:
getfaclper leggere ACL correntisetfaclper impostare, modificare o rimuovere ACL
Quando usare le ACL
- quando piu utenti devono accedere alla stessa directory con permessi diversi
- quando serve concedere eccezioni senza cambiare proprietario o gruppo principale
- quando vuoi evitare permessi troppo larghi come
777 - quando devi mantenere policy di sicurezza piu rigorose in ambienti multiutente
Esempi pratici
Concedere accesso a un utente specifico
sudo setfacl -m u:deploy:rwx /srv/progetto/shared
Impostare ACL di default su una directory
Le ACL di default si applicano ai nuovi file e directory creati al suo interno:
sudo setfacl -m d:u:deploy:rwx /srv/progetto/shared
Verificare ACL effettive
getfacl /srv/progetto/shared
Attenzione alla voce mask: puo limitare i permessi effettivi anche quando una regola sembra piu permissiva.
Relazione con chmod e permessi tradizionali
ACL e permessi classici convivono. Se usi chmod, la maschera ACL puo essere aggiornata e influenzare l’accesso reale. Per questo e importante verificare sempre con getfacl dopo modifiche di permessi.
Storia delle ACL in breve
- Anni 60-70: primi modelli ACL in sistemi multiutente storici.
- Anni 90: sviluppo delle estensioni sicurezza nel progetto IEEE POSIX 1003.1e.
- Ottobre 1997: riferimento tecnico nella bozza POSIX.1e Draft 17.
- Gennaio 1998: il percorso di standardizzazione POSIX.1e viene ritirato, ma il modello ACL continua a essere adottato.
- Novembre 2002: supporto ACL POSIX incluso nel kernel Linux 2.5.46 (ramo di sviluppo).
- Dal 2003 in poi: diffusione nei filesystem Linux usati in produzione (ext*, XFS e altri).
In pratica, pur senza uno standard finale ratificato, le ACL Linux sono diventate uno strumento stabile nell’amministrazione di sistemi Unix-like.
Buone pratiche
- applicare ACL solo dove necessario
- documentare le regole in runbook operativi
- verificare periodicamente con audit dei permessi
- preferire approccio minimo privilegio rispetto a scorciatoie permissive