VMware ESXi and vSphere Cluster Management

Linux-Gruppen mit groupmod und usermod ändern

Lerne, bestehende Linux-Gruppen mit groupmod umzubenennen oder ihre GID zu ändern und Benutzer mit usermod sicher zusätzlichen Gruppen zuzuweisen.

Linux-Gruppen bündeln Benutzer für die Rechteverwaltung. Statt Berechtigungen für jeden Benutzer einzeln zu pflegen, kann ein Verzeichnis oder eine Datei einer Gruppe gehören. Alle berechtigten Gruppenmitglieder erhalten dadurch gemeinsame Zugriffsrechte.

In dieser Anleitung geht es um lokale Gruppenverwaltung mit groupmod, usermod und ergänzenden Prüfwerkzeugen. Administrative Änderungen benötigen in der Regel root-Rechte, meist über sudo.

Grundlagen von Linux-Gruppen

Eine Linux-Gruppe besitzt einen lesbaren Gruppennamen und eine numerische Gruppen-ID, kurz GID. Der Name ist für Menschen bequem, während das Betriebssystem Berechtigungen letztlich anhand numerischer IDs auswertet.

BegriffBedeutungBeispiel
GruppennameLesbarer Name einer Gruppeprojektteam
GIDNumerische Kennung der Gruppe1050
Primäre GruppeStandardgruppe eines Benutzerkontos; sie wird häufig als Gruppe neu erstellter Dateien verwendetusers
Zusätzliche GruppenWeitere Gruppen, über die ein Benutzer zusätzliche Berechtigungen erhältcdrom, projektteam

Die lokale Gruppendatenbank befindet sich typischerweise in /etc/group. Sie enthält Gruppendefinitionen und gegebenenfalls Listen zusätzlicher Mitglieder. In Umgebungen mit zentraler Benutzerverwaltung kann die Ausgabe jedoch auch aus anderen konfigurierten Quellen stammen. Deshalb ist getent group häufig aussagekräftiger als das direkte Lesen der Datei.

Primäre und zusätzliche Gruppenzugehörigkeit

Jeder Benutzer hat eine primäre Gruppe. Zusätzlich kann er Mitglied mehrerer weiterer Gruppen sein. Diese zusätzlichen Gruppen werden häufig für Gerätezugriff, gemeinsame Projektverzeichnisse oder Verwaltungsaufgaben verwendet.

id bob
groups bob

groups zeigt die Gruppenzugehörigkeiten eines bestimmten Benutzers an. Die Ausgabe hilft, vor einer Änderung den Ausgangszustand zu dokumentieren.

Bestehende Gruppen mit groupmod bearbeiten

groupmod ändert Eigenschaften einer bereits vorhandenen lokalen Gruppe. Es erstellt keine neue Gruppe und fügt auch keine Benutzer als Mitglieder hinzu.

Prüfe die Zielgruppe zuerst:

getent group projektteam

Eine erfolgreiche Abfrage zeigt unter anderem den Gruppennamen, die GID und gegebenenfalls die Liste zusätzlicher Mitglieder. Führe Änderungen mit administrativen Rechten aus:

sudo groupmod OPTIONEN gruppenname

Optionen von groupmod

OptionZweckBeispielWichtige Hinweise
-nGruppennamen ändernsudo groupmod -n neuer_name alter_nameMitgliedschaften bleiben der Gruppe zugeordnet; Verweise auf den alten Namen müssen trotzdem geprüft werden.
-gNeue GID setzensudo groupmod -g 1050 projektteamDie neue GID sollte frei und geplant sein. Dateibesitz muss anschließend kontrolliert werden.
-oEine bereits verwendete GID zulassensudo groupmod -o -g 1050 projektteamNur zusammen mit einer bewussten GID-Änderung verwenden; doppelte GIDs erschweren die Verwaltung.
-pPasswortwert für eine Gruppe setzensudo groupmod -p HASH projektteamErwartet wird ein verschlüsselter Passwortwert, kein Klartextpasswort.

