Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I'd like to change group id of a specific group. There are so may solution for changing the gid of a file or directories. But that's not what I want. Is there a way to do that?

share|improve this question
add comment

3 Answers

up vote 12 down vote accepted

The GID is the primary identifier of the group. As far as the system is concerned, a different GID is a different group. So to change the gid, you're going to have to modify all the places where that GID is used.

You should avoid treating the gid as significant and use group names instead; you can change the name of a group with a single command (on Linux: groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME).

However, if you do really want to change the GID, this is how:

  • First, you may need to log out users in the group and kill processes who have that group as their effective, real or saved group.
  • Change the entry in the group database. On Linux, run groupmod -g NEWGID OLDGID. On other systems, use that system's administration tool, or vigr if available, or edit /etc/group as applicable.
  • Change the group all the files on your system that belong to the old group.

    find / -gid OLDGID -exec chgrp NEWGID {} \;
    
  • chgrp clears suid and sgid flags, restore those.

  • If you have any archive that uses the old GID, rebuild it.
  • If you have any configuration file or script that references the old GID, update it.
  • Restart all processes that must use the new GID.
share|improve this answer
add comment

The easiest way is to use groupmod -g <NEW_GID> <groupname>

Another way is to edit /etc/group directly. The third field in each column is the gid.

If the changed group is the main group of a user, /etc/passwd need to be adapted, too: usermod -g <NEW_GID> <username>. See here for more information.

share|improve this answer
    
Will this also effect gid of files too ? I mean, gid of file and gid of group will change at same time ? –  mibzer Mar 9 '12 at 13:12
    
No. This will change only the id of the group. Files/Directories keeps their (now unnamed) gid and need to be changed separately. –  jofel Mar 9 '12 at 13:18
    
Ok thank you. So if I'd like to change their(files) gid to new gid, I have to execute another command. Is that right ? That would be better if there is way to change both gid of froup file and gid of related files at the same time. –  mibzer Mar 9 '12 at 13:21
    
I've added the other command to my answer. It is not a problem if temporary a gid is used which is not in /etc/group. Every user in the group has to re-login to have the new gid. –  jofel Mar 9 '12 at 13:25
add comment

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

share|improve this answer
    
as I said that will change the gid of files. But that is not what I mean. I want to change gid of a group not a file. –  mibzer Mar 9 '12 at 13:11
    
ok, i was confused, then 'vi /etc/group' :) –  Jiri Xichtkniha Mar 9 '12 at 13:13
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.