Измените gid определенной группы

Я хочу изменить идентификатор группы для определенной группы. Есть так может быть решение для изменения gid файла или каталогов. Но этого я не хочу. Есть ли способ сделать это?

27 голосов | спросил mibzer 9 MarpmFri, 09 Mar 2012 17:01:06 +04002012-03-09T17:01:06+04:0005 2012, 17:01:06

3 ответа


33

GID является основным идентификатором группы. Что касается системы, другой GID - это другая группа. Таким образом, чтобы изменить GID, вам придется изменить все места, где используется этот GID.

Вам следует избегать использования GID как значимого и использовать имена групп; вы можете изменить имя группы с помощью одной команды (в Linux: groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME).

Однако, если вы действительно хотите изменить GID, вот как:

  • Во-первых, вам может потребоваться вывести пользователей из группы и убить процессы, у которых эта группа является их эффективной, реальной или сохраненной группой.
  • Измените запись в базе данных группы. В Linux запустите groupmod -g NEWGID GROUPNAME. В других системах используйте этот инструмент администрирования системы или vigr, если он доступен, или отредактируйте /etc/group, если применимо.
  • Измените группу всех файлов вашей системы, принадлежащих к старой группе.

    find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
    
  • chgrp очищает флаги suid и sgid, восстанавливает их.

  • Если у вас есть архив, который использует старый GID, перестройте его.
  • Если у вас есть какой-либо файл конфигурации или скрипт, который ссылается на старый GID, обновите его.
  • Перезапустите все процессы, которые должны использовать новый GID.
ответил Gilles 10 MaramSat, 10 Mar 2012 01:20:25 +04002012-03-10T01:20:25+04:0001 2012, 01:20:25
25

Самый простой способ - использовать groupmod -g <NEW_GID> <groupname>

Другой способ - отредактировать /etc/group. Третьим полем в каждом столбце является gid.

Если измененная группа является основной группой пользователя, необходимо также изменить /etc/passwd: usermod -g <NEW_GID> <username>. Подробнее см. .

ответил jofel 9 MarpmFri, 09 Mar 2012 17:09:23 +04002012-03-09T17:09:23+04:0005 2012, 17:09:23
0

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

ответил jirib 9 MarpmFri, 09 Mar 2012 17:08:27 +04002012-03-09T17:08:27+04:0005 2012, 17:08:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132