web-dev-qa-db-fra.com

Modifier le groupe principal de l'utilisateur - créer de nouveaux fichiers dans ce groupe

Je suis en train de configurer un environnement dans lequel je donne à plusieurs utilisateurs un accès SSH sur mon serveur. Ils sont tous dignes de confiance, mais je veux les intégrer à un segment du système de fichiers. J'ai créé les utilisateurs comme suit:

adduser username -ingroup groupname

qui fonctionne assez bien. Lorsque je me connecte comme l'un d'entre eux, je peux le faire et obtenir toutes les bonnes réponses:

$id -r -u -n
username
$id -r -g -n
groupname

J'ai remplacé le groupe principal de mon propre compte utilisateur par groupname en procédant comme suit:

$usermod myuser groupname

Je me suis ensuite déconnecté, puis je suis rentré. Les fichiers que je souhaite que le groupe puisse accéder se trouvent maintenant sous:

$ls -l / | grep groupname
drwxr-xr-x  3 root     groupname    4.0K 2012-03-26 20:20 groupfiles
$cd /groupfiles
$ls -l 
drwxrwxr-x  2 root groupname    4.0K 2012-03-26 20:32 project

Les autorisations sont de par leur conception, les membres du groupe ne peuvent pas modifier les fichiers/dossiers sous /groupfiles mais ils peuvent ajouter, modifier et supprimer sous /groupfiles/project

Le problème que je rencontre est que lorsque je fais cela, je me trompe de groupe:

$touch test
$ls -l test
-rw-rw-r-- 1 myuser myuser 0 2012-03-26 20:58 test
$id -r -g -n
groupname

Je dois faire en sorte que les fichiers créés par vim, touch, etc. aient le bon groupe. Je connais newgrp() et les bits setgid. Ce sont pas ce que je cherche. Cela fonctionne très bien pour les nouveaux utilisateurs que j'ai créés, mais ne fonctionne pas pour mon utilisateur. Je ne suis pas sûr de ce qui s'est passé, mais cela fonctionne bien maintenant. Je viens de laisser cette question ici pour les futurs bricoleurs.

6
Huckle

Je suppose que le comportement que vous souhaitez est le suivant: Sudo usermod -g groupname myuser.

Remarque: cette commande modifie la propriété du groupe pour tous les fichiers dans $ HOME, mais pas en dehors de la maison. Vous voudrez peut-être les changer à nouveau chgrp -R myuser $HOME

Vous devez ensuite vous déconnecter et vous reconnecter pour que les modifications prennent effet.

Si vous ne voulez pas changer votre groupe principal 'myuser', newgrp est la voie à suivre.

Sudo usermod -g admin bodhi

ssh localhost

touch file

newgrp bodhi
touch file2

ls -l file file2
-rw-r--r-- 1 bodhi admin 0 2012-03-26 19:28 file
-rw-r--r-- 1 bodhi bodhi 0 2012-03-26 19:29 file2
12
Panther