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
Aspektaddgroupgroupadd
ZweckKomfortables Werkzeug zur GruppenverwaltungNiedrigeres Standardwerkzeug zum Erstellen von Gruppen
Typischer EinsatzDebian- und Ubuntu-AdministrationSkripte oder distributionsübergreifende Standardverwaltung
VerhaltenKann distributionsspezifische Defaults und Prüfungen verwendenOrientiert sich stärker an den grundlegenden Systemfunktionen
KompatibilitätOptionen und Verhalten können je nach Distribution abweichenOptionen 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_group

Das 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_group

Eine 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_group

Die 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_group

In 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.

AufgabeBefehl/WerkzeugErgebnisHinweise
Normale Gruppe erstellensudo addgroup test_groupNeue Gruppe mit automatisch gewählter GIDGeeignet, wenn keine feste GID erforderlich ist
Gruppe mit fester GID erstellensudo addgroup --gid 2000 test_groupNeue Gruppe mit GID 2000Vorher prüfen, ob die GID frei ist
Benutzer hinzufügensudo adduser jowilliams test_groupBenutzer erhält eine zusätzliche GruppenmitgliedschaftDie Gruppe muss bereits existieren
Lokale oder zentrale Gruppe abfragengetent group test_groupGruppeneintrag aus der konfigurierten Namensdienst-DatenbankAuch 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_group

Eine 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_group

Beispiel einer passenden Ausgabe:

test_group:x:2000:jowilliams

Hier 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 jowilliams

In 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üfzielBeispielbefehlErwartete Ausgabe
Gruppe vorhandengetent group test_groupEin Eintrag für test_group
GID kontrollierengetent group test_groupDie erwartete numerische GID, zum Beispiel 2000
Lokale Datei prüfengrep '^test_group:' /etc/groupPassender Eintrag in /etc/group
Benutzergruppen anzeigenid jowilliamstest_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/datei

Je 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 jowilliams

und die Gruppe mit:

getent group test_group

Erstelle 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/verzeichnis

Stimmt 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

  1. Prüfe, ob der Gruppenname bereits existiert.
  2. Erstelle die Gruppe mit sudo addgroup test_group oder mit einer bewusst gewählten freien GID.
  3. Füge den vorhandenen Benutzer mit sudo adduser jowilliams test_group hinzu.
  4. Kontrolliere Gruppe und GID mit getent group test_group.
  5. Kontrolliere die Benutzergruppen mit id jowilliams.
  6. 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.