Les droits standards et les droits étendus sont des fonctionnalités intéressantes mais qui ne s’applique que pour un seul utilisateur ou un seul groupe. Comment définir des permissions spécifiques, voire différents, pour d’autres utilisateurs ou groupes que les propriétaires ? Les ACLs offrent une réponse à cette question.
Note : “Les ACL ne sont nativement pas activées sur Ubuntu mais le noyau les prend en charge. Le paquet apt://acl doit normalement être déjà installé.” https://doc.ubuntu-fr.org/acl.
Les ACLs Linux sont supportées nativement sur les distributions basées Red Hat.
1. Complément aux droits standards et étendus
Les Access control lists (ACLs) permettent de définir des permissions différentes pour un ou plusieurs utilisateurs / groupes sur un fichier / répertoire.
A une époque, il fallait adapter le noyau et le FS au support des ACLs. Techniquement, ces informations étendues sur les fichiers sont enregistrées en tant que méta-donnés su FS.
2. Support du système de fichiers
Avant de démarrer avec les ACLs, il faut que le système de fichiers soit monté pour les supporter car ses métadonnées devront être étendues.
3. Visualiser les permissions ACLs
Créer un dossier /opt/partage
et visualiser les permissions :
Visualiser les permissions ACLs du dossier :
4. Ajouter un ACLs à un répertoire
5. ACLs par défaut
Les ACLs par défaut permettent de donner des permissions ACL en héritage pour tout sous-répertoire ou fichier créé dans un répertoire. Toutefois, ces ACLs par défaut ne s’appliquent pas aux objets déjà présents dans le répertoire.
Dans la configuration d’un partage avec des accès multiples, il sera donc nécessaire de procéder en deux étapes :
- Modifier l’ACL des fichiers existants
- Appliquer un ACL par défaut
Enfin, il peut être intéressant d’utiliser les ACLs par défaut pour définir les droits des autres (other) sur les fichiers nouvellement créés.
Par exemple pour empêcher tous les autres en termes de permissions pour tout nouveau fichier ou sous-répertoire créé :
6. Compatibilité
Tous les utilitaires (sauvegarde, copie, déplacement de fichiers) ne sont pas nécessairement compatibles avec les ACLs. Il sera donc indiqué de sauvegarder les ACLs définies pour un dossier afin de les repousser sur une copie des fichiers.
Par exemple, on copie le répertoire /opt/partage
dans opt/p2
avec récursion (option -R
) :
Sauvegarde de l’ACL originale :
Adaptation des nouveaux droits :
Restauration de l’ACL :
7. star
Notons que l’outil star
se comporte et se manipule comme tar
mais avec le support des ACLs (option -acl
).