linux-cli-shell cli user-management administration groups fundamentals

Group Management: groupadd & groupdel (Artikel 286)

Verwaltung von Benutzergruppen unter Linux. Erfahren Sie alles über die Erstellung von Projektgruppen, die Steuerung von Dateizugriffen und die Konsistenz von GIDs im Netzwerk.

# Group Management: Gemeinsam stark durch Berechtigungen

TL;DR / Management Summary Ein Senior Admin verwaltet Berechtigungen niemals für einzelne User, sondern immer für Gruppen. Dies ist die einzige Methode, um eine Infrastruktur mit hunderten Usern wartbar zu halten. Mit den Befehlen groupadd, groupmod und groupdel steuern wir die Gruppen-Datenbank des Systems. Ein korrektes GID-Management ist zudem die Voraussetzung für funktionierende Shared-Storage-Lösungen (NFS/SAN).


# 1. Einführung & Architektur

Die Datenbank der Gruppen.

In Linux ist eine Gruppe ein logischer Container für Benutzer. Sie wird in der Datei /etc/group definiert.

# Die Gruppen-Struktur (Mermaid)

graph TD
    A[/etc/group File] --> B[Group Name: developers]
    A --> C[Group Name: sysadmins]
    B --> D[GID: 1001]
    C --> E[GID: 1002]
    B --> F[Users: alice, bob]
    C --> G[Users: charlie, admin]
    H[Folder: /projects] -->|chown :developers| B

# 2. groupadd: Gruppen erstellen

Struktur schaffen.

# Einfache Gruppe erstellen

sudo groupadd it-admins

# Gruppe mit fester ID (Wichtig für Cluster!)

Um sicherzustellen, dass die Gruppe auf allen Servern die gleiche GID hat (verhindert Rechte-Chaos auf NFS):

sudo groupadd -g 2000 shared-data

# 3. groupmod & groupdel

Anpassung und Aufräumen.

# Gruppenname ändern

sudo groupmod -n new-name old-name

# Gruppe löschen

sudo groupdel old-group

Vorsicht: Das Löschen einer Gruppe löscht nicht die Dateien, die dieser Gruppe gehören. Diese Dateien werden danach nur noch mit ihrer numerischen GID angezeigt (Verwaiste Dateien).


# 4. Day-2 Operations: Wer ist drin?

Zugehörigkeiten prüfen.

# User einer Gruppe hinzufügen

(Eigentlich ein usermod Befehl, aber essentiell für dieses Thema):

sudo usermod -aG it-admins johndoe

# Mitglieder einer Gruppe auflisten

grep "^it-admins" /etc/group | cut -d: -f4
# oder moderner
getent group it-admins

# 5. Troubleshooting & “War Stories”

Wenn die GID kollidiert.

# Story 1: “Der Schatten der alten GID”

Symptom: Ein neuer User wird angelegt und bekommt sofort Zugriff auf sensible Daten einer gelöschten Gruppe. Ursache: Die GID einer gelöschten Gruppe wurde vom System für eine neue Gruppe wiederverwendet. Im Dateisystem existierten aber noch Dateien der alten Gruppe. Lösung: Suchen Sie vor dem Löschen einer Gruppe nach allen Dateien, die ihr gehören: find / -gid <GID>. Ändern Sie den Besitzer, bevor Sie die Gruppe entfernen.

# Story 2: “Die primäre Gruppen-Falle”

Symptom: Dateien, die ein User erstellt, gehören immer seiner privaten Gruppe (z.B. johndoe), anstatt der Projektgruppe devs. Ursache: Der User hat devs nur als Zusatzgruppe. Die Primary Group ist falsch gesetzt. Lösung: Ändern Sie die primäre Gruppe für den Arbeits-Kontext: usermod -g devs johndoe. Oder nutzen Sie das SGID-Bit auf dem Verzeichnis (siehe Artikel 283), damit Dateien automatisch die Gruppe des Ordners erben.


# 6. Fazit & Empfehlung

  • Zentralisierung: Nutzen Sie ab 10 Servern LDAP oder Active Directory für das Gruppen-Management (Artikel 136). Lokale Gruppen in /etc/group sind dann nur noch für Systemdienste da.
  • GID-Ranges: Legen Sie für Ihre Firma feste GID-Bereiche fest (z.B. 2000-3000 für Projekte), um Kollisionen mit System-IDs (0-999) zu vermeiden.
  • Sauberkeit: Nutzen Sie groupdel konsequent beim Offboarding von Projekten.

# Anhang: Cheatsheet

Aufgabe Befehl
Gruppe erstellen groupadd <name>
GID manuell setzen groupadd -g <id> <name>
Systemgruppe erstellen groupadd -r <name>
Gruppe umbenennen groupmod -n <neu> <alt>
GID ändern groupmod -g <id> <name>
Gruppe löschen groupdel <name>
Gruppen eines Users groups <user>
Alle Gruppen sehen cat /etc/group
GID Info einer Datei ls -n <file>