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