Skip to main content

4.1 Benutzer, Gruppen und Rechte

Linux ist ein Mehrbenutzersystem.

Das bedeutet:

Mehrere Benutzer können auf demselben System arbeiten,
ohne automatisch Zugriff auf alle Dateien,
Prozesse
oder Systemfunktionen zu haben.

Dafür nutzt Linux:

- Benutzer
- Gruppen
- Besitzer
- Dateirechte
- sudo
- Root-Rechte
- optional ACLs

Für Fachinformatiker Systemintegration ist dieses Thema besonders wichtig, weil Rechteprobleme, Sicherheitskonzepte, Dienstkonten, SSH-Zugriffe und Datei-Freigaben sehr häufig mit Benutzer- und Gruppenrechten zusammenhängen.

Merksatz:

Linux-Sicherheit beginnt bei Benutzern,
Gruppen
und Rechten.

Lernziele

Nach dieser Seite solltest du erklären können:

- was Benutzer unter Linux sind
- was Gruppen sind
- was UID und GID bedeuten
- wie Linux Dateirechte aufteilt
- was Besitzer,
  Gruppe
  und Andere bedeuten
- was r,
  w
  und x bedeuten
- wie chmod,
  chown
  und chgrp grundsätzlich funktionieren
- was sudo macht
- warum Root-Rechte gefährlich sein können
- welche typischen Rechtefehler auftreten

Grundidee

Jede Datei und jedes Verzeichnis unter Linux hat Berechtigungen.

Diese Berechtigungen regeln:

- wer lesen darf
- wer schreiben darf
- wer ausführen darf
- wem die Datei gehört
- welcher Gruppe die Datei zugeordnet ist

Linux unterscheidet dabei klassisch drei Bereiche:

Bereich Bedeutung
Benutzer / Besitzer Eigentümer der Datei
Gruppe zugeordnete Benutzergruppe
Andere alle übrigen Benutzer

Merksatz:

Linux-Rechte gelten für Besitzer,
Gruppe
und Andere.

Benutzer

Ein Benutzer ist ein Konto auf dem Linux-System.

Benutzer können:

- sich anmelden
- Dateien besitzen
- Prozesse starten
- Gruppen zugeordnet sein
- Rechte erhalten
- Dienste ausführen

Beispiele:

felix

root

www-data

postgres

backup

Wichtig:

Nicht jeder Benutzer ist ein Mensch.
Viele Dienste laufen unter eigenen Systembenutzern.

Merksatz:

Benutzer können Menschen oder Dienstkonten sein.

Root

root ist der administrative Hauptbenutzer unter Linux.

root darf fast alles:

- Systemdateien ändern
- Benutzer anlegen
- Rechte ändern
- Dienste starten und stoppen
- Software installieren
- Dateien anderer Benutzer lesen oder löschen
- Systemkonfiguration ändern

Das ist mächtig, aber auch gefährlich.

Ein falscher Befehl mit Root-Rechten kann das System beschädigen.

Merksatz:

Root-Rechte nur bewusst verwenden.

Normale Benutzer

Normale Benutzer haben eingeschränkte Rechte.

Sie dürfen typischerweise:

- im eigenen Home-Verzeichnis arbeiten
- eigene Dateien bearbeiten
- eigene Prozesse starten
- Programme ausführen

Sie dürfen normalerweise nicht:

- Systemdateien ändern
- Dienste systemweit verwalten
- fremde Dateien beliebig lesen
- Pakete installieren
- Benutzer anlegen

Vorteil:

Fehler oder Angriffe wirken sich weniger stark auf das gesamte System aus.

Merksatz:

Normale Benutzer begrenzen Risiken.

Systembenutzer und Dienstkonten

Viele Dienste laufen unter eigenen Benutzern.

Beispiele:

Benutzer Typischer Zweck
www-data Webserver-Prozesse
nginx Webserver-Prozesse
postgres PostgreSQL-Datenbank
mysql MySQL/MariaDB-Datenbank
backup Backup-Aufgaben
nobody stark eingeschränkter Benutzer

Warum?