Gruppennamen ändern

Mit -n wird eine bestehende Gruppe umbenannt:

sudo groupmod -n neuer_name alter_name

Die Gruppe selbst bleibt dieselbe Gruppe. Ihre GID und die bestehenden Mitgliedschaften werden normalerweise beibehalten. Der lesbare Name ändert sich jedoch. Prüfe die Änderung anschließend:

getent group neuer_name
groups bob

Der alte Name kann in Skripten, Cronjobs, Dienstdefinitionen, Konfigurationsdateien, Dokumentationen oder ACL-Regeln stehen. Solche Verweise werden nicht automatisch überall angepasst. Suche daher in den relevanten Konfigurationen nach dem alten Namen und teste betroffene Dienste.

Die Gruppen-ID mit groupmod ändern

Mit -g weist du einer bestehenden Gruppe eine neue numerische GID zu:

sudo groupmod -g 1050 projektteam

GIDs sollten eindeutig sein. Prüfe deshalb, ob die gewünschte Nummer bereits verwendet wird:

getent group 1050

Je nach System akzeptiert getent die Abfrage nach einer GID direkt. Alternativ kannst du die Gruppendatenbank gezielt kontrollieren:

getent group | awk -F: '$3 == 1050'

Nach einer GID-Änderung können Dateien und Verzeichnisse weiterhin die alte numerische Gruppen-ID tragen. Dadurch kann ihr Gruppenbesitz nicht mehr zur erwarteten Gruppe passen oder auf eine andere Gruppe zeigen. Identifiziere betroffene Objekte und korrigiere sie kontrolliert, beispielsweise mit chgrp oder chown.

# Beispiel: Objekte mit der alten GID suchen
sudo find /pfad/zum/projekt -gid ALTE_GID -ls

Die alte GID muss durch den tatsächlich verwendeten Wert ersetzt werden. Prüfe außerdem Dienste, Skripte, ACLs und Sicherungskonfigurationen, die sich auf die alte GID beziehen.

Doppelte Gruppen-ID mit -o zulassen

Normalerweise verhindert groupmod, dass eine Gruppe eine bereits vergebene GID erhält. Mit -o kann diese Prüfung ausdrücklich übergangen werden:

sudo groupmod -o -g 1050 projektteam

Damit können mehrere Gruppennamen dieselbe numerische ID besitzen. Das ist gewöhnlich nicht empfehlenswert, weil Dateirechte nur die GID sehen und nicht zuverlässig zwischen den verschiedenen Namen unterscheiden können.

  • Der tatsächliche Gruppenname eines Dateibesitzes wird mehrdeutig.
  • Administratoren können schwer nachvollziehen, welche Gruppe Berechtigungen vermittelt.
  • Berichte, Skripte und Prüfwerkzeuge können widersprüchliche Ergebnisse liefern.
  • Eine spätere Änderung oder Löschung einer der Gruppen kann unerwartete Auswirkungen haben.

Verwende -o nur bei einem ausdrücklich geplanten Sonderfall, etwa einer bewusst verwalteten Kompatibilitätssituation. Dokumentiere die doppelte GID und prüfe Dateibesitz sowie Zugriffsregeln besonders sorgfältig.

Ein Gruppenpasswort setzen

Mit -p kann ein Passwortwert für eine Gruppe hinterlegt werden:

sudo groupmod -p HASH projektteam

HASH steht dabei für einen bereits verschlüsselten Passwortwert. Übergebe kein Klartextpasswort in der Befehlszeile. Befehle können unter Umständen in der Shell-Historie oder in Prozessinformationen sichtbar werden.

