Changer le gid d'un groupe spécifique


34

Je voudrais changer l'identifiant du groupe d'un groupe spécifique. Il existe donc une solution pour changer le gid d'un fichier ou de répertoires. Mais ce n'est pas ce que je veux. Y-a-t-il un moyen de faire ça?

Réponses:


42

Le GID est l'identifiant principal du groupe. En ce qui concerne le système, un GID différent est un groupe différent. Donc, pour changer le GID, vous allez devoir modifier tous les endroits où ce GID est utilisé.

Vous devez éviter de traiter le GID comme significatif et d’utiliser des noms de groupe; vous pouvez changer le nom d'un groupe avec une seule commande (sous Linux:) groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME.

Cependant, si vous voulez vraiment changer le GID, voici comment:

  • Tout d'abord, vous devrez peut-être déconnecter les utilisateurs du groupe et supprimer les processus qui ont ce groupe comme groupe effectif, réel ou enregistré.
  • Modifier l'entrée dans la base de données du groupe. Sous Linux, lancez groupmod -g NEWGID GROUPNAME. Sur d'autres systèmes, utilisez l'outil d'administration de ce système ou, le vigrcas échéant, ou modifiez- /etc/grouple, le cas échéant.
  • Modifiez le groupe de tous les fichiers de votre système appartenant à l'ancien groupe.

    find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
    
  • chgrp efface les drapeaux suid et sgid, rétablit ceux-ci.

  • Si vous avez des archives qui utilisent l'ancien GID, reconstruisez-les.
  • Si vous avez un fichier de configuration ou un script faisant référence à l'ancien GID, mettez-le à jour.
  • Redémarrez tous les processus qui doivent utiliser le nouveau GID.

2
Proposer d'utiliser chgrp -h ...au lieu de chgrp .... Sans cela -h, la cible de tout lien symbolique pertinent verra son groupe modifié.
Mark Plotnick

3
groupmodprends un nom comme argument principal pour moi ...groupmod -g NEWGID GROUPNAME
Matt

29

Le moyen le plus simple est d'utiliser groupmod -g <NEW_GID> <groupname>

Une autre méthode consiste à modifier /etc/groupdirectement. Le troisième champ de chaque colonne est le gid.

Si le groupe a changé est le groupe principal d'un utilisateur, /etc/passwddoivent être adaptés aussi: usermod -g <NEW_GID> <username>.


Cela affectera-t-il également les fichiers? Je veux dire, gid de fichier et gid de groupe vont changer en même temps?
Mibzer

1
Non, cela ne changera que l'identifiant du groupe. Les fichiers / répertoires conservent leur gid (maintenant non nommé) et doivent être modifiés séparément.
Jofel

D'accord, merci. Donc, si je veux changer leurs gid (fichiers) en new gid, je dois exécuter une autre commande. Est-ce correct ? Ce serait mieux s'il y avait moyen de changer simultanément gid de fichier de groupe et gid de fichiers liés.
Mibzer

J'ai ajouté l'autre commande à ma réponse. Ce n'est pas un problème si un gid temporaire n'est pas utilisé dans / etc / group est utilisé. Chaque utilisateur du groupe doit se reconnecter pour avoir le nouveau gid.
Jofel

0

find / path -group foo -print0 | xargs -0 chgrp bar


comme je l'ai dit cela va changer le gid des fichiers. Mais ce n'est pas ce que je veux dire. Je veux changer gid d'un groupe pas un fichier.
Mibzer

ok,
j'étais
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.