Il comando setfacl viene utilizzato per modificare le autorizzazioni associate all'ACL di un file o di una directory. Il comando setfacl ha diverse opzioni, alcune delle più comuni sono descritte nella tabella seguente.
Opzione | Descrizione |
---|---|
-R | Imposta ricorsivamente le opzioni ACL per le directory e il loro contenuto. |
-s | Imposta l'ACL di un oggetto, sostituendo qualsiasi ACL esistente. |
-m | Modifica l'ACL esistente di un oggetto. |
-x | Rimuovi le voci da un ACL esistente. |
-b | Rimuovi tutte le voci ACL (escluse le autorizzazioni standard). |
Sintassi
La sintassi del comando setfacl è:
# setfacl [-bR] [-mx {acl_spec}] {file/directory names}
Di seguito è riportato un esempio di modifica dell'ACL in una directory in cui all'utente http viene concesso l'accesso in lettura:
setfacl -m u:http:r-- /home/directory
Se riscontri un errore di seguito durante l'esecuzione del comando setfacl:
setfacl: command not found
puoi provare a installare il pacchetto seguente secondo la tua scelta di distribuzione:
Distribuzione | Comando |
---|---|
Debian | apt-get install acl |
Ubuntu | apt-get install acl |
Alpino | apk aggiungi acl |
Arci Linux | pacman -S acl |
Kali Linux | apt-get install acl |
CentOS | yum install acl |
Fedora | dnf install acl |
Raspbian | apt-get install acl |
Rimozione dell'ACL
Il comando setfacl viene utilizzato anche con l'opzione -x per rimuovere l'ACL applicato per qualsiasi utente o gruppo. L'unica differenza quando si rimuove ACL dall'impostazione ACL è che non specifichiamo l'autorizzazione durante la rimozione. L'esempio seguente illustra l'utilizzo del comando setfacl per rimuovere l'ACL applicato a un file denominato file1 per l'utente geel e il gruppo lab:
$ setfacl -x u:geek,g:lab file1
Per rimuovere tutti gli ACL da un file o una directory, possiamo usare l'opzione -b, come mostrato nel comando seguente:
$ setfacl -b file1
Esempi di comandi setacl
1. Modificare l'ACL di un file per l'utente con accesso in lettura e scrittura:
# setfacl -m u:username:rw file
2. Modifica l'ACL predefinito di un file per tutti gli utenti:
# setfacl -d -m u::rw file
3. Rimuovere l'ACL di un file per un utente:
# setfacl -x u:username file
4. Rimuovere tutte le voci ACL di un file:
# setfacl -b file