Tutorial: Benutzergruppen unter Linux verwalten
Da das Thema „Group“ (Gruppe) am häufigsten im Kontext von Linux-Systemadministration oder Berechtigungsmanagement vorkommt, habe ich dieses Tutorial darauf ausgerichtet.
Dieses Tutorial erklärt dir, was Gruppen sind, warum man sie braucht und wie du sie unter Linux (Ubuntu, Debian, CentOS etc.) verwaltest.
1. Was ist eine Gruppe?
In Linux ist eine Gruppe eine Sammlung von Benutzern. Der Hauptzweck von Gruppen besteht darin, Berechtigungen effizient zu verwalten. Statt jedem Benutzer einzeln Zugriff auf eine Datei zu geben, gibt man der Gruppe Zugriff, und alle Mitglieder erben diese Rechte.
Es gibt zwei Arten von Gruppen für einen Benutzer:
- Primäre Gruppe: Wird beim Erstellen des Benutzers angelegt (meist gleicher Name wie der User). Jede Datei, die der User erstellt, gehört automatisch dieser Gruppe.
- Sekundäre Gruppen: Gruppen, denen der Benutzer zusätzlich hinzugefügt wird (z. B.
sudo,docker,www-data).
2. Bestehende Gruppen anzeigen
Bevor du etwas änderst, solltest du wissen, wer wo Mitglied ist.
- Eigene Gruppen anzeigen:
groups - Gruppen eines bestimmten Benutzers anzeigen:
groups benutzername - Detaillierte ID-Infos (UID und GID):
id benutzername
3. Gruppen erstellen und löschen
Um Gruppen zu verwalten, benötigst du Administratorrechte (sudo).
- Eine neue Gruppe erstellen:
sudo groupadd projekt-team - Eine Gruppe löschen:
sudo groupdel projekt-team
4. Benutzer zu Gruppen hinzufügen
Dies ist die häufigste Aufgabe.
-
Einen Benutzer einer sekundären Gruppe hinzufügen: Wichtig: Nutze immer
-a(append), sonst entfernst du den User aus allen anderen Gruppen!sudo usermod -aG projekt-team benutzername(Hinweis: Damit die Änderungen wirksam werden, muss sich der Benutzer einmal aus- und wieder einloggen.)
-
Einen Benutzer aus einer Gruppe entfernen:
sudo gpasswd -d benutzername projekt-team
5. Dateien und Ordner für Gruppen freigeben
Hier zeigt sich die Macht der Gruppen. Nehmen wir an, du hast einen Ordner /daten/projekt.
- Besitz der Gruppe zuweisen:
sudo chgrp projekt-team /daten/projekt - Schreibrechte für die Gruppe setzen:
sudo chmod 775 /daten/projekt(775 bedeutet: Besitzer darf alles, Gruppe darf lesen/schreiben, andere dürfen nur lesen.)
6. Die Datei /etc/group
Alle Gruppeninformationen werden in einer Textdatei gespeichert. Du kannst sie dir ansehen (aber vorsichtig beim Bearbeiten sein!):
cat /etc/group
Jede Zeile folgt diesem Format:
gruppenname:x:GID:benutzer1,benutzer2
x: Platzhalter für Gruppenpasswort (wird selten genutzt).GID: Group ID (eine eindeutige Nummer).
7. Praxis-Beispiel: Gemeinsames Arbeiten
Szenario: Die User "anna" und "bernd" sollen gemeinsam im Ordner /share arbeiten können.
- Gruppe erstellen:
sudo groupadd share-group - User hinzufügen:
sudo usermod -aG share-group annasudo usermod -aG share-group bernd
- Ordnerberechtigung anpassen:
sudo chgrp -R share-group /sharesudo chmod -R 770 /share(Nur Besitzer und Gruppe haben Zugriff)
Zusammenfassung der wichtigsten Befehle
| Befehl | Beschreibung |
|---|---|
groups |
Zeigt Gruppen des aktuellen Users. |
groupadd [name] |
Erstellt eine neue Gruppe. |
groupdel [name] |
Löscht eine Gruppe. |
usermod -aG [grp] [user] |
Fügt User einer Gruppe hinzu (Wichtig: -a!). |
gpasswd -d [user] [grp] |
Entfernt User aus einer Gruppe. |
chgrp [grp] [datei] |
Ändert die Gruppenzugehörigkeit einer Datei. |
Pro-Tipp: Wenn du eine Gruppe neu zugewiesen hast und nicht ausloggen möchtest, kannst du den Befehl newgrp gruppenname nutzen, um die Gruppe in der aktuellen Terminal-Sitzung sofort zu aktivieren.