it-swarm.com.de

Ändern Sie die GID einer bestimmten Gruppe

Ich möchte die Gruppen-ID einer bestimmten Gruppe ändern. Es gibt möglicherweise Lösungen zum Ändern der GID einer Datei oder von Verzeichnissen. Aber das will ich nicht. Gibt es eine Möglichkeit, das zu tun?

36
mibzer

Die GID ist die primäre Kennung der Gruppe. Für das System ist eine andere GID eine andere Gruppe. Um die GID zu ändern, müssen Sie alle Stellen ändern, an denen diese GID verwendet wird.

Sie sollten vermeiden, die GID als signifikant zu behandeln, und stattdessen Gruppennamen verwenden. Sie können den Namen einer Gruppe mit einem einzigen Befehl ändern (unter Linux: groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME).

Wenn Sie die GID jedoch wirklich ändern möchten, gehen Sie wie folgt vor:

  • Zunächst müssen Sie möglicherweise Benutzer in der Gruppe abmelden und Prozesse beenden, deren effektive, reale oder gespeicherte Gruppe diese Gruppe ist.
  • Ändern Sie den Eintrag in der Gruppendatenbank. Führen Sie unter Linux groupmod -g NEWGID GROUPNAME. Verwenden Sie auf anderen Systemen das Verwaltungstool dieses Systems oder vigr, falls verfügbar, oder bearbeiten Sie /etc/group soweit zutreffend.
  • Ändern Sie die Gruppe aller Dateien auf Ihrem System, die zur alten Gruppe gehören.

    find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
    
  • chgrp löscht suid- und sgid-Flags und stellt diese wieder her.

  • Wenn Sie ein Archiv haben, das die alte GID verwendet, erstellen Sie es neu.
  • Wenn Sie eine Konfigurationsdatei oder ein Skript haben, das auf die alte GID verweist, aktualisieren Sie diese.
  • Starten Sie alle Prozesse neu, die die neue GID verwenden müssen.

Am einfachsten ist es, groupmod -g <NEW_GID> <groupname>

Eine andere Möglichkeit besteht darin, /etc/group direkt. Das dritte Feld in jeder Spalte ist die GID.

Wenn die geänderte Gruppe die Hauptgruppe eines Benutzers ist, /etc/passwd müssen ebenfalls angepasst werden: usermod -g <NEW_GID> <username>.

31
jofel

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

0
jirib