Dienste sollen nicht mit Root-Rechten laufen,
wenn das nicht notwendig ist.

Vorteil:

Wenn ein Dienst kompromittiert wird,
ist der Schaden begrenzter.

Merksatz:

Dienste sollten nur die Rechte haben,
die sie benötigen.

UID und GID

Linux identifiziert Benutzer und Gruppen intern über Zahlen.

UID bedeutet:

User ID

GID bedeutet:

Group ID

Beispiele:

Begriff Bedeutung
UID eindeutige Benutzerkennung
GID eindeutige Gruppenkennung
UID 0 root-Benutzer
normale UID normaler Benutzer oder Systembenutzer

Wichtig:

Der Benutzername ist für Menschen lesbar.
Intern arbeitet Linux stark mit UID und GID.

Merksatz:

UID identifiziert Benutzer.
GID identifiziert Gruppen.

Benutzerinformationen anzeigen

Aktuellen Benutzer anzeigen:

whoami

Benutzer-ID und Gruppen anzeigen:

id

Beispiel:

id felix

Mögliche Ausgabe:

uid=1000(felix) gid=1000(felix) groups=1000(felix),27(sudo)

Bedeutung:

Benutzer felix hat UID 1000,
Hauptgruppe felix
und ist zusätzlich in der Gruppe sudo.

Merksatz:

id zeigt Benutzer,
UID,
GID
und Gruppen.

Gruppen

Gruppen fassen Benutzer zusammen.

Damit können Rechte einfacher vergeben werden.

Beispiel:

Alle Benutzer der Gruppe developers
dürfen auf ein Projektverzeichnis zugreifen.

Vorteile:

Rechte müssen nicht einzeln pro Benutzer vergeben werden

Verwaltung wird übersichtlicher

Zugriff kann über Gruppenmitgliedschaft gesteuert werden

Rollen lassen sich besser abbilden

Merksatz:

Gruppen vereinfachen Rechteverwaltung.

Hauptgruppe und Zusatzgruppen

Ein Benutzer hat eine Hauptgruppe und kann zusätzlich Mitglied weiterer Gruppen sein.

Beispiel:

Benutzer:
felix

Hauptgruppe:
felix

Zusatzgruppen:
sudo,
docker,
www-data

Die Hauptgruppe wird oft für neu erstellte Dateien verwendet.

Zusatzgruppen geben weitere Rechte.

Merksatz:

Hauptgruppe ist Standardgruppe.
Zusatzgruppen geben zusätzliche Rechte.

Wichtige Dateien für Benutzer und Gruppen

Linux speichert Benutzer- und Gruppeninformationen in bestimmten Dateien.

Datei Bedeutung
/etc/passwd Benutzerkonten
/etc/group Gruppen
/etc/shadow Passwort-Hashes und Passwortinformationen
/etc/sudoers sudo-Regeln
/etc/sudoers.d/ zusätzliche sudo-Regeln

Wichtig:

/etc/shadow ist besonders geschützt,
weil dort Passwort-Hashes liegen.

Merksatz:

Benutzer stehen in /etc/passwd,
Gruppen in /etc/group.

/etc/passwd

Die Datei /etc/passwd enthält Benutzerinformationen.

Beispielzeile:

felix:x:1000:1000:Felix Ulrich:/home/felix:/bin/bash

Bedeutung:

Feld Bedeutung
felix Benutzername
x Passwort liegt nicht direkt hier
1000 UID
1000 GID
Felix Ulrich Kommentar oder Beschreibung
/home/felix Home-Verzeichnis
/bin/bash Login-Shell

Merksatz:

/etc/passwd enthält Benutzerstammdaten.

/etc/group

Die Datei /etc/group enthält Gruppeninformationen.

Beispielzeile:

sudo:x:27:felix

Bedeutung:

Feld Bedeutung
sudo Gruppenname
x Passwortfeld, meist ungenutzt
27 GID
felix Mitglieder der Gruppe

Merksatz:

/etc/group zeigt Gruppen und Mitglieder.

Dateirechte anzeigen

Dateirechte zeigt man mit:

