VMware ESXi and vSphere Cluster Management
Linux-Gruppen mit addgroup erstellen und Benutzer hinzufügen
Lerne, wie du unter Debian und Ubuntu mit addgroup Linux-Gruppen erstellst, eine GID festlegst, Benutzer hinzufügst und die Mitgliedschaft überprüfst.
Linux-Gruppen bündeln Benutzerkonten für die gemeinsame Verwaltung von Zugriffsrechten. Statt Berechtigungen für jedes Benutzerkonto einzeln zu vergeben, kann ein Administrator Dateien und Verzeichnisse einer Gruppe zuordnen und die Gruppenrechte passend setzen.
Diese Anleitung richtet sich vor allem an Debian- und Ubuntu-Systeme. Für die Beispiele brauchst du ein Terminal und administrative Rechte über sudo oder eine Root-Shell.
Was sind Linux-Gruppen?
Eine Gruppe ist eine systemweite Sammlung von Benutzerkonten. Sie wird durch einen Namen und eine numerische GID (Group ID) identifiziert. Gruppen werden häufig verwendet, um mehreren Personen Zugriff auf Projektdateien, Geräte oder bestimmte Verzeichnisse zu geben.
Ein Benutzerkonto besitzt normalerweise:
- eine primäre Gruppe: die Standardgruppe des Kontos. Sie kann unter anderem für neu erstellte Dateien relevant sein;
- eine oder mehrere zusätzliche Gruppen: weitere Mitgliedschaften, durch die das Konto zusätzliche Gruppenberechtigungen erhält.
Das Anlegen einer Gruppe und das Hinzufügen von Benutzern sind zwei getrennte Arbeitsschritte. Eine neu erstellte Gruppe kann zunächst leer sein und muss keine Benutzer enthalten.
Das Werkzeug addgroup
addgroup ist auf Debian- und Ubuntu-Systemen ein komfortables Administrationswerkzeug zum Erstellen und Verwalten von Gruppen. Es verwendet distributionsspezifische Standardeinstellungen und ist für typische Verwaltungsaufgaben leichter zugänglich als das niedrigere Werkzeug groupadd.
groupadd ist das standardnahe Werkzeug zum Erstellen einer Gruppe. Die genaue Syntax, die verfügbaren Optionen und das Verhalten können sich von addgroup unterscheiden. Außerdem ist addgroup nicht auf jeder Distribution vorhanden oder gleich implementiert. Prüfe deshalb die lokale Dokumentation:
man addgroup| Aspekt | addgroup | groupadd |
|---|---|---|
| Zweck | Komfortables Werkzeug zur Gruppenverwaltung | Niedrigeres Standardwerkzeug zum Erstellen von Gruppen |
| Typischer Einsatz | Debian- und Ubuntu-Administration | Skripte oder distributionsübergreifende Standardverwaltung |
| Verhalten | Kann distributionsspezifische Defaults und Prüfungen verwenden | Orientiert sich stärker an den grundlegenden Systemfunktionen |
| Kompatibilität | Optionen und Verhalten können je nach Distribution abweichen | Optionen können ebenfalls je nach Systemversion variieren |
Eine Gruppe mit Standardwerten anlegen
Die Grundsyntax besteht aus dem Befehl und dem gewünschten Gruppennamen:
sudo addgroup test_groupDas System wählt dabei automatisch eine freie GID. Für eine normale lokale Gruppe ist das meist die beste Vorgehensweise, weil die Distribution dadurch ihre vorgesehenen Bereiche und Regeln verwenden kann.
Sinnvolle Gruppennamen sind eindeutig, verständlich und für die lokale Systemumgebung geeignet. Verwende keine Namen, die mit bestehenden Benutzern oder Gruppen verwechselt werden können. Prüfe bei Unsicherheit zunächst, ob der Name bereits existiert:
getent group test_groupEine leere Ausgabe bedeutet bei diesem Beispiel normalerweise, dass kein entsprechender Gruppeneintrag über die konfigurierten Namensdienste gefunden wurde.
Eine feste GID vergeben
Die GID ist die numerische Kennung einer Gruppe. Linux verwendet sie intern, während der Gruppenname nur die lesbare Darstellung ist. Eine feste GID kann sinnvoll sein, wenn Dateiberechtigungen zwischen mehreren Systemen abgestimmt werden müssen oder ein bestimmter numerischer Wert in einer bestehenden Umgebung vorgegeben ist.
Beispiel: Die Gruppe test_group soll die GID 2000 erhalten:
sudo addgroup --gid 2000 test_groupDie Optionsschreibweise sollte mit der lokalen Manpage geprüft werden, da sich addgroup je nach Distribution und Version unterscheiden kann. Eine GID sollte nicht ohne konkreten Grund manuell festgelegt werden. Prüfe außerdem vorab, ob sie bereits vergeben ist:
getent group | grep ':2000:'Findet der Befehl einen Eintrag, ist die GID bereits belegt. Wähle dann eine freie GID oder lasse das System die nächste geeignete GID bestimmen. Eine doppelte GID kann zu falschen Zuordnungen und unerwarteten Berechtigungen führen.
Benutzer einer bestehenden Gruppe hinzufügen
Nachdem die Gruppe existiert, kann ein vorhandener Benutzer als zusätzliches Mitglied eingetragen werden. Unter Debian und Ubuntu wird dafür häufig adduser verwendet:
sudo adduser jowilliams test_groupIn diesem Beispiel ist jowilliams der Benutzer und test_group die bereits vorhandene Zielgruppe. Der Befehl ändert nicht automatisch die primäre Gruppe des Benutzers, sondern fügt eine zusätzliche Gruppenmitgliedschaft hinzu.
Die neue Mitgliedschaft wird in der aktuellen Anmeldung möglicherweise noch nicht angezeigt. Der Benutzer muss sich gegebenenfalls ab- und wieder anmelden oder eine neue Sitzung starten. Bereits laufende Prozesse behalten oft die beim Start geladene Gruppenliste.
| Aufgabe | Befehl/Werkzeug | Ergebnis | Hinweise |
|---|---|---|---|
| Normale Gruppe erstellen | sudo addgroup test_group | Neue Gruppe mit automatisch gewählter GID | Geeignet, wenn keine feste GID erforderlich ist |
| Gruppe mit fester GID erstellen | sudo addgroup --gid 2000 test_group | Neue Gruppe mit GID 2000 | Vorher prüfen, ob die GID frei ist |
| Benutzer hinzufügen | sudo adduser jowilliams test_group | Benutzer erhält eine zusätzliche Gruppenmitgliedschaft | Die Gruppe muss bereits existieren |
| Lokale oder zentrale Gruppe abfragen | getent group test_group | Gruppeneintrag aus der konfigurierten Namensdienst-Datenbank | Auch für LDAP, NIS oder andere Namensdienste geeignet |
Ergebnisse überprüfen
Existiert die Gruppe?
Mit getent fragst du die auf dem System konfigurierte Namensdienst-Datenbank ab:
getent group test_groupEine typische Ausgabe enthält den Gruppennamen, ein Gruppenpasswortfeld, die GID und eine Liste zusätzlicher Mitglieder. Die genaue Ausgabe hängt von der Systemkonfiguration ab.
Stimmt die GID?
Auch die GID steht in der Ausgabe von getent:
getent group test_groupBeispiel einer passenden Ausgabe:
test_group:x:2000:jowilliamsHier ist 2000 die GID. Die lokale Gruppendatei kannst du zusätzlich direkt durchsuchen:
grep '^test_group:' /etc/group/etc/group ist die lokale Gruppendatenbank auf vielen Linux-Systemen. Wenn Gruppen auch über LDAP, NIS oder einen anderen Namensdienst kommen können, ist getent vorzuziehen.
Ist der Benutzer Mitglied?
Mit id kannst du die primäre und die zusätzlichen Gruppen eines Benutzers anzeigen:
id jowilliamsIn der Ausgabe sollte neben den Benutzer- und Kontoinformationen auch test_group erscheinen. Falls die Gruppe im System vorhanden ist, aber in der aktuellen Sitzung fehlt, melde dich neu an und führe den Befehl erneut aus.
| Prüfziel | Beispielbefehl | Erwartete Ausgabe |
|---|---|---|
| Gruppe vorhanden | getent group test_group | Ein Eintrag für test_group |
| GID kontrollieren | getent group test_group | Die erwartete numerische GID, zum Beispiel 2000 |
| Lokale Datei prüfen | grep '^test_group:' /etc/group | Passender Eintrag in /etc/group |
| Benutzergruppen anzeigen | id jowilliams | test_group erscheint in der Gruppenliste |
Berechtigungen und sichere Ausführung
Das Erstellen von Gruppen und das Ändern von Mitgliedschaften sind administrative Vorgänge. Verwende daher sudo vor dem jeweiligen Befehl oder führe die Befehle in einer Root-Shell aus. Eine Root-Shell erhöht das Risiko, versehentlich systemweite Änderungen vorzunehmen; sudo ist für einzelne Befehle oft übersichtlicher.
Die Mitgliedschaft allein gewährt nicht automatisch Zugriff auf jede Datei. Ein Benutzer kann die Gruppenrechte einer Datei nur nutzen, wenn die Datei oder das Verzeichnis diese Gruppe als Eigentümergruppe eingetragen hat und die Gruppenbits passende Rechte erlauben. Prüfe das beispielsweise mit:
ls -l /pfad/zur/dateiJe nach Situation kommen anschließend chgrp zum Ändern der Eigentümergruppe und chmod zum Anpassen der Rechte infrage. Bei gemeinsam genutzten Projektverzeichnissen kann außerdem das setgid-Bit relevant sein, damit neue Dateien die Verzeichnisgruppe übernehmen.
Fehlerbehebung
Die GID ist bereits vergeben
Wenn die Gruppe wegen einer belegten GID nicht erstellt werden kann, suche nach dem vorhandenen Eintrag:
getent group | grep ':2000:'Wähle eine freie GID oder lasse addgroup automatisch eine GID bestimmen. Vermeide es, eine bereits verwendete GID zu erzwingen.
Fehlende Berechtigung
Eine Meldung wie „Permission denied“ weist häufig darauf hin, dass der Befehl ohne administrative Rechte ausgeführt wurde. Wiederhole den Befehl mit sudo und prüfe bei Problemen zusätzlich die sudo-Konfiguration.
addgroup fehlt oder verhält sich anders
Die Distribution kann ein anderes Verwaltungswerkzeug oder eine abweichende Implementierung verwenden. Lies die lokale Dokumentation mit man addgroup. Falls das Werkzeug nicht vorhanden ist, prüfe groupadd und die distributionsspezifische Benutzerverwaltung. Übernimm Optionen nicht ungeprüft von einem anderen System.
Der Benutzer erscheint nicht in der Gruppe
Prüfe zuerst mit id jowilliams, ob die Mitgliedschaft grundsätzlich eingetragen wurde. Wenn sie dort nach einer Änderung noch fehlt, starte eine neue Sitzung durch Ab- und Anmeldung. Bereits laufende Prozesse übernehmen die neue Gruppenliste nicht immer automatisch.
Benutzer oder Gruppe existiert nicht
Ein falsch geschriebener Name oder eine noch nicht angelegte Ressource verursacht häufig diesen Fehler. Prüfe den Benutzer mit:
getent passwd jowilliamsund die Gruppe mit:
getent group test_groupErstelle zuerst die fehlende Gruppe oder das fehlende Benutzerkonto und wiederhole anschließend die Zuordnung.
Die Gruppe gewährt keinen Dateizugriff
Kontrolliere Eigentümergruppe und Modus der betroffenen Datei oder des Verzeichnisses:
ls -l /pfad/zum/verzeichnisStimmt die Eigentümergruppe nicht oder fehlen Gruppenrechte, müssen chgrp und chmod gezielt eingesetzt werden. Eine Mitgliedschaft in test_group ersetzt keine passenden Datei- und Verzeichnisberechtigungen.
Kurzablauf
- Prüfe, ob der Gruppenname bereits existiert.
- Erstelle die Gruppe mit
sudo addgroup test_groupoder mit einer bewusst gewählten freien GID. - Füge den vorhandenen Benutzer mit
sudo adduser jowilliams test_grouphinzu. - Kontrolliere Gruppe und GID mit
getent group test_group. - Kontrolliere die Benutzergruppen mit
id jowilliams. - Lass den Benutzer bei Bedarf eine neue Sitzung starten und prüfe anschließend den Dateizugriff.
Weitere Themen zur Vertiefung sind Linux-Gruppen verwalten, das Entfernen von Benutzern aus Gruppen, groupdel, chown, chgrp, chmod und gemeinsam genutzte Projektverzeichnisse mit dem setgid-Bit.