Général
Les ACL (Access Control List) sont des autorisations qui permettent de gérer les droits de manière plus fine que les permissions UNIX traditionnelles.
Elles doivent être activées dans le noyau Linux (grep -i acl /boot/config*
).
Elles doivent aussi être activées lors du montage de la partition, soit explicitement, soit via les options de montage par défaut (sudo tune2fs -l /dev/sdX1 | grep Default\ mount
pour voir les options de montage par défaut d’une partition).
On vérifie que les outils sont installés : sudo apt install nfs4-acl-tools acl
On repère un dossier sur lequel des ACL sont positionnées via la présence d’un “+” à la fin des permissions. Par exemple :
ls -al ./DATA
donne
drwxr-x---+ 14 user group 4096 oct. 31 12:44 .
Visualisation des ACL
On peut voir le détail avec la commande getfacl ./DATA
# file: DATA/
# owner: user
# group: group
user::rwx
user:www-data:r-x
group::---
mask::r-x
other::---
On y voit les permissions classiques via user::
, group::
et other::
.
On peut voir que l’utilisateur “www-data” possède des droits de lecture positionnés via ACL.
Lister les ACL récursivement dans un dossier
getfacl -R -s -p /directory | sed -n 's/^# file: //p'
Définition des ACL
On peut modifier les ACL via la commande setfacl
. Par exemple, pour ajouter des droits RW à l’utilisateur “user2”, on lance :
setfacl -m u:user2:rwx ./DATA
Récursivement :
setfacl -R -m u:user2:rwx ./DATA
qui positionnera les droits RW pour user2 sur tous les fichiers/dossiers inclus dans ./DATA.
Suppression des ACL
On peut supprimer les autorisations via setfacl -b ./DATA
.
On peut les supprimer récursivement via setfacl -R -b ./DATA
. Cela supprimera toutes les ACL positionnées sur des fichiers/dossiers qui sont inclus dans ./DATA.