ACL Linux: storia, concetti e uso pratico
Introduzione
Le ACL (Access Control List) in Linux estendono il modello classico dei permessi Unix e consentono un controllo accessi piu granulare.
Quando owner, group e others non bastano, le ACL permettono di assegnare regole specifiche a singoli utenti o gruppi mantenendo il principio del minimo privilegio.
Concetti base
Nel modello standard Unix hai tre classi di permessi:
- proprietario
- gruppo
- altri
Con le ACL puoi aggiungere entry dedicate, ad esempio per dare accesso a un utente tecnico senza cambiare proprietario della risorsa.
Comandi principali:
getfaclper leggere ACL correntisetfaclper creare/modificare/rimuovere ACL
Esempi pratici
Concedere permessi a un utente specifico
<syntaxhighlight lang="bash"> sudo setfacl -m u:deploy:rwx /srv/progetto/shared </syntaxhighlight>
Definire ACL di default su una directory
Le ACL di default vengono ereditate da nuovi file e directory creati al suo interno.
<syntaxhighlight lang="bash"> sudo setfacl -m d:u:deploy:rwx /srv/progetto/shared </syntaxhighlight>
Verificare ACL effettive
<syntaxhighlight lang="bash"> getfacl /srv/progetto/shared </syntaxhighlight>
Nota: la voce mask puo limitare i permessi realmente applicati.
Relazione con chmod
ACL e permessi tradizionali convivono. Dopo modifiche con chmod, e buona pratica controllare sempre il risultato con getfacl per verificare eventuali effetti sulla maschera ACL.
Quando usare le ACL
- ambienti multiutente
- directory condivise con esigenze di accesso diverse
- casi in cui si vogliono evitare permessi eccessivamente ampi (es.
777) - sistemi in cui serve tracciare policy accessi piu rigorose
Storia delle ACL
Timeline essenziale:
- Anni 60-70: concetti ACL gia presenti in sistemi multiutente storici
- Anni 90: sviluppo delle estensioni sicurezza IEEE POSIX 1003.1e
- Ottobre 1997: riferimento tecnico nella bozza POSIX.1e Draft 17
- Gennaio 1998: standardizzazione POSIX.1e ritirata; il modello ACL continua comunque a essere implementato
- Novembre 2002: supporto ACL POSIX incluso nel kernel Linux 2.5.46 (ramo di sviluppo)
- Dal 2003 in poi: adozione ampia nei filesystem Linux usati in produzione
In sintesi, pur senza standard finale ratificato, le ACL sono diventate uno strumento consolidato nell'amministrazione Linux.
Buone pratiche
- applicare ACL solo dove necessario
- documentare le regole nei runbook operativi
- verificare periodicamente configurazioni e ereditarieta
- mantenere un approccio minimo privilegio