ls -l

Beispiel:

-rw-r--r-- 1 felix users 1200 Jul 08 12:30 notiz.txt

Wichtiger Teil:

-rw-r--r--

Aufteilung:

-    rw-    r--    r--
Typ  User   Gruppe Andere

Merksatz:

ls -l zeigt Dateityp,
Rechte,
Besitzer
und Gruppe.

Rechtebereiche

Linux-Rechte sind klassisch in drei Bereiche aufgeteilt:

Bereich Bedeutung
User / Owner Besitzer der Datei
Group zugeordnete Gruppe
Others alle anderen Benutzer

Beispiel:

-rw-r--r--

Bedeutung:

Bereich Rechte
Besitzer rw-
Gruppe r--
Andere r--

Merksatz:

Rechte werden in Dreiergruppen gelesen.

r, w und x

Die Buchstaben bedeuten:

Zeichen Name Bei Dateien Bei Verzeichnissen
r read Datei lesen Inhalt auflisten
w write Datei ändern Einträge erstellen/löschen/umbenennen
x execute Datei ausführen Verzeichnis betreten

Wichtig:

x hat bei Dateien und Verzeichnissen unterschiedliche praktische Bedeutung.

Merksatz:

r = lesen.
w = schreiben.
x = ausführen oder betreten.

Rechte bei Dateien

Bei Dateien bedeutet:

Recht Bedeutung
r Inhalt lesen
w Inhalt ändern
x Datei ausführen

Beispiel:

-rwxr-xr--

Bedeutung:

Besitzer darf lesen,
schreiben
und ausführen.

Gruppe darf lesen
und ausführen.

Andere dürfen nur lesen.

Merksatz:

x macht eine Datei ausführbar.

Rechte bei Verzeichnissen

Bei Verzeichnissen bedeutet:

Recht Bedeutung
r Inhalt des Verzeichnisses anzeigen
w Dateien im Verzeichnis erstellen, löschen oder umbenennen
x Verzeichnis betreten und Pfade darin nutzen

Wichtig:

Ohne x kann man ein Verzeichnis nicht sinnvoll betreten,
auch wenn r gesetzt ist.

Beispiel:

drwxr-x---

Bedeutung:

Besitzer darf alles.

Gruppe darf betreten und auflisten.

Andere haben keinen Zugriff.

Merksatz:

Bei Verzeichnissen ist x besonders wichtig.

Numerische Rechte

Rechte können auch als Zahlen dargestellt werden.

Recht Wert
r 4
w 2
x 1

Kombinationen:

Rechte Zahl
--- 0
--x 1
-w- 2
-wx 3
r-- 4
r-x 5
rw- 6
rwx 7

Beispiele:

Zahl Bedeutung
644 Besitzer rw-, Gruppe r--, Andere r--
600 Besitzer rw-, Gruppe ---, Andere ---
755 Besitzer rwx, Gruppe r-x, Andere r-x
700 Besitzer rwx, Gruppe ---, Andere ---

Merksatz:

r=4,
w=2,
x=1.

chmod

Mit chmod ändert man Dateirechte.

Beispiele:

chmod 644 datei.txt

chmod 600 geheim.txt

chmod 755 script.sh

chmod +x script.sh

Bedeutung:

Befehl Bedeutung
chmod 644 datei.txt typische Rechte für normale Textdatei
chmod 600 geheim.txt nur Besitzer darf lesen und schreiben
chmod 755 script.sh Besitzer darf alles, andere lesen/ausführen
chmod +x script.sh Ausführrecht hinzufügen

Merksatz:

chmod ändert Rechte.

chown

Mit chown ändert man den Besitzer einer Datei.

Beispiel:

chown felix datei.txt

Besitzer und Gruppe ändern:

chown felix:users datei.txt

Rekursiv für Verzeichnisse:

chown -R felix:users projektordner

Wichtig:

chown benötigt häufig administrative Rechte.

Merksatz:

chown ändert Besitzer und optional Gruppe.

chgrp

Mit chgrp ändert man die Gruppe einer Datei.

