Aperçu
`setfacl` permet une gestion plus flexible des permissions pour les objets du système de fichiers. Il est possible d'accorder ou de refuser individuellement des permissions de lecture, d'écriture et d'exécution à des utilisateurs ou groupes spécifiques, et de définir des ACL par défaut pour que les nouveaux fichiers ou répertoires héritent automatiquement des ACL. Ceci est particulièrement utile lorsque vous avez besoin d'une gestion fine des permissions dans un environnement partagé par plusieurs utilisateurs.
Fonctionnalités principales
- Définition des permissions individuelles pour des utilisateurs/groupes spécifiques
- Définition et héritage des ACL par défaut
- Modification et suppression des ACL existantes
- Application récursive des permissions
Options principales
`setfacl` permet un contrôle précis des ACL grâce à diverses options. Voici les options principales fréquemment utilisées.
Définition et modification des ACL
Suppression des ACL
Autres
Commande générée :
Essayez de combiner les commandes.
Description:
`setfacl` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
Montre divers scénarios pour gérer les ACL des fichiers et répertoires à l'aide de la commande `setfacl`.
Accorder les permissions de lecture/écriture à un utilisateur spécifique
setfacl -m u:user1:rw testfile.txt
Accorde les permissions de lecture (r) et d'écriture (w) à l'utilisateur `user1` sur le fichier `testfile.txt`.
Accorder les permissions de lecture seule à un groupe spécifique
setfacl -m g:groupA:r shared_dir
Accorde les permissions de lecture (r) au groupe `groupA` sur le répertoire `shared_dir`.
Définir les ACL par défaut pour un répertoire
setfacl -m d:u:user2:rwx project_data
Définit les ACL par défaut pour le répertoire `project_data` afin que l'utilisateur `user2` ait les permissions de lecture/écriture sur les nouveaux fichiers créés, et les permissions de lecture/écriture/exécution sur les nouveaux répertoires créés.
Appliquer les ACL récursivement
setfacl -R -m u:user3:r data_archive
Accorde les permissions de lecture à l'utilisateur `user3` de manière récursive sur le répertoire `data_archive` et tous ses fichiers et sous-répertoires.
Supprimer une entrée ACL d'un utilisateur spécifique
setfacl -x u:user1 testfile.txt
Supprime l'entrée ACL pour l'utilisateur `user1` du fichier `testfile.txt`.
Supprimer toutes les entrées ACL étendues
setfacl -b config_dir
Supprime toutes les entrées ACL étendues du répertoire `config_dir` (les permissions par défaut sont conservées).
Supprimer les entrées ACL par défaut
setfacl -k project_data
Supprime toutes les entrées ACL par défaut définies pour le répertoire `project_data`.
Installation
La commande `setfacl` fait généralement partie du paquet `acl`. Elle est préinstallée sur la plupart des distributions Linux, mais si vous ne trouvez pas la commande, vous pouvez l'installer en utilisant les commandes suivantes.
Systèmes basés sur Debian/Ubuntu
sudo apt update && sudo apt install acl
Installe le paquet `acl` en utilisant le gestionnaire de paquets APT.
Systèmes basés sur RHEL/CentOS/Fedora
sudo yum install acl
# ou
sudo dnf install acl
Installe le paquet `acl` en utilisant le gestionnaire de paquets YUM ou DNF.
Conseils et précautions
Conseils et précautions pour utiliser `setfacl` efficacement et éviter les problèmes potentiels.
Utilisation avec getfacl
Après avoir défini les ACL avec `setfacl`, il est important de vérifier les ACL actuellement définies en utilisant la commande `getfacl <fichier/répertoire>`. Cela permet de vérifier si les permissions ont été appliquées comme prévu.
- Commande de vérification: getfacl <fichier/répertoire>
Comprendre les permissions du masque
Une entrée 'masque' peut exister dans les entrées ACL. Le masque définit les permissions effectives maximales qui s'appliquent à toutes les entrées ACL d'utilisateur et de groupe. Autrement dit, si les permissions accordées à un utilisateur ou un groupe sont supérieures aux permissions du masque, les permissions réelles seront limitées par le masque. Le masque peut être ajusté automatiquement lors de la définition des ACL avec `setfacl`, il est donc conseillé de vérifier avec `getfacl`.
- Rôle: Limitation des permissions effectives maximales pour toutes les entrées ACL d'utilisateur/groupe
- Vérification: Vérifier la section 'mask::' dans la sortie de getfacl
Interaction avec les permissions par défaut
Les fichiers ou répertoires auxquels des ACL sont appliquées afficheront un signe `+` à la fin de leur chaîne de permissions lorsqu'ils sont affichés avec la commande `ls -l`. Cela indique que des ACL supplémentaires sont appliquées en plus des permissions Unix standard. Les ACL complètent le modèle de permissions Unix par défaut, mais peuvent parfois augmenter la complexité, il faut donc les utiliser avec prudence.
- Indication d'application des ACL: Affichage du signe '+' à la fin de la chaîne de permissions dans la sortie de ls -l
Attention lors de l'application récursive (-R)
Soyez prudent lorsque vous utilisez l'option `-R` pour appliquer les ACL de manière récursive. En particulier, lorsqu'elle est utilisée avec `-b` (supprimer toutes les ACL), toutes les ACL des fichiers et répertoires inférieurs peuvent être supprimées involontairement. Il est toujours recommandé de vérifier d'abord les résultats avec l'option `--test` ou de sauvegarder les données importantes avant de les appliquer.
- Recommandation: Vérification préalable avec l'option --test, sauvegarder les données importantes avant application