Zum Hauptinhalt springen

Linux-Benutzerrechte und Gruppen verstehen

Linux ist von Haus aus ein Mehrbenutzersystem. Alles auf dem System — Dateien, Ordner, Prozesse — gehört einem Benutzer und einer Gruppe. Dieses Verständnis erklärt das Verhalten von chmod, chown und sudo.

Drei Berechtigungskategorien​

Jede Datei/Ordner definiert drei Eigentümerkategorien:

  • User (u): der Dateibesitzer
  • Group (g): die zugehörige Gruppe
  • Others (o): alle anderen

Für jede Kategorie sind drei Rechte möglich:

  • r (read): Datei lesen oder Verzeichnisinhalt auflisten
  • w (write): Datei ändern oder Dateien im Verzeichnis erstellen/löschen
  • x (execute): Datei ausführen (Script/Programm) oder Verzeichnis zugreifen (z. B. cd)
Wichtiges Detail

Das "x" auf einem Ordner bedeutet nicht "ausführen", sondern erlaubt den Zugriff (z. B. per cd). Ohne dieses Recht ist das Verzeichnis trotz Leserechten nicht zugänglich.

Ausgabe von ls -l lesen​

Beispielausgabe:

-rwxr-xr-- 1 john devs 4096 Jul 2 10:32 script.sh

Aufgeschlüsselt:

  • -: Dateityp (- Datei, d Verzeichnis, l Link)
  • rwx: Rechte des Besitzers (john kann lesen, schreiben, ausführen)
  • r-x: Gruppenrechte (devs kann lesen und ausführen)
  • r--: Rechte anderer (nur lesen)
  • john: Besitzer
  • devs: Gruppe

Numerische Notation (chmod 755, 644...)​

Jedes Recht hat einen Wert:

  • Lesen (r) = 4
  • Schreiben (w) = 2
  • Ausführen (x) = 1

Addiert ergeben sie die numerische Notation. rwx = 4+2+1 = 7, r-x = 4+1 = 5, r-- = 4.

chmod 755 bedeutet also: Besitzer = 7 (rwx), Gruppe = 5 (r-x), Andere = 5 (r-x). chmod 644 bedeutet: Besitzer = 6 (rw-), Gruppe = 4 (r--), Andere = 4 (r--).

chmod und chown in der Praxis​

chmod ändert Rechte, chown ändert Besitzer oder Gruppe.

Beispiel: Nach einem SFTP-Upload fehlen einer Webanwendung die richtigen Rechte:

# Rechte setzen
sudo chmod -R 755 /var/www/mysite

# Besitzer auf Webserver-User setzen (z. B. www-data)
sudo chown -R www-data:www-data /var/www/mysite

Die Option -R wirkt rekursiv auf alle Unterverzeichnisse.

Wozu Gruppen gut sind​

Eine Gruppe erlaubt mehreren Benutzern gemeinsame Rechte, ohne einzelne Berechtigungen für jeden zu setzen.

Gruppen eines Benutzers prüfen:

groups john
# oder
id john

Einen Benutzer zu einer Gruppe hinzufügen:

sudo usermod -aG devs john

Eine Gruppe anlegen:

sudo groupadd devs

Praxisfall: Mehrere Benutzer auf einem Ordner​

Statt chmod 777 (nicht empfohlen) verwenden Sie eine gemeinsame Gruppe:

# Gruppe erstellen
sudo groupadd webdevs

# Benutzer hinzufügen
sudo usermod -aG webdevs alice
sudo usermod -aG webdevs bob

# Gruppe und Rechte auf Ordner anwenden
sudo chown -R :webdevs /var/www/mysite
sudo chmod -R 775 /var/www/mysite

Alice und Bob können nun schreiben, andere nur lesen.

Der Root-Fall​

Root umgeht alle Berechtigungen. Deshalb sollten Sie nicht dauerhaft als Root arbeiten — ein Fehler kann das ganze System beeinträchtigen. Siehe dazu unseren Artikel Nicht-Root-Benutzer anlegen.


Zusammenfassung​

Dieses Berechtigungssystem ist Grundlage vieler Serveraufgaben: Benutzer anlegen, SFTP, Sicherheit. Zur Vertiefung sehen Sie Create a Non-Root User und unsere SFTP-Anleitung.

Fragen?

Unser Team ist im Discord erreichbar.