20.2. Définir les ACL d'accès
Il existe deux types d'ACL : les ACL d'accès et les ACL par défaut. Une ACL d'accès est une liste de contrôle d'accès pour un fichier ou répertoire particulier. Une ACL par défaut peut uniquement être associée à un répertoire. Si un fichier dans le répertoire ne possède pas d'ACL d'accès, alors il utilise les règles de l'ACL par défaut du répertoire. Les ACL par défaut sont optionnelles.
Les ACL peuvent être configurées :
- Par utilisateur
- Par groupe
- Via le masque des droits en vigueur
- Pour les utilisateur ne se trouvant pas dans le groupe d'utilisateurs du fichier
L'utilitaire
setfacl
définit les ACL pour les fichiers et répertoires. Veuillez utiliser l'option -m
pour ajouter ou modifier l'ACL d'un fichier ou répertoire :
# setfacl -m rules files
Des règles (rules) doivent être spécifiées sous les formats suivants. De multiples règles peuvent être spécifiées dans la même commande si celles-ci sont séparées par des virgules.
u:uid:perms
- Définit l'ACL d'accès d'un utilisateur. Le nom d'utilisateur, ou UID, peut être spécifié. L'utilisateur peut être tout utilisateur valide sur le système.
g:gid:perms
- Définit l'ACL d'accès d'un groupe. Le nom du groupe, ou GID, peut être spécifié. Le groupe peut être tout groupe valide sur le système.
m:perms
- Définit le masque des permissions. Le masque est l'union de toutes les permissions du groupe propriétaire et des toutes les entrées d'utilisateur et de groupe.
o:perms
- Définit l'ACL d'accès du fichier pour les utilisateurs ne faisant pas partie du groupe.
Les permissions (perms) doivent être une combinaison des caractères
r
, w
et x
pour lecture, écriture, et exécution.
Si un fichier ou répertoire possède déjà une ACL et que la commande
setfacl
est utilisée, les règles supplémentaires sont ajoutées à l'ACL existante ou la règle existante sera modifiée.
Exemple 20.1. Donner des permissions de lecture et écriture
Par exemple, pour donner les permissions de lecture et écriture à l'utilisateur andrius :
# setfacl -m u:andrius:rw /project/somefile
Pour supprimer toutes les permissions d'un utilisateur, d'un groupe, ou autres, veuillez utiliser l'option
-x
et ne spécifier aucune permission :
# setfacl -x rules files
Exemple 20.2. Supprimer toutes les permissions
Par exemple, pour supprimer toutes les permissions de l'utilisateur possédant l'UID 500 :
# setfacl -x u:500 /project/somefile