La commande setfacl est utilisée pour modifier les permissions associées à l'ACL d'un fichier ou d'un répertoire. La commande setfacl a plusieurs options, dont certaines des plus courantes sont décrites dans le tableau suivant.
Option | Description |
---|---|
-R | Définissez de manière récursive les options ACL pour les répertoires et leur contenu. |
-s | Définir l'ACL d'un objet, en remplaçant toute ACL existante. |
-m | Modifier l'ACL existante d'un objet. |
-x | Supprimer des entrées d'une ACL existante. |
-b | Supprimez toutes les entrées ACL (à l'exception des autorisations standard). |
Syntaxe
La syntaxe de la commande setfacl est :
# setfacl [-bR] [-mx {acl_spec}] {file/directory names}
Voici un exemple de modification de l'ACL sur un répertoire où l'utilisateur http dispose d'un accès en lecture :
setfacl -m u:http:r-- /home/directory
Si vous rencontrez l'erreur ci-dessous lors de l'exécution de la commande setfacl :
setfacl: command not found
vous pouvez essayer d'installer le package ci-dessous selon votre choix de distribution :
Répartition | Commande |
---|---|
Debian | apt-get install acl |
Ubuntu | apt-get install acl |
Alpin | apk ajouter acl |
Arch Linux | pacman -S acl |
Kali Linux | apt-get install acl |
CentOS | yum install acl |
Fédora | dnf install acl |
Raspbian | apt-get install acl |
Suppression de la liste de contrôle d'accès
La commande setfacl est également utilisée avec l'option -x pour supprimer l'ACL appliquée pour tout utilisateur ou groupe. La seule différence lors de la suppression d'ACL de la définition d'ACL est que nous ne spécifions pas l'autorisation lors de la suppression. L'exemple suivant illustre l'utilisation de la commande setfacl pour supprimer l'ACL appliquée à un fichier nommé file1 pour l'utilisateur geel et le groupe lab :
$ setfacl -x u:geek,g:lab file1
Pour supprimer toutes les ACL d'un fichier ou d'un répertoire, nous pouvons utiliser l'option -b, comme indiqué dans la commande suivante :
$ setfacl -b file1
Exemples de commandes setacl
1. Modifier l'ACL d'un fichier pour un utilisateur avec accès en lecture et en écriture :
# setfacl -m u:username:rw file
2. Modifier l'ACL par défaut d'un fichier pour tous les utilisateurs :
# setfacl -d -m u::rw file
3. Supprimer l'ACL d'un fichier pour un utilisateur :
# setfacl -x u:username file
4. Supprimez toutes les entrées ACL d'un fichier :
# setfacl -b file