Forum Linux.général gestion des droits avec ACL

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
0
27
sept.
2013

Bonjour,

je cherche à donner des droits en lecture écriture à tous les membres d'un groupe sur un répertoire commun situé dans /home (monté avec l'option acl dans le fstab)

[vincent@li-01 ~]$ grep home /etc/fstab 
UUID=2669185d-0bf0-43e7-8f00-e696ff54365b       /home           ext4            rw,relatime,data=ordered,acl        0 2

j'utilise ensuite la commande setfacl

root@li-01 vincent]# setfacl -Rm d:g:educs:rwx /home/educs/

j'en vérifie le résultat

[vincent@li-01 ~]$ getfacl /home/educs/
getfacl : suppression du premier « / » des noms de chemins absolus
# file: home/educs/
# owner: root
# group: root
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:group:educs:rwx
default:mask::rwx
default:other::r-x

vincent est bien dans le groupe educs

[vincent@li-01 ~]$ groups 
sys adm lp wheel uucp locate games network video audio optical storage scanner power users educs

et pourtant ne peut pas rentrer dans le répertoire :(

[vincent@li-01 ~]$ cd /home/educs
bash: cd: /home/educs: Permission non accordée

J'ai du louper quelque-chose oui mais quoi ?

Merci d'avance pour vos lumières.

  • # default

    Posté par  (site web personnel) . Évalué à 1.

    Salut,

    "default", ça correspond aux droits qui sont appliqués automatiquement lors de la création d'un fichier ou d'un répertoire dans /home/educs.
    Tu dois faire le même setfacl, sans le "d:", donc :

    setfacl -Rm g:educs:rwx /home/educs/
    

    Sans assurance absolue par contre : ça fait longtemps que je n'ai pas fait d'ACL, à ta place je testerais sur un autre répertoire avant…

    (et là, tous les fichiers créés dans /home/educs et dans ses sous-répertoires sera exécutable, ce n'est probablement pas ce que tu veux faire… Ce sera à corriger aussi.

    • [^] # Re: default

      Posté par  (site web personnel) . Évalué à 3.

      je teste ça dès ce après-midi. Merci

      • [^] # Re: default

        Posté par  (site web personnel) . Évalué à 2.

        L'indication de Sébastien doit être la bonne.

        J'ajouterais un truc: gaffe aux mask, s'ils sont calculés automatiquement, ils peuvent bloquer des accès (c'est un outil pour bloquer d'un coup toutes les acl sans avoir à les modifier, et il semble que dans certains cas il soit calculé automatiquement en fonction de l'umask du créateur du fichier).
        ==> il vaut mieux fixer le mask et mask par défaut dans le setfacl pour être tranquille.

        Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

        • [^] # Re: default

          Posté par  (site web personnel) . Évalué à 2.

          Pas mieux ! Pas possible de rentrer dans le répertoire. Du coup j'adopte la solution évoquée par Tanguy et Neox.

          Merci à tous

  • # Inutile

    Posté par  (site web personnel) . Évalué à 3.

    Pour ton besoin, pas la peine de sortir les ACL, les permissions Unix classiques suffiront. Donne ton répertoire au groupe en question, et autorise l'écriture par le groupe.

    • [^] # Re: Inutile

      Posté par  . Évalué à 2.

      je confirmes qu'un simple :

      chown root:educs /home/educs
      chmod 2770 /home/educs
      

      devrait suffire.

      Explications :

      • la premiere ligne pour dire que le dossier appartient à l'utilisateur root et au groupe educs
      • la deuxieme ligne pour dire que :
        • les permissions du groupe sont collantes (2 ou s, appelée aussi set GID, c'est à dire qu'un dossier ou fichier créé dans ce dossier sera lui aussi root:educs et 2770)
        • root peut lire/ecrire/traverser (7) le dossier,
        • idem pour le groupe (7),
        • les autres ne peuvent rien faire (0)
      • [^] # Re: Inutile

        Posté par  (site web personnel) . Évalué à 2.

        Yep mais le cas ici est volontairement simple. Prenons-en un autre : le répertoire g3 devra être partagé à la fois entre les educs et les enfants du groupe g3. Possible sans acl ?

        Merci

        • [^] # Re: Inutile

          Posté par  (site web personnel) . Évalué à 3.

          Oui, d'abord pour une raison théorique simple : techniquement, à l'exception de cas très spécifique, tout est faisable avec les droits Unix simples. Mais pas forcément pratique : dans certains cas, cela impliquerait de définir beaucoup de groupes.

          Là, ben pourquoi ne pas simplement mettre les educs dans le groupe g3 aussi ? Si ça ne convient pas, deux solutions : créer un groupe pour cela, educs-g3 contenant les educs et les g3, ou alors utiliser des ACL en effet.

          • [^] # Re: Inutile

            Posté par  (site web personnel) . Évalué à 2.

            Faut que j'y réfléchisse, mais j'ai un peu peur de la complexité : il y a 3 classes (C1 C2 C3) et 3 groupes d'enfants (petits moyens grands). Il sont dans une classe en fonction de leur niveau scolaire et dans les groupes en fonction de leur age, donc ça ne concorde pas. Les matériaux éducatifs sont disponibles dans les groupes, les matériaux scolaire dans les classes.

            Coté adultes il y a des éducateurs et des instituteurs… Les educs accèdent aux groupes et les instits aux classes, en plus de leur répertoires communs.

            J'arrête là ?

            • [^] # Re: Inutile

              Posté par  . Évalué à 2.

              3 classes x 3 groupes x2 adultes = 18groupes en tout (sans compter les groupes instit/educateur seuls, les admins, etc)

              exemple :

              C1-petit-educ
              C1-petit-inst
              C1-moyen-educ
              C1-moyen-inst
              C1-grand-educ
              C1-grand-inst
              etc
              etc

          • [^] # Re: Inutile

            Posté par  (site web personnel) . Évalué à 2.

            Ben finalement c'est pas si complexe que ça, et ça marche. Donc c'est adopté. Merci

            • [^] # Re: Inutile

              Posté par  (site web personnel) . Évalué à 1.

              Attention : si un utilisateur crée un fichier dans une telle infra, je ne suis pas sûr que les droits de ce nouveau fichier sont corrects vis-à-vis de la lecture par les autres utilisateurs. Je ne sais pas ce qui est possible en terme d'umask pour ça : j'ai toujours privilégié les ACL POSIX pour ce genre de cas, où tu peux définir, répertoire par répertoire, les droits à mettre pour tout nouveau fichier.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.