Beispiel:

chgrp developers projekt.txt

Rekursiv:

chgrp -R developers projektordner

Merksatz:

chgrp ändert die Gruppenzuordnung.

sudo

sudo erlaubt berechtigten Benutzern, einzelne Befehle mit erhöhten Rechten auszuführen.

Beispiel:

sudo systemctl restart ssh

Vorteile:

keine dauerhafte Root-Sitzung nötig

bessere Nachvollziehbarkeit

gezielte administrative Rechte

geringeres Risiko als dauerhaft als root zu arbeiten

Wichtig:

sudo sollte nur berechtigten Benutzern gegeben werden.

Merksatz:

sudo gibt gezielt erhöhte Rechte für einzelne Befehle.

su

su steht für:

substitute user

Mit su kann man zu einem anderen Benutzer wechseln.

Beispiel:

su -

Häufig wird damit zu root gewechselt, wenn das Root-Konto aktiviert ist.

Unterschied zu sudo:

Befehl Bedeutung
sudo befehl einzelnen Befehl mit erhöhten Rechten ausführen
su Benutzer wechseln
su - Login-Shell des Zielbenutzers starten

Merksatz:

sudo führt Befehl aus.
su wechselt Benutzer.

Dateien ausführbar machen

Ein Skript muss ausführbar sein, wenn man es direkt starten möchte.

Beispiel:

chmod +x backup.sh

Starten:

./backup.sh

Wichtig:

./ bedeutet:
Datei im aktuellen Verzeichnis ausführen.

Ohne Ausführrecht kommt häufig:

Permission denied

Merksatz:

Skript direkt starten braucht x-Recht.

Typische Rechte für Dateien

Zweck Rechte Bedeutung
normale Textdatei 644 Besitzer schreibt, andere lesen
private Datei 600 nur Besitzer liest und schreibt
Skript oder Programm 755 Besitzer schreibt, alle dürfen ausführen
geheimes Skript 700 nur Besitzer darf alles
öffentlich lesbares Verzeichnis 755 andere können betreten und lesen
privates Verzeichnis 700 nur Besitzer Zugriff

Merksatz:

644 für normale Dateien.
755 für ausführbare Programme oder Verzeichnisse.
600 für private Dateien.

Rechte und Sicherheit

Zu breite Rechte sind ein Sicherheitsrisiko.

Beispiel kritisch:

chmod 777 datei

777 bedeutet:

Besitzer darf alles.

Gruppe darf alles.

Andere dürfen alles.

Risiko:

Jeder Benutzer kann lesen,
schreiben
und ausführen.

Besser:

Rechte gezielt setzen.

Merksatz:

777 ist selten eine saubere Lösung.

Permission denied

Die Meldung:

Permission denied

bedeutet:

Zugriff verweigert.

Mögliche Ursachen:

Datei nicht lesbar

Datei nicht beschreibbar

Datei nicht ausführbar

Verzeichnis nicht betretbar

falscher Besitzer

falsche Gruppe

sudo nötig

Prüfen:

ls -l datei

ls -ld verzeichnis

id

Merksatz:

Permission denied zuerst mit ls -l und id prüfen.

Rechteproblem bei Verzeichnissen

Ein Benutzer hat Leserecht auf eine Datei, kann sie aber trotzdem nicht öffnen.

Mögliche Ursache:

fehlendes x-Recht auf einem übergeordneten Verzeichnis.

Beispiel:

/srv/projekt/datei.txt

Damit der Benutzer die Datei erreichen kann, braucht er passende Rechte auf:

/srv

/srv/projekt

/srv/projekt/datei.txt

Merksatz:

Für Zugriff auf Dateien müssen auch Verzeichnisrechte passen.

Gruppenbasierter Zugriff

Beispiel:

Mehrere Benutzer sollen auf /srv/projekt zugreifen.

Sinnvolles Vorgehen:

Gruppe projekt anlegen

Benutzer zur Gruppe hinzufügen

Verzeichnis der Gruppe projekt zuordnen

Gruppenrechte passend setzen

Beispielhafte Befehle:

