Forum Linux.général Créer de nouveaux droits ACL lors d'une copie…

Posté par (page perso) .
Tags : aucun
1
17
juin
2009
Bonjour, je gère les ACL dans un répertoire mais j'ai un problème, si je fais un cp alors les ACL n'existent pas. En faisant "cp -a" on peut copier aussi les anciens droits, sauf que ce que je désire, c'est en créer de nouveaux.

En gros, dans le répertoire en question je veux que pour tout le temps le groupe boulot possède tous les droits. Autrement dit, je voudrais que un cp, un mv ou une copie par ssh… agissent comme si je faisait un touch.

Une solution barbare, serait de faire un cron sur un script contenant des règles "setfacl -R -m g:boulot:rwx /home/boulot" de plus j'ai beaucoup de règles, et cela dépend des répertoires, donc ce que je voudrai c'est la solution pas barbare ^^

Autre chose, en faisant la commande précédente je me retrouve avec des rwx partout pour le groupe, alors qu'un simple fichier je voudrai qu'il soit simplement en rw, mais c'est secondaire par rapport à mon problème précédent.
  • # acl et heritage

    Posté par . Évalué à 3.

    en gros tu as un dossier TEMP et un dossier BOULOT

    tu voudrais par exemple que tout document qui se trouve posé par cp/mv dans le dossier BOULOT

    devienne RW pour toutes les personnes du groupe "boulot"

    avec les droits ordinaires on peut deja faire de "l'heritage" de droit.
    il faut donc chercher à savoir si on peut faire de l'heritage d'acl
    si le dossier est RW pour le groupe, tout fichier poser dedans deviendrait RW pour ce meme groupe

    d'apres cela : http://www.linuxplusvalue.be/mylpv.php?id=153
    Utilisation

    Quelques définitions Trois notions principales sont à appréhender :

    * 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.
    • [^] # Re: acl et heritage

      Posté par (page perso) . Évalué à 2.

      En complément...

      man setfacl

      Si je ne me gourre pas:
      1) créer le dossier cible
      2) lui coller une acl par défaut avec l'option -d
      3) copier

      ou

      1) copier
      2) fixer une acl récursivement via l'option -R

      A+

      Python 3 - Apprendre à programmer en Python avec PyZo et Jupyter Notebook → https://www.dunod.com/sciences-techniques/python-3

      • [^] # Re: acl et heritage

        Posté par (page perso) . Évalué à 2.

        "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."

        Tout ce que vous me dîtes, en quelques sortes cela fonctionne, peut-être qu'un exemple vaut mieux qu'un long discours :

        bmatthieu@pherousa:~$ mkdir testACL2
        bmatthieu@pherousa:~$ setfacl -m d:g:boulot:rwx testACL2/
        bmatthieu@pherousa:~$ cd testACL2/
        bmatthieu@pherousa:~/testACL2$ mkdir rep
        bmatthieu@pherousa:~/testACL2$ getfacl rep/
        # file: rep
        # owner: bmatthieu
        # group: stagiaires
        user::rwx
        group::r-x
        group:boulot:rwx
        mask::rwx
        other::r-x
        default:user::rwx
        default:group::r-x
        default:group:boulot:rwx
        default:mask::rwx
        default:other::r-x

        On voit ici que le répertoire a été créé avec les droits que j'ai demandé.

        bmatthieu@pherousa:~/testACL2$ mv ../rep2/ .
        bmatthieu@pherousa:~/testACL2$ getfacl rep2
        # file: rep2
        # owner: bmatthieu
        # group: stagiaires
        user::rwx
        group::r-x
        other::r-x

        bmatthieu@pherousa:~/testACL2$

        mais pour celui-là, les droits ne sont pas recopié. Donc je peux les rajouter à la main, sauf que le répertoire me sert entre autre de back-up avec unison par ssh donc c'est assez lourd de devoir se connecter en ssh et changer les droits à la main sur tout ce qui a pu être modifié. Ou je peux créer une tâche cron, mais c'est tout aussi relou.
        • [^] # Re: acl et heritage

          Posté par . Évalué à 2.

          et si tu fais un cp puis un rm du repertoire plutot qu'un mv ?
          • [^] # Re: acl et heritage

            Posté par (page perso) . Évalué à 1.

            En faisant une copie j'ai bien la récursivité, mais pas l'application en lui même (effective:r-x au lieu de rwx)

            bmatthieu@pherousa:~/testACL2$ mv ../rep1 .
            bmatthieu@pherousa:~/testACL2$ cp -R ../rep2 .
            bmatthieu@pherousa:~/testACL2$ getfacl *
            # file: rep1
            # owner: bmatthieu
            # group: stagiaires
            user::rwx
            group::r-x
            other::r-x

            # file: rep2
            # owner: bmatthieu
            # group: stagiaires
            user::rwx
            group::r-x
            group:boulot:rwx #effective:r-x
            mask::r-x
            other::r-x
            default:user::rwx
            default:group::r-x
            default:group:boulot:rwx
            default:mask::rwx
            default:other::r-x

            bmatthieu@pherousa:~/testACL2$ ls -l
            total 12
            drwxr-xr-x 2 bmatthieu stagiaires 4096 2009-06-17 13:30 rep1
            drwxr-xr-x+ 2 bmatthieu stagiaires 4096 2009-06-17 13:30 rep2
            bmatthieu@pherousa:~/testACL2$
            bmatthieu@pherousa:~/testACL2$ mkdir rep3
            bmatthieu@pherousa:~/testACL2$ getfacl rep3
            # file: rep3
            # owner: bmatthieu
            # group: stagiaires
            user::rwx
            group::r-x
            group:boulot:rwx
            mask::rwx
            other::r-x
            default:user::rwx
            default:group::r-x
            default:group:boulot:rwx
            default:mask::rwx
            default:other::r-x
            • [^] # Re: acl et heritage

              Posté par . Évalué à 2.

              donc ca marche quand tu fais un CP

              reste à confirmer si les gens qui sont dans le groupe "boulot"
              peuvent ecrire dans rep2

              en effet ls n'affiche pas les droits liés aux ACL
              • [^] # Re: acl et heritage

                Posté par (page perso) . Évalué à 2.

                j'ai les droits r-x comme indiqué, et je confirme (après avoir testé) que non, on ne peut écrire dedans.

                "Three major file utilities, ls, cp, and mv have been updated to handle ACLs. The mv command will always preserve ACLs if it is possible. If it is not possible, it will issue a warning. The cp command will only preserve ACLs if used with the -p or -a options."

                Ça c'est bien sauf que j'en veux pas moi :'(

                À croire que personne n'a jamais été dans ce cas, c'est bizarre ça me semblait l'utilisation la plus pertinente.
                • [^] # Re: acl et heritage

                  Posté par . Évalué à 2.

                  dans le lien que j'ai posté plus tot, il y a une explication de comment sont pris en compte les ACLs par rapport aux droits habituels

                  tu tombes peut-etre dans un cas pas prevu :(
                  • [^] # Re: acl et heritage

                    Posté par . Évalué à 2.

                    http://www.linuxplusvalue.be/mylpv.php?id=153#ACL007

                    SI
                    Le user ID du process est le propriétaire, l'entrée concernant le propriétaire détermine les accès.

                    SINON SI
                    Le user ID du process correspond à une des entrées utilisateurs, cette entrée détermines les accès

                    SINON SI
                    si le groupes du process correspond au group du propriétaires et que le groupe propriétaires contient les permissions requises, cette entrée détermine le ou les accés

                    SINON SI
                    un des groupes IDs (GID) du process correspond à une des entrétres de groupe et que cette entrée contient les permissions requise, cette entrée déterminera les accès.

                    SINON SI
                    un des groupes IDs du process correspond au groupe propriétaire ou à un autre groupe se trouvant dans les entrées, mais ni le groupe proprio, ni les autres entrées qui concerne des groupes n'ont les permissions requises, cela détermine que l'accè sera refusé

                    SINON
                    L'entré "other" déterminera les droits d'accè:s.



                    SI
                    l'entrée correspondante résultant de ce choix est le propriétaire ou une autre entrée et qu'elle contient les permissions demandées, l'accès est permit

                    SINON SI
                    l'entrée correspondante est un utilisateur nommé, groupe propriétaire, ou une entrée d'un groupe nommé et cette entrée contient les permissions demandées et l'entrée "mask" contient également les permissions requise (ou qu'il n'y aie pas d'entrée "mask"), accès est permit

                    SINON
                    accès refusé.
                    • [^] # Re: acl et heritage

                      Posté par (page perso) . Évalué à 1.

                      Là il s'agit de l'algorithme d'accès, et je n'ai aucun soucis avec, le problème est de mettre en place ces droits…
                      • [^] # Re: acl et heritage

                        Posté par . Évalué à 2.

                        d'apres tes posts precedents, les droits sont bien posés sur ton REP2 lors de la copie de ce dossier dans ta zone geré par ACL (le group boulot est bien RWX)

                        et c'est donc bien un probleme d'acces qui se pose pour toi
                        • [^] # Re: acl et heritage

                          Posté par (page perso) . Évalué à 1.

                          "group:boulot:rwx #effective:r-x"

                          effective r-x alors que moi je voudrais que cela soit directement rwx donc non les droits ne sont pas bien posés et de toute façon cela ne fonctionne pas par ssh ou avec mv donc même si cela fonctionnait ce serait une fausse solution (même si il y aurait moyen de faire un alias de mv vers cp && rm)
                          • [^] # Re: acl et heritage

                            Posté par . Évalué à 3.

                            je pensais que le "effective:r-x"
                            c'etait toi qui l'avait ajouté d'ou mon erreur.

                            donc si relis un peu tout ca

                            tu crees un dossier testACL avec le droit par defaut rwx pour le groupe "boulot"

                            quand tu crees un dossier dedans, ce dossier prend bien les memes droits (ex de ton rep3)
                            quand tu copie un dossier dedans, il dit avoir pris les memes droits, mais conserve son r-x (ex de ton rep2)

                            quand tu deplaces un dossier dedans, il ne prend aucun droit ACL (ex de ton rep1)


                            je n'ai pas de machine configurée avec ACL, mais ce que tu dis semble etre le B-A-BA de ce qu'on pourrait attendre des acl.

                            une question me vient à l'esprit ?
                            je n'ai pas bien compris pourquoi tu veux deplacer/cloner les fichiers regulierement, et donc devoir verifier ou faire une cron qui remet les droits ?

                            pourquoi ne pas basculer les fichiers 1 fois pour toutes dans ce dossier, puis travailler directement dans ce dossier

                            toutes nouvelles creations auraient donc les bons droits unix et ACL
                            • [^] # Re: acl et heritage

                              Posté par (page perso) . Évalué à 2.

                              Là je pense que tu as bien tout compris ^^

                              La question du pourquoi… parce-que je le veux ?

                              Plus sérieusement, les employés travaillent sur leur portable, et quelques fois il y a des modifs dans le train sur une présentation (ou ailleurs) En d'autres termes, ce n'est pas possible d'avoir un «montage» permanent avec samba ou autre par exemple (qui gère les acl). En bref, on utilise unison pour se synchroniser régulièrement par ssh entre tous les ordinateurs portables et un répertoire commun. voilà le pourquoi.
                • [^] # Re: acl et heritage

                  Posté par (page perso) . Évalué à 2.

                  J'ai eu le même problème que toi il y a quelques mois. On m'a dit d'utiliser les ACL. J'y suis jamais arrivé, j'ai demandé ici et là, partout on m'a balancé des RTFM mais jamais de solution, après avoir encore cherché un peu, j'ai finalement abandonné.

                  Donc non, tu n'es pas seul dans ton cas, mais désolé, j'ai pas la solution :-/

Suivre le flux des commentaires

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