Access Control List - ACL

Gestione evoluta dei permessi. In origine non disponibile nei sistemi Unix, con GNU/Linux diventa opzione di montaggio abilitata per default con il filesystem ext4 a partire dal kernel 2.6.39. Per forzare l'utizzo delle ACL utilizzare l'opzione di montaggio acl:

mount -o acl /dev/sdc1 /mnt

Per manipolare le ACL da riga di comando, installare il pacchetto Debian acl che contiene i tool getfacl e setfacl.

La presenza di una ACL viene evidenziata dal segno + quando si esegue ls -l:

ls -l filename
-rw-r-----+ 1 root root 24 Apr 11 17:08 filename

Per visualizzare il contenuto dell'ACL:

getfacl filename
# file: filename
# owner: root
# group: root
user::rw-
user:niccolo:r--
group::r--
mask::r--
other::---

Per aggiunge una voce di ACL ad un file:

setfacl -m u:niccolo:r filename

Per rimuovere una voce di ACL da un file:

setfacl -x user:niccolo filename

Fare attenzione che le ACL prevalgono sui permessi standard Unix, quindi i permessi che si vedono con un semplice ls -l potrebbero trarre in inganno se le ACL impongono qualcosa di diverso, bisogna sempre verificare con getfacl.

Default ACL su directory

Per impostare le ACL sugli oggetti creati in una directory basta impostare le opportune ACL default:{user|group|other|mask} sulla directory stessa (solo le directory hanno le ACL default):

setfacl -m default:other::r-x filename

Per rimuovere tutte le ACL a un file o una directory:

setfacl --remove-all filename