Je voudrais changer l'identifiant de 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?
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 utiliser des noms de groupe à la place; 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:
groupmod -g NEWGID GROUPNAME
. Sur d'autres systèmes, utilisez l'outil d'administration de ce système, ou vigr
si disponible, ou modifiez /etc/group
le cas échéant.Modifiez le groupe de tous les fichiers de votre système qui appartiennent à l'ancien groupe.
find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
chgrp efface les drapeaux suid et sgid, restaurez-les.
Le moyen le plus simple consiste à utiliser groupmod -g <NEW_GID> <groupname>
Une autre façon consiste à modifier /etc/group
directement. Le troisième champ de chaque colonne est le gid.
Si le groupe modifié est le groupe principal d'un utilisateur, /etc/passwd
doit également être adapté: usermod -g <NEW_GID> <username>
.
find/path -group foo -print0 | xargs -0 chgrp bar