Я хотел бы изменить идентификатор группы конкретной группы. Есть также решение для изменения gid файла или каталогов. Но это не то, что я хочу. Есть ли способ сделать это?
34
GID является основным идентификатором группы. Что касается системы, другой GID - это другая группа. Таким образом, чтобы изменить GID, вам нужно изменить все места, где используется этот GID.
Вам следует избегать считать GID значимым и использовать вместо этого имена групп; Вы можете изменить имя группы с помощью одной команды (в Linux:) groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME
.
Однако, если вы действительно хотите изменить GID, вот как:
groupmod -g NEWGID GROUPNAME
. В других системах используйте инструмент администрирования этой системы, или, vigr
если он доступен, или отредактируйте, /etc/group
если применимо.Измените группу всех файлов в вашей системе, которые принадлежат старой группе.
find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
chgrp очищает флаги suid и sgid, восстанавливает их.
chgrp -h ...
вместоchgrp ...
. Без-h
, цель любой соответствующей символической ссылки будет менять свою группу.groupmod
принять имя в качестве основного аргумента для меня ...groupmod -g NEWGID GROUPNAME
Самый простой способ - это использовать
groupmod -g <NEW_GID> <groupname>
Другой способ - редактировать
/etc/group
напрямую. Третье поле в каждом столбце - это gid.Если измененная группа является основной группой пользователя,
/etc/passwd
должны быть адаптированы также:usermod -g <NEW_GID> <username>
.источник
find / path -group foo -print0 | xargs -0 chgrp bar
источник