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.
| Begriff | Bedeutung | Beispiel |
|---|---|---|
| Gruppenname | Lesbarer Name einer Gruppe | projektteam |
| GID | Numerische Kennung der Gruppe | 1050 |
| Primäre Gruppe | Standardgruppe eines Benutzerkontos; sie wird häufig als Gruppe neu erstellter Dateien verwendet | users |
| Zusätzliche Gruppen | Weitere Gruppen, über die ein Benutzer zusätzliche Berechtigungen erhält | cdrom, 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
| Option | Zweck | Beispiel | Wichtige Hinweise |
|---|---|---|---|
-n | Gruppennamen ändern | sudo groupmod -n neuer_name alter_name | Mitgliedschaften bleiben der Gruppe zugeordnet; Verweise auf den alten Namen müssen trotzdem geprüft werden. |
-g | Neue GID setzen | sudo groupmod -g 1050 projektteam | Die neue GID sollte frei und geplant sein. Dateibesitz muss anschließend kontrolliert werden. |
-o | Eine bereits verwendete GID zulassen | sudo groupmod -o -g 1050 projektteam | Nur zusammen mit einer bewussten GID-Änderung verwenden; doppelte GIDs erschweren die Verwaltung. |
-p | Passwortwert für eine Gruppe setzen | sudo groupmod -p HASH projektteam | Erwartet 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.
| Befehlstyp | Auswirkung auf vorhandene zusätzliche Gruppen | Geeigneter Einsatzzweck |
|---|---|---|
usermod -G gruppe benutzer | Vorhandene zusätzliche Gruppen werden durch die angegebene Liste ersetzt. | Eine vollständige Zusatzgruppenliste bewusst neu setzen. |
usermod -a -G gruppe benutzer | Vorhandene zusätzliche Gruppen bleiben erhalten; die angegebene Gruppe wird ergänzt. | Eine einzelne zusätzliche Berechtigung sicher hinzufügen. |
groupmod und usermod im Vergleich
| Aufgabe | Passender Befehl | Relevante Optionen | Risiko oder Hinweis |
|---|---|---|---|
| Gruppenname ändern | groupmod | -n | Alte Namen in Konfigurationen und Skripten suchen. |
| GID ändern | groupmod | -g, gegebenenfalls -o | GID-Konflikte und Dateibesitz prüfen. |
| Gruppenzugehörigkeit eines Benutzers setzen | usermod | -G | Ohne -a werden bisherige Zusatzgruppen ersetzt. |
| Gruppenzugehörigkeit eines Benutzers ergänzen | usermod | -a -G | Vorhandene Zusatzgruppen bleiben erhalten. |
| Gruppen eines Benutzers anzeigen | groups | Benutzername | Nach Ä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.
- Gruppenmitglieder mit
getent group alte_gruppeund Benutzerprüfungen erfassen. - Die primäre Gruppe von Benutzern kontrollieren, die diese Gruppe verwenden.
- Dateien und Verzeichnisse mit der Gruppen-ID suchen.
- Dienste, Skripte, ACLs und Konfigurationsdateien auf Abhängigkeiten prüfen.
- Besitz und Mitgliedschaften gegebenenfalls auf eine geplante Ersatzgruppe übertragen.
- Erst danach
sudo groupdel alte_gruppeausfü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.-nbenennt eine Gruppe um,-gändert ihre GID,-oerlaubt dabei eine doppelte GID.-perwartet einen verschlüsselten Gruppenpasswortwert, kein Klartextpasswort.usermod -Gsetzt zusätzliche Gruppen; ohne-aersetzt es die bisherige Zusatzgruppenliste.usermod -a -Gergä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/groupeine wichtige Datenquelle;getentberü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.