Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
La mise en place des ACL permet une gestion fine des accès des utilisateurs, des groupes, aux répertoires et aux fichiers d'une partition qui dispose d'un “file system” qui accepte les acl. (par ex: Ext3).
Il faut installer le paquetage acl
apt-get update && apt-get install acl
Puis il faut déclarer la prise en charge des acl dans le fichier /etc/fstab en ajoutant “,acl” après “defaults” de la partition concernée:
/dev/VOLUME/5 /donnees ext3 defaults,acl 1 2
Vous redémarrez ensuite votre serveur.
La mise en place des ACL implique trois notions principales:
- 1.ACL « minimale »
Composée exclusivement d’éléments de type propriétaire, groupe et « reste du monde », l ’ACL minimale est une traduction « en ACL » des droits d’accès traditionnels Unix.
- 2.ACL étendue
L’ACL étendue prolonge les droits de l’ACL minimale. Elle contient au moins un élément de type mask et peut contenir des éléments de type utilisateur et/ou groupe.
- 3.ACL par défaut
Les ACL par défaut ne peuvent être appliquées qu’aux répertoires et définissent de quels droits un objet du système de fichiers devra hériter (de son répertoire parent) lors de sa création.
Le paquetage acl permet de disposer de deux nouvelles commandes:
Cette commande permet l'affichage des acl
getfacl nom_de_repertoire # affiche les acl de nom_de_répertoire
Le format de sortie de getfacl ressemble à ceci:
Pour un répertoire qui ne dispose que des acl “minimales”
# file: nom_de_repertoire # owner: root # group: root user::rwx group::rwx other::--- Ce qui correspond au ls -al nom_de_repertoire drwxrwx--- 1 root root 596354 sep 4 20:59 nom_de_repertoire
Pour un répertoire qui dispose d'acl étendues et d'acl par défaut
# file: nom_de_repertoire # owner: root # group: root user::rwx # Les droits du propriétaire user:joe:rwx # Les droits de l'utilisateur supplémentaire joe group::rwx # Les droits du groupe du propriétaire group:cool:rwx # Les droits du groupe supplémentaire cool group:hot:r-x # Les droits du groupe supplémentaire hot group:cold:--- # Les droits du groupe cold mask:rwx # Les droits les plus élevés other:--- # Les droits des "autres" default:user::rwx # Les droits par défaut sont attribués automatiquement pour default:user:joe:rwx # les nouveaux fichiers et répertoires créés. default:group::rwx # Les acl par défaut ne concernent donc que les répertoires default:group:hot:r-x default:group:cold:--- default:mask:rwx default:other:---
Il est utile d'enregistrer l'ensemble des acl quand on a un serveur de fichiers dans une communauté de travail hétérogène (des centaines d'utilisateurs et de groupes). Cette manipulation peut se faire grâce à la commande:
getfacl -R /donnees > nom_de_fichier # L'option -R permet la récursivité sur tous les répertoires, # sous-répertoires et fichiers de la partition /donnees # L'enregistrement de l'ensemble de ces acl est effectué dans # le fichier nom_de_fichier
Cette commande permet l'attribution des acl. Voici quelques explications sur son utilisation.
setfacl -m g:cool:rwx nom_de_repertoire # Pour ajouter le groupe cool et ses droits pour le # répertoire non_de_repertoire setfacl -m g:cool:rwx nom_de_fichier # Pour ajouter le groupe cool et ses droits pour le # fichier non_de_fichier setfacl -m u:fany:rwx nom_de_repertoire # Pour ajouter l'utilisateur fany et ses droits pour le
# répertoire non_de_repertoire En utilisant -R pour la récursivité,
setfacl -R -m g:cool:rwx nom_de_repertoire # Pour ajouter le groupe cool et ses droits pour le # répertoire, l'ensemble des sous-répertoires et # fichiers du répertoire non_de_repertoire
setfacl -m d:g:cool:rwx nom_de_repertoire # Pour ajouter le groupe cool et ses droits par défaut # pour le répertoire non_de_repertoire
En utilisant -R pour la récursivité,
setfacl -R -m d:g:cool:rwx nom_de_repertoire # Pour ajouter le groupe cool et ses droits par défaut # pour le répertoire, l'ensemble des sous-répertoires # et fichiers du répertoire non_de_repertoire
Il est possible de restituer l'ensemble des acl d'une partition grâce au fichier obtenu par la commande:
getfacl -R /donnees > nom_de_fichier
Pour ce faire, il suffit de se placer à la racine et d'exécuter la commande:
setfacl --restore=nom_de_fichier
S'il s'agit de restituer les acl sur une arborescence plus petite on peut utiliser:
setfacl -R -M nom_de_fichier repertoire
Pour supprimer tous les acl:
setfacl -b repertoire # Suppression juste pour le répertoire setfacl -b fichier # Suppression juste pour le fichier setfacl -R -b repertoire # Suppression pour le répertoire, les sous-répertoires et fichiers
Pour supprimer les acl par défaut :
setfacl -k repertoire # Suppression juste pour le répertoire setfacl -R -k repertoire # Suppression pour le répertoire, les sous-répertoires
Je vous laisse imaginer l'ensemble des possibilités (grâce aux man setfacl, man getfacl) et si l'on couple cela avec le SGID. Tout est faisable…. et peu de système d'exploitation offre un tel panel d'outils.
Comme lecture sur le sujet, une page du site Léa-Linux : Gestion des ACL.