Re: Héritage des permissions et du propriétaire/groupe d'un …

Top Page

Reply to this message
Author: Olivier Allard-Jacquin
Date:  
To: guilde
CC: guilde
Subject: Re: Héritage des permissions et du propriétaire/groupe d'un fichier copié
    Bonsoir Marc,

Le 14/06/2012 13:07, marc.terrier@??? a écrit :
> Bonjour à tous,
>
> Y a-t-il un moyen, par une option de la commande "cp" ou par une propriété particulière du répertoire de destination, de
> faire en sorte qu'un fichier copié dans un répertoire hérite automatiquement du propriétaire et des permissions associées
> à ce répertoire cible ?
>
> De façon plus détaillée :
>
> Alice fait un "sudo su - bob", le temps de copier dans son répertoire personnel /home/Alice un fichier qui se
> trouve chez Bob, qui appartient à Bob, et sur lequel elle n'a aucun droit, même pas en lecture :
>
> Alice@machine:/home/Alice $ sudo su - bob
> Mot de passe de Alice :
>
> bob@machine:/home/bob $ ls -l
> -rw-r----- 1 bob bobgroup 10503 dec 13 2011 tititoto
>
> Pour pouvoir copier le fichier tititoto dans /home/Alice, à un moment où elle a l'identité de Bob, Alice a donné
> temporairement les droits d'écriture à tout le monde sur son propre répertoire home, avec un chmod 777 /home/Alice.
>
> bob@machine:/home/bob $ ls -l
> -rw-r----- 1 bob bobgroup 10503 dec 13 2011 tititoto
>
> bob@machine:/home/bob $ cp tititoto /home/Alice
>
> bob@machine:/home/bob $ ls -l /home/Alice
> -rw-r----- 1 bob bobgroup 10503 jun 14 12:36 tititoto
>
> Inconvénient : après copie, le fichier appartient toujours à Bob, Alice ne fait toujours pas partie du group "bobgroup",
> et ne peut donc pas consulter le contenu du fichier tititoto, alors même qu'elle vient de le copier chez elle. Elle peut
> juste voir qu'il a bien été copié. Elle ne peut même pas faire un "chmod" dessus pour s'accorder les droits qui vont bien.
> Il faut que ce soit Bob qui le fasse, et encore, ça ne marchera que tant qu'Alice aura laissé son répertoire /home/Alice
> accessible en écriture à Bob. De plus, ça ne s'appliquera qu'à ce fichier-là. Si, à l'avenir, Alice veut refaire la même
> copie avec un autre fichier tatatutu, le même problème se posera à nouveau.
>
> Merci d'avance de vos lumières.


    1ère chose, ce n'est pas forcément une très bonne idée que de changer
les droits d'accès en o+w pour /home/alice .


    En fait, Bob n'a besoin que d'un o-r,o+x /home/alice, et d'un o+rwx
/home/alice/share , afin de poser ses fichiers dans /home/alice/share


    Exemple avec Bob=root et Alice=olivier

    
# mkdir /tmp/root/share
# find /tmp/root/ -ls
 76943    0 drwxr-xr-x   3 root     root    /tmp/root/
 76962    0 drwxr-xr-x   2 root     root        /tmp/root/share
# chmod o-r,o+x /tmp/root/
# chmod a+w /tmp/root/share
# find /tmp/root/ -ls
find /tmp/root/ -ls
 76943    0 drwxr-x--x   3 root     root        /tmp/root/
 76962    0 drwxrwxrwx   2 root     root        /tmp/root/share


    Enfin, tu peux utiliser un soft appelé "inotify", lancé par Bob, qui va
se changer de changer les droits d'accès dans /home/alice/share, lorsque
Bob écrit des fichiers.


    Dans un "screen" lancé une fois pour toute par Bob, lance :


inotifywait -mr --timefmt '%Y/%m/%d %H:%M:%S' --format '%T %w %f' -e
close_write,moved_to /home/alice/share | while read Date Time Dir File;
do chown alice:alice "$Dir/$File" ; echo "- $Date $Time ; done

    Exemple avec ma machine :
# touch /tmp/root/share/test-03
# find /tmp/root/ -ls
 76943    0 drwxr-x--x   3 root     root      /tmp/root/
 76962    0 drwxrwxrwx   2 root     root      /tmp/root/share
 83256    0 -rw-r--r--   1 olivier  olivier   /tmp/root/share/test-03
 80268    0 -rw-r--r--   1 olivier  olivier   /tmp/root/share/test-02
 71383    0 -rw-r--r--   1 olivier  olivier   /tmp/root/share/test-01


    Bien que ce soit root qui ait écrit les fichiers, ils appartiennent à
Olivier


    Et le "screen" affiche en bonus un petit message de log :


- 2012/06/14 22:44:04 : test-03
- 2012/06/14 22:46:09 : test-01
- 2012/06/14 22:46:11 : test-02

    Cordialement,


                            Olivier
-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
       /   / \  / \   \   Web:  http://olivieraj.free.fr/
      /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!