ACL

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Permissions avancées (ACL POSIX)
Commande getfacl / setfacl
Contexte Linux, systèmes de fichiers avec support ACL (ext3/4, xfs, btrfs…)
Voir aussi Chmod (permissions classiques)

Les ACL (Access Control Lists) étendent les permissions classiques (propriétaire/groupe/autres) en permettant de définir des droits pour plusieurs utilisateurs et groupes distincts sur un même fichier ou répertoire.

Activer les ACL sur un système de fichiers

mount -o remount,acl /dev/sda3 /home   # activation à chaud, sans redémarrer

Pour que l'option soit conservée au prochain montage, l'ajouter dans /etc/fstab :

/dev/sda3     /home     ext4     defaults,acl     0     2

Sur les distributions récentes, l'option acl est souvent activée par défaut sur ext4 — vérifier avec tune2fs -l /dev/sda3 | grep "Default mount options" avant de la rajouter inutilement.

Consulter les ACL

getfacl /home/user            # affiche toutes les entrées ACL du fichier/répertoire

Modifier les ACL

setfacl -m u:michael:rwx /home/examprep/TheAnswers   # ajoute/modifie une entrée utilisateur
setfacl -x u:michael /home/examprep/TheAnswers       # retire une entrée utilisateur

setfacl -m g:devteam:rwx /home/examprep/TheAnswers   # ajoute/modifie une entrée groupe

setfacl -m o:rwx /home/examprep/TheAnswers            # modifie les droits "others"

setfacl -m mask:r-- /home/examprep/TheAnswers         # ajuste le masque (plafond effectif des droits)

setfacl -b /home/examprep/TheAnswers                  # retire toutes les ACL
setfacl -R -b /home/examprep                          # idem, récursivement

ACL par défaut sur un répertoire

Une ACL par défaut s'applique automatiquement aux fichiers et sous-répertoires créés ensuite dans le répertoire concerné :

setfacl -R -m u:myuser:rwx,d:g:mygroup:rwx /home/user     # ACL "normale" + ACL par défaut en une commande
setfacl -R -m d:u:myuser:rwx,d:g:mygroup:rwx /home/user   # ACL par défaut uniquement (préfixe d:)

Copier les ACL d'un fichier sur un autre

getfacl file1 | setfacl --set-file=- file2

ACL sur NFS

Les partages NFSv4 utilisent un modèle d'ACL différent (inspiré des ACE Windows, pas le format POSIX ci-dessus) :

nfs4_getfacl /chemin/nfs

Chaque entrée suit le format type:flags:principal:permissions.

Voir aussi

  • Chmod — les ACL étendent les permissions classiques, voir cette page pour les bases (droits user/group/others, notation octale)