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/groupsind 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
groupdelkonsequent 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> |