chgrp -R projekt /srv/projekt

chmod -R 770 /srv/projekt

Bedeutung:

Besitzer und Gruppe dürfen alles.
Andere haben keinen Zugriff.

Merksatz:

Gemeinsamer Zugriff wird sauber über Gruppen geregelt.

Benutzer anlegen

Typische Befehle je nach Distribution:

useradd

adduser

Beispiel:

adduser felix

oder:

useradd -m felix

Bedeutung:

-m erstellt ein Home-Verzeichnis.

Wichtig:

Die genaue Bedienung kann je nach Distribution unterschiedlich sein.

Merksatz:

Benutzerverwaltung kann je nach Distribution leicht unterschiedlich sein.

Passwort setzen

Passwort für Benutzer setzen:

passwd felix

Eigenes Passwort ändern:

passwd

Wichtig:

Starke Passwörter verwenden.

Für administrative Zugänge zusätzlich MFA oder Schlüsselverfahren nutzen,
wenn möglich.

Merksatz:

passwd setzt oder ändert Passwörter.

Benutzer zu Gruppe hinzufügen

Beispiel:

usermod -aG gruppe benutzer

Wichtig:

-aG bedeutet:
zur Zusatzgruppe hinzufügen,
ohne bestehende Gruppen zu entfernen.

Beispiel:

usermod -aG sudo felix

Nach Gruppenänderungen ist oft eine neue Anmeldung erforderlich.

Merksatz:

usermod -aG fügt Benutzer zu Zusatzgruppe hinzu.

Benutzer löschen

Benutzer löschen:

userdel benutzer

Benutzer inklusive Home-Verzeichnis löschen:

userdel -r benutzer

Wichtig:

Vor dem Löschen prüfen:

Gibt es noch Dateien des Benutzers?

Gibt es laufende Prozesse?

Gibt es Dienste oder Cronjobs?

Müssen Daten archiviert werden?

Merksatz:

Benutzer nicht löschen,
ohne Daten und Dienste zu prüfen.

ACLs

ACL steht für:

Access Control List

ACLs erlauben feinere Rechte als klassische Linux-Rechte.

Beispiel:

Eine bestimmte Benutzerin soll Zugriff erhalten,
ohne Besitzer oder Gruppe zu ändern.

Typische Befehle:

getfacl datei

setfacl -m u:benutzer:r datei

Wichtig:

ACLs sind nützlich,
können Rechteverwaltung aber komplexer machen.

Merksatz:

ACLs erweitern klassische Linux-Rechte.

SetUID, SetGID und Sticky Bit

Neben normalen Rechten gibt es Sonderrechte.

Sonderrecht Bedeutung
SetUID Programm läuft mit Rechten des Dateibesitzers
SetGID Programm oder Verzeichnis nutzt Gruppenlogik besonders
Sticky Bit in Verzeichnissen dürfen Benutzer nur eigene Dateien löschen

Typisches Beispiel für Sticky Bit:

/tmp

Rechte häufig:

drwxrwxrwt

Das t am Ende zeigt das Sticky Bit.

Merksatz:

Sticky Bit schützt gemeinsame Verzeichnisse wie /tmp.

Typische Fehlerbilder

Fehlerbild Wahrscheinliche Ursache
Permission denied beim Lesen fehlendes Leserecht
Permission denied beim Schreiben fehlendes Schreibrecht
Skript startet nicht fehlendes Ausführrecht
Datei trotz Rechten nicht erreichbar Verzeichnisrecht fehlt
Benutzer sieht Datei nicht fehlendes r auf Verzeichnis
Benutzer kann Datei nicht löschen fehlendes w auf Verzeichnis
sudo nicht erlaubt Benutzer nicht in sudoers
Gruppenrecht wirkt nicht Benutzer neu anmelden oder falsche Gruppe
Dienst kann Datei nicht lesen Dienstbenutzer hat keine Rechte
777 wurde gesetzt unsichere Notlösung

Sichere Arbeitsweise bei Rechteproblemen

Nicht sofort:

chmod 777

Besser prüfen:

whoami

id

