Зміна gid певної групи


34

Я хотів би змінити ідентифікатор групи певної групи. Існує таке рішення для зміни gid файлу чи каталогів. Але це не те, що я хочу. Чи є спосіб це зробити?

Відповіді:


42

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 знімає прапори та тверді прапори, відновлює їх.

  • Якщо у вас є архів, який використовує старий GID, відновіть його.
  • Якщо у вас є файл конфігурації або сценарій, на який посилається старий GID, оновіть його.
  • Перезапустіть усі процеси, які повинні використовувати новий GID.

2
Запропонуйте використовувати chgrp -h ...замість chgrp .... Без -hцього ціль будь-якого відповідного символьного посилання змінить свою групу.
Марк Плотнік

3
groupmodвізьміть ім’я як основний аргумент для мене ...groupmod -g NEWGID GROUPNAME
Метт

29

Найпростіший спосіб - це використовувати groupmod -g <NEW_GID> <groupname>

Інший спосіб - це редагування /etc/groupбезпосередньо. Третє поле кожного стовпця - це gid.

Якщо змінена група є основною групою користувача, /etc/passwdповинні бути адаптовані також: usermod -g <NEW_GID> <username>.


Чи це також вплине на gid файлів? Я маю на увазі, Gid файлу та gid групи зміняться одночасно?
мібзер

1
Ні. Це змінить лише ідентифікатор групи. Файли / каталоги зберігають їх (тепер без назви) gid і їх потрібно змінити окремо.
Джофель

Добре, дякую. Отже, якщо я хотів би змінити їх (файли) gid на новий gid, я повинен виконати іншу команду. Це так ? Це було б краще, якщо є спосіб змінити одночасно і файл файлу, і пов'язані з ним файли.
mibzer

До своєї відповіді я додав іншу команду. Це не проблема, якщо використовується тимчасовий gid, який не знаходиться в / etc / group. Кожен користувач групи повинен повторно увійти, щоб отримати новий gid.
Джофель

0

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


як я вже говорив, це змінить gid файлів. Але це не те, що я маю на увазі. Я хочу змінити gid групи, а не файл.
мібзер

ок, я був розгублений, тоді 'vi / etc / group' :)
jirib
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.