[Linux-31] Comment affecter un fichier à un groupe auquel le propriétaire du fichier n'appartient pas ?

claude Micouin mlnglst at free.fr
Lun 19 Déc 19:49:04 CET 2016


Le dimanche 18 décembre 2016 à 08:39 +0100, Pascal Hambourg a écrit :
> Le 17/12/2016 à 23:06, claude Micouin a écrit :
> >
> > => Version courte : Comment faire pour affecter automatiquement tous
> > les nouveaux fichiers de plusieurs utilisateurs à un même groupe, mais
> > sans que les utilisateurs en question n'appartiennent à ce groupe ?
> > (c'est un peu tordu, je sais. Voir les explications dans la partie
> > Version longue).
> 
> Voir le droit "Set Group ID" (SGID) sur un répertoire.
> <https://fr.wikipedia.org/wiki/Permissions_UNIX#Droit_SGID>
Ça a l'air de fonctionner. Le seul (léger) hic, c'est qu'un utilisateur
ne peut pas (et c'est normal) affecter un fichier ou un dossier dont il
est propriétaire à un groupe auquel il n'appartient pas... mais root
peut le faire pour lui. Donc, c'est tout bon.

Je décris la manoeuvre si ça peut aider quelqu'un d'autre (et aussi pour moi pour prendre des notes :-)  )

#Je fais appartenir tout le répertoire utilisateur (y compris le mien) au groupe "classe".
# Je le fais en root car un utilisateur ne peut pas faire appartenir un fichier à un groupe auquel il n'appartient pas.
chgrp -R  classe /home/

# Je fais appliquer le droit SGID à tous les répertoires de /home
# Idem root.
chmod -R g+s /home/

# Comme le SGID a été appliqué aussi aux fichiers (ce que je ne veux pas), je fais :
find /home/ -type f -exec chmod g-s {} \;

Il me reste à modifier à 007 le masque de mon compte utilisateur de
façon à permettre l'accès aux fichiers et aux répertoires que je pourrais
créer à distance dans les répertoires des élèves (sinon, comme ils ne
font pas partie du groupe "classe", ils ne pourraient rien en faire.

À partir de là, je peux modifier les fichiers élèves, en recréer d'autres, c'est (presque) tout bon.

Le seul hic qui reste, c'est que si je crée un fichier, l'élève n'a aucun droit dessus et il ne peut pas enregistrer dans un répertoire non plus (sauf si je mets les droit à o=rw) .
Il faudrait que je puisse lui en redonner la propriété, mais seul root peut le faire.

Je viens de regarder du côté de sudo, ça marche en local. Qu'est-ce que ça va donner au travers de nfs ? À suivre.

> Si les droits Unix standard ne suffisent pas, voir les ACL (man acl).
Je vais y jeter un coup d'oeil.

Merci.


-- 
claude Micouin <mlnglst at free.fr>






Plus d'informations sur la liste de diffusion Linux-31