Gruppenpasswörter gelten heute als wenig attraktive Sicherheitslösung. Sie sind schwer zu kontrollieren und bieten keine klare individuelle Nachvollziehbarkeit. Bevorzuge nach Möglichkeit gezielte Mitgliedschaften mit usermod -a -G, passende Datei- und Verzeichnisberechtigungen sowie ACLs. Wenn ein Gruppenpasswort aus Kompatibilitätsgründen erforderlich ist, behandle den Wert wie ein Geheimnis und beachte die Sicherheitsrichtlinien des Systems.

Benutzer zu Gruppen hinzufügen: usermod statt groupmod

Für Benutzerkonten ist usermod das passende Werkzeug. groupmod ändert Gruppeneigenschaften, verwaltet aber nicht die Mitgliedschaft eines Benutzers.

Die Option -G setzt die Liste der zusätzlichen Gruppen eines Benutzers. Ohne -a ersetzt diese Liste die bisher vorhandenen zusätzlichen Gruppen:

sudo usermod -G test_group bob

Dieser Befehl kann bisherige Zusatzgruppen von bob entfernen. Die primäre Gruppe wird durch -G nicht als zusätzliche Gruppe gesetzt, dennoch kann der Verlust anderer Zusatzgruppen Zugriffe unterbrechen.

Um eine Gruppe ergänzend hinzuzufügen und vorhandene Zusatzgruppen zu bewahren, kombiniere -a und -G:

sudo usermod -a -G cdrom jwilliams

-a bedeutet „append“, also ergänzen. Die Reihenfolge der Optionen ist in dieser Schreibweise gut lesbar: -a -G gruppe.

Bestehende Gruppenzugehörigkeiten bewahren

Prüfe die Mitgliedschaften vor und nach jeder Änderung:

groups bob
sudo usermod -a -G projektteam bob
groups bob

In einer bereits geöffneten Sitzung werden neue Gruppenmitgliedschaften möglicherweise noch nicht angezeigt. Der Benutzer sollte sich ab- und wieder anmelden oder eine neue Sitzung starten. Danach muss die Ausgabe erneut geprüft werden.

BefehlstypAuswirkung auf vorhandene zusätzliche GruppenGeeigneter Einsatzzweck
usermod -G gruppe benutzerVorhandene zusätzliche Gruppen werden durch die angegebene Liste ersetzt.Eine vollständige Zusatzgruppenliste bewusst neu setzen.
usermod -a -G gruppe benutzerVorhandene zusätzliche Gruppen bleiben erhalten; die angegebene Gruppe wird ergänzt.Eine einzelne zusätzliche Berechtigung sicher hinzufügen.

groupmod und usermod im Vergleich

AufgabePassender BefehlRelevante OptionenRisiko oder Hinweis
Gruppenname änderngroupmod-nAlte Namen in Konfigurationen und Skripten suchen.
GID änderngroupmod-g, gegebenenfalls -oGID-Konflikte und Dateibesitz prüfen.
Gruppenzugehörigkeit eines Benutzers setzenusermod-GOhne -a werden bisherige Zusatzgruppen ersetzt.
Gruppenzugehörigkeit eines Benutzers ergänzenusermod-a -GVorhandene Zusatzgruppen bleiben erhalten.
Gruppen eines Benutzers anzeigengroupsBenutzernameNach Änderungen eventuell eine neue Sitzung starten.

Gruppeninformationen und /etc/group prüfen

Mit getent group gruppenname fragst du die Gruppe über die konfigurierte Namensauflösung ab:

getent group projektteam

Für lokale Systeme kannst du zusätzlich /etc/group prüfen. Die Einträge sind typischerweise durch Doppelpunkte getrennt:

gruppenname:x:GID:mitglied1,mitglied2

Verändere diese Datei nicht leichtfertig mit einem Texteditor. Nutze die vorgesehenen Verwaltungswerkzeuge, sichere die Konfiguration und berücksichtige, dass manche Systeme zusätzliche Daten in /etc/gshadow oder über externe Verzeichnisdienste verwalten.

Gruppen löschen

Eine nicht mehr benötigte lokale Gruppe wird grundsätzlich mit groupdel entfernt:

