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)
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,dVerzeichnis,lLink)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: Besitzerdevs: 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.
Unser Team ist im Discord erreichbar.