ls -l datei

ls -ld verzeichnis

groups benutzer

getfacl datei

Dann gezielt entscheiden:

Besitzer ändern?

Gruppe ändern?

Rechte ändern?

Benutzer in Gruppe aufnehmen?

sudo nötig?

Merksatz:

Rechteprobleme gezielt lösen,
nicht pauschal mit 777.

Typische Prüfungsfragen

Frage Kurzantwort
Was ist root? administrativer Hauptbenutzer
Was bedeutet UID? User ID
Was bedeutet GID? Group ID
Was macht chmod? ändert Rechte
Was macht chown? ändert Besitzer
Was macht chgrp? ändert Gruppe
Was macht sudo? führt Befehl mit erhöhten Rechten aus
Was bedeutet r? lesen
Was bedeutet w? schreiben
Was bedeutet x bei Dateien? ausführen
Was bedeutet x bei Verzeichnissen? betreten
Was bedeutet 755? rwx r-x r-x
Was bedeutet 644? rw- r-- r--
Was bedeutet 600? nur Besitzer lesen/schreiben
Warum ist 777 kritisch? jeder darf alles

Typische Prüfungsfallen

Falle Richtig denken
x bei Verzeichnissen vergessen x bedeutet Verzeichnis betreten
chmod 777 als Lösung unsicher und meist falsch
nur Dateirechte prüfen auch Verzeichnisrechte prüfen
sudo immer verwenden erst Ursache prüfen
Besitzer und Gruppe verwechseln beides getrennt betrachten
Gruppenänderung wirkt sofort erwarten neue Anmeldung kann nötig sein
Dienst läuft als root Sicherheitsrisiko, wenn nicht nötig
/etc/shadow frei lesbar erwarten besonders geschützt
ACLs übersehen zusätzliche Rechte können existieren
Root und normales Konto gleich behandeln Root hat besondere Rechte

IHK-sichere Kurzformulierung

Linux ist ein Mehrbenutzersystem und steuert Zugriffe über Benutzer, Gruppen und Rechte. Jede Datei und jedes Verzeichnis hat einen Besitzer, eine zugeordnete Gruppe und Rechte für Besitzer, Gruppe und Andere. Die klassischen Rechte sind r für Lesen, w für Schreiben und x für Ausführen beziehungsweise bei Verzeichnissen für Betreten. Mit chmod werden Rechte geändert, mit chown der Besitzer und mit chgrp die Gruppe. sudo erlaubt berechtigten Benutzern, einzelne Befehle mit erhöhten Rechten auszuführen. Rechteprobleme sollten mit whoami, id, ls -l und ls -ld geprüft werden. Pauschale Rechte wie 777 sind unsicher und sollten vermieden werden.


Merksätze

Linux ist ein Mehrbenutzersystem.

Benutzer können Menschen oder Dienste sein.

Root ist der administrative Hauptbenutzer.

UID identifiziert Benutzer.

GID identifiziert Gruppen.

Gruppen vereinfachen Rechteverwaltung.

Jede Datei hat Besitzer,
Gruppe
und Rechte.

Rechte gelten für Besitzer,
Gruppe
und Andere.

r bedeutet lesen.

w bedeutet schreiben.

x bedeutet bei Dateien ausführen.

x bedeutet bei Verzeichnissen betreten.

chmod ändert Rechte.

chown ändert Besitzer.

chgrp ändert Gruppe.

sudo gibt gezielt erhöhte Rechte.

su wechselt Benutzer.

644 ist typisch für normale Dateien.

600 ist typisch für private Dateien.

755 ist typisch für Programme oder Verzeichnisse.

700 ist typisch für private Verzeichnisse oder Skripte.

777 ist selten eine gute Lösung.

Permission denied bedeutet Rechteproblem.

Bei Dateien auch Verzeichnisrechte prüfen.

Dienstkonten sollten nur notwendige Rechte haben.

Gruppenänderungen können neue Anmeldung erfordern.

ACLs erweitern klassische Rechte.

Sticky Bit schützt gemeinsame Verzeichnisse wie /tmp.