Bonsoir,

j'avais promis de faire un topo quand j'aurais réussi à me démêler, l'idée était de vérifier que cette fois j'ai bien compris + donner une solution à d'autres voulant faire la même chose, mais bon, j'ai l'impression de ne pas être loin, mais il manque encore un truc!

Rappel du désirata : je souhaitais avoir une arborescence partagée, avec un accès complet transversal à une seule catégorie d'utilisateurs.
(parents accès à tous fichiers, enfant seulement aux siens)

La première étape est de définir le groupe et les droits pour tous les fichiers / répertoires existants (chgrp et chmod), ainsi que de définir le groupe par défaut à l'aide du SGID (chmod g+s).

L'explication la plus synthétique, avec commande Shell récursive, vient du mail de Vincent (il faut rajouter le sudo sous Ubuntu) :
Vincent a écrit :
 Il y a une "feature" d'UNIX spécifiquement pour ça : le 'chmod g+s'. Ca
marche comme suit :

1. Tu passes le ou les répertoires en questions sous le groupe concerné :
    find repertoire -type d -exec chgrp groupe "{}" \;

 2. Tu changes les permissions en spécifiant le 'g+s' :

    find repertoire -type d -exec chmod ug+rwx,g+s,o-rwx "{}" \;

 A partir de là, tout fichier ou répertoire créé tombe sous le groupe.

 Plus de détails :
http://en.wikipedia.org/wiki/Setuid#setgid_on_directories.
Explications complétées par deux tutoriels en français :
http://fr.wikipedia.org/wiki/Permissions_Unix
http://www.math-linux.com/spip.php?article23

Malheureusement, si le groupe reste effectivement celui défini pour toute création de fichier/répertoire, les droits associés (rw-r--r--) ne permettait pas d'avoir l'accès complet aux fichiers, du moins pas en utilisant nautilus (Navigateur de fichiers par défaut de Gnome). J'ai eu beau modifier mes options de montage (dans fstab etc..), rien y faisait. En fait, il s'agit d'une "caractéristique" de Nautilus qui ne prend pas en compte ces options : il faut créer un fichier spécifique pour lui définir le masque utilisateur qui va bien (UMASK que je pensais limité aux options de montage).

J'ai donc créé, dans la home directory de chaque utilisateur, un fichier '.gnomerc' contenant 'umask 0006' (par défaut, les droits sont de 666=rw-rw-rw- pour les fichiers et 777=rwxrwxrwx pour les répertoires, la valeur suivant umask consiste à enlever des droits à ces valeurs par défaut, dans mon cas cela devient 660=rw-rw---- pour les fichiers et 771=rwxrwx--x pour les répertoires)

http://brainstorm.ubuntu.com/idea/200/
http://fr.wikipedia.org/wiki/Umask

Oui mais voila, cela fonctionne pour tout fichier créé, mais pas s'il est copié avec des droits initiaux plus restrictifs!
Extrait de : http://www.linuxcertif.com/man/1/cp/
"Les autorisations d'accès des fichiers et des répertoires créés seront les mêmes que celles des fichiers d'origine masquées avec un ET binaire avec 0777, et modifiées par le umask de l'utilisateur."

J'ai lorgné du coté des ACLs, mais je doute que cela m'apporte la solution? Une idée? En attendant, comme solution de contournement, je cherche à modifier les droits de montage d'une clé USB/lecteur de carte, montée automatiquement (donc pas d'entrée dans /etc/fstab), savez vous comment procéder sous Ubuntu? Une règle Udev, du genre "KERNEL=="sfd[0-9]*", GROUP="parents", MODE="0666" ?

Merci, et bonne nuit!
Vincent.


Diffusez cette liste aupres de vos relations :-)
           Linux Azur : http://linux-azur.org
      Vous etes responsable de vos propos.
*** Pas de message SMS, HTML ni de PJ SVP ***

Répondre à