sudo groupdel alte_gruppe

Vor dem Löschen muss geprüft werden, ob die Gruppe noch Mitglieder, Dateien oder Verzeichnisse besitzt und ob Dienste, Skripte, ACLs oder Konfigurationen von ihr abhängen. Eine Gruppe zu löschen entfernt nicht automatisch die Gruppen-ID aus allen Dateisystemobjekten. Das kann zu verwaistem oder missverständlich zugeordnetem Gruppenbesitz führen.

  1. Gruppenmitglieder mit getent group alte_gruppe und Benutzerprüfungen erfassen.
  2. Die primäre Gruppe von Benutzern kontrollieren, die diese Gruppe verwenden.
  3. Dateien und Verzeichnisse mit der Gruppen-ID suchen.
  4. Dienste, Skripte, ACLs und Konfigurationsdateien auf Abhängigkeiten prüfen.
  5. Besitz und Mitgliedschaften gegebenenfalls auf eine geplante Ersatzgruppe übertragen.
  6. Erst danach sudo groupdel alte_gruppe ausführen und die Umgebung testen.

Fehlerbehebung

Frühere Gruppen fehlen nach usermod -G

Wahrscheinlich wurde -G ohne -a verwendet. Ermittle die gewünschte Mitgliedschaft erneut mit groups benutzername und stelle fehlende Gruppen wieder her. Für einzelne ergänzende Änderungen verwende künftig:

sudo usermod -a -G gruppe benutzername

Die gewünschte GID kann nicht gesetzt werden

Die GID ist vermutlich bereits einer anderen Gruppe zugeordnet. Wähle eine freie GID oder verwende -o nur nach einer bewussten Prüfung des Sonderfalls.

Ein Skript oder Dienst funktioniert nach dem Umbenennen nicht

Eine Konfiguration verweist möglicherweise noch auf den alten Gruppennamen. Prüfe Dienstdefinitionen, Automatisierungen, ACLs und Konfigurationsdateien. Passe die Verweise an und teste den Dienst erneut.

Dateizugriffe sind nach einer GID-Änderung falsch

Dateisystemobjekte können weiterhin die alte numerische GID tragen. Suche betroffene Objekte mit find, kontrolliere ihren Besitz und übertrage den Gruppenbesitz erst nach einer fachlichen Prüfung auf die neue Gruppe.

Die Änderung ist in der aktuellen Sitzung nicht sichtbar

Gruppeninformationen werden häufig beim Anmelden in die Sitzung übernommen. Starte eine neue Sitzung oder melde dich ab und wieder an. Prüfe danach erneut mit groups oder id.

Eine Gruppe lässt sich nicht löschen

Prüfe Mitglieder, primäre Gruppenzugehörigkeiten, Dateibesitz und abhängige Dienste. Bereinige diese Verwendungen oder plane einen kontrollierten Ersatz, bevor du groupdel erneut ausführst.

Prüfungs- und Praxisnotizen

  • groupmod ändert Eigenschaften einer vorhandenen Gruppe.
  • -n benennt eine Gruppe um, -g ändert ihre GID, -o erlaubt dabei eine doppelte GID.
  • -p erwartet einen verschlüsselten Gruppenpasswortwert, kein Klartextpasswort.
  • usermod -G setzt zusätzliche Gruppen; ohne -a ersetzt es die bisherige Zusatzgruppenliste.
  • usermod -a -G ergänzt eine Gruppe und bewahrt vorhandene zusätzliche Gruppen.
  • Vor und nach Änderungen sollten Gruppen, GIDs, Dateibesitz und aktive Sitzungen geprüft werden.
  • Bei lokalen Konten ist /etc/group eine wichtige Datenquelle; getent berücksichtigt die konfigurierte Namensauflösung.

Weitere passende Themen sind Linux-Gruppen ändern und verwalten, das Erstellen und Löschen von Gruppen sowie die Verwaltung von Dateibesitz mit chown und chgrp.