85 votes

S'assurer que les nouveaux fichiers d'un répertoire appartiennent au groupe

Je veux créer un répertoire partagé dans lequel un certain nombre d'utilisateurs (tous appartenant à mon groupe) peuvent créer et modifier des fichiers. Je voudrais que tous les fichiers de ce répertoire et de ses sous-répertoires appartiennent à mon groupe

J'ai modifié les fichiers existants pour avoir le groupe mon groupe en utilisant chgrp mais les nouveaux fichiers créés appartiennent toujours au groupe primaire de l'utilisateur. Existe-t-il un moyen de s'assurer que les nouveaux fichiers appartiennent au groupe sans avoir à exécuter chgrp à plusieurs reprises ?

127voto

Lesmana Points 18245

Vous voulez définir le bit SetGID.

chmod g+s dir

Tous les nouveaux fichiers créés dans le répertoire auront le groupe défini comme étant le groupe du répertoire.

Un billet de blog de superutilisateur a expliqué les sticky bits et autres bits de permission de Linux :

SetGID, cependant, est un tout autre jeu de balle. Lorsqu'un répertoire a le bit SetGID activé et qu'un fichier est créé dans ce répertoire, le groupe propriétaire du fichier est automatiquement modifié pour être le groupe du répertoire.

16voto

LukePH Points 311

Si le groupe du dossier est différent du vôtre, vous devrez peut-être exécuter chmod en tant que root, mais vous n'obtiendrez pas d'erreur indiquant que vous devez le faire.

sans sudo

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir

$ chmod g+s dir                                     # no errors

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir   # but nothing changed

$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar  9 10:51 nosudo        # and the group is set wrong

avec sudo

$ sudo chmod g+s dir

$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar  9 10:44 dir   # the setgid bit is now on

$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke      0 Mar  9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar  9 10:51 withsudo # and the group is set right

14voto

Daniel Beck Points 105590

Définissez le setgid drapeau de permission sur les dossiers.

chmod g+s dirname

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X