Les ACL (Access Control List) permettent une gestion avancée et plus flexible des permissions du système de fichier. Elles permettent notamment de donner des permissions spécifiques à un utilisateur ou à un groupe particulier.
Vérification du système
Avant de commencer, il vous faut vérifier si votre partition supporte la gestion des ACL. Vous pouvez lister les partitions à l'aide de la commande
df -T
Une fois que vous avez identifier la partition qui vous intérèsse vous pouvez vérifier le support des ACL à l'aide de tune2fs
.
tune2fs -l /dev/vda | grep acl
Pensez à remplacer /dev/vda
par le chemin de votre partition.
Principe de base
Les ACL vous permettent de rajouter des permissions spécifiques à l'aide de la commande setfacl
et du drapeau -m
.
setfacl -m u:johndoe:rx var/cache
Vous pouvez aussi ajouter des permissions à un groupe.
setfacl -m g:www-data:r htdocs
Il est aussi possible de permettre aux nouveaux sous-dossiers et fichiers d'hériter des permissions à l'aide du drapeau -d
setfacl -dm u:johndoe:rx var/cache
Vous pouvez voir si un dossier appartient à un ACL lors du listing "classique"
> ls -l
total 4
drwxrwx---+ 13 demo demo 4096 May 24 12:01 htdocs
Le +
après les permissions unix indique la présence des ACL. Vous pouvez obtenir plus de détails à l'aide de la commande getfacl
getfacl htdocs
Vous pouvez ensuite supprimer les permissions de manière globales.
setfacl -b var/cache
Ou spécifiquement pour un utilisateur ou groupe particulier
setfacl -x u:johndoe var/cache
Dans quel situation ?
Ce système n'est pas un remplacement du système de permission UNIX présent par défaut mais permet de résoudre les problématiques liées à des dossiers partagées entre plusieurs utilisateurs. Il peut s'avérer pratique si vous souhaitez par exemple donner l'accès à un utilisateur aux fichiers générés par votre serveur web par exemple.