====== 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