Permission denied – diese Meldung kennt jeder, der mit Linux arbeitet. Dahinter steckt das Rechtesystem, das genau regelt, wer Dateien lesen, ändern und ausführen darf. In dieser Anleitung lernst du, die Dateirechte unter Linux zu verstehen und mit chmod und chown zu steuern.
„Permission denied“ ist die Fehlermeldung, an der jeder Linux-Einsteiger irgendwann hängen bleibt. Dahinter steckt das Rechtesystem, das für jede Datei und jedes Verzeichnis genau festlegt, wer lesen, schreiben und ausführen darf. Wer die Dateirechte unter Linux versteht, löst nicht nur solche Fehler im Handumdrehen, sondern verschließt auch Sicherheitslücken, die durch zu großzügige Berechtigungen entstehen. In dieser Anleitung lernst du das System aus Rechten und Besitzern gründlich kennen, steuerst es mit chmod und chown und verstehst dazu die oft übersehenen Sonderrechte wie SUID, SGID und das Sticky Bit.
- Die drei Rechte und drei Gruppen
- Rechte als Zahlen: das Oktalsystem
- Rechte ändern mit chmod
- Besitzer ändern mit chown
- Der Sonderfall Verzeichnis
- Die symbolische Schreibweise von chmod
- Sonderrechte: SUID, SGID und Sticky Bit
- Sichere Standardrechte im Überblick
- Häufige Fragen
- Was bedeutet chmod 777 und ist es sicher?
- Symbolisch oder oktal – was soll ich nutzen?
- Wie ändere ich Rechte oder Besitzer rekursiv?
- Fazit
Die drei Rechte und drei Gruppen
Jede Datei hat drei Arten von Rechten – Lesen (r), Schreiben (w) und Ausführen (x) – jeweils für drei Gruppen: den Besitzer, die Gruppe und alle anderen. Zusammen ergibt das die typische Darstellung aus ls -l:
ls -l
# -rwxr-xr-- 1 tobias team 4096 datei.shDas rwxr-xr-- bedeutet: Besitzer darf alles (rwx), die Gruppe lesen und ausführen (r-x), alle anderen nur lesen (r–).
Rechte als Zahlen: das Oktalsystem
Jedes Recht hat einen Zahlenwert, die man addiert: Lesen = 4, Schreiben = 2, Ausführen = 1. Pro Gruppe ergibt sich so eine Ziffer:
| Zahl | Rechte | Bedeutung |
|---|---|---|
7 | rwx | Lesen, Schreiben, Ausführen |
6 | rw- | Lesen, Schreiben |
5 | r-x | Lesen, Ausführen |
4 | r– | Nur Lesen |
Die zwei häufigsten Kombinationen: 755 für Skripte und Ordner (Besitzer alles, Rest lesen/ausführen) und 644 für normale Dateien (Besitzer lesen/schreiben, Rest nur lesen).
Rechte ändern mit chmod
Mit chmod und der Oktalzahl setzt du die Rechte direkt:
chmod 755 skript.sh
chmod 644 config.txtAlternativ geht es symbolisch – etwa „dem Besitzer Ausführungsrecht geben“:
chmod u+x skript.shGenau dieses Ausführungsrecht brauchst du, wenn du ein Bash-Skript startbar machst.
Besitzer ändern mit chown
Wem eine Datei gehört, änderst du mit chown – im Format Besitzer:Gruppe. Mit -R wirkt es rekursiv auf ganze Verzeichnisse:
sudo chown tobias:team datei.txt
sudo chown -R www-data:www-data /var/wwwDer Sonderfall Verzeichnis
Bei Ordnern hat das Ausführungsrecht (x) eine andere Bedeutung: Es erlaubt, in das Verzeichnis zu wechseln. Ein Ordner ohne x-Recht lässt sich also nicht betreten, selbst wenn du seinen Inhalt lesen darfst. Wie du sensible Ordner zusätzlich schützt, zeigt Ordner & Dateien schützen.
Die symbolische Schreibweise von chmod
Neben den Oktalzahlen versteht chmod eine symbolische Notation, die besonders für kleine Änderungen praktisch ist. Statt den kompletten Rechte-Satz neu zu vergeben, veränderst du gezielt einzelne Bits. Das Muster lautet: Ziel, Operator, Recht – etwa chmod u+x skript.sh, um dem Besitzer das Ausführen zu erlauben.
- u, g, o, a: Besitzer (user), Gruppe (group), andere (others) oder alle (all).
- + / – / =: Recht hinzufügen, entziehen oder exakt setzen.
- r, w, x: Lesen, Schreiben, Ausführen.
- Beispiel:
chmod go-w dateinimmt Gruppe und anderen das Schreibrecht.
Der Vorteil: Du musst nicht die bestehenden Rechte kennen, um eine gezielte Änderung vorzunehmen. Gerade beim Absichern reicht oft ein chmod o-rwx, um „allen anderen“ jeden Zugriff zu entziehen.
Sonderrechte: SUID, SGID und Sticky Bit
Über die klassischen rwx-Rechte hinaus gibt es drei Sonderbits, die in bestimmten Situationen entscheidend sind. Sie erscheinen in der Ausgabe von ls -l als s oder t anstelle des x. Man begegnet ihnen vor allem bei Systemprogrammen und gemeinsam genutzten Verzeichnissen.
| Sonderrecht | Wirkung | Typisches Beispiel |
|---|---|---|
| SUID | Programm läuft mit Rechten des Besitzers | /usr/bin/passwd |
| SGID | Programm/Ordner nutzt Rechte der Gruppe | gemeinsame Projektordner |
| Sticky Bit | nur Besitzer darf eigene Dateien löschen | /tmp |
SUID und SGID sind mächtig, aber auch ein Sicherheitsrisiko, wenn sie an den falschen Dateien hängen. Setze sie nur bewusst und prüfe verdächtige Dateien mit find / -perm -4000 nach ungewollten SUID-Programmen.
Sichere Standardrechte im Überblick
Im Alltag begegnen dir immer wieder dieselben Rechte-Kombinationen. Sie zu kennen spart Zeit und verhindert Fehler. Die folgende Übersicht zeigt gängige Werte und wofür sie sinnvoll sind – und warum du das berüchtigte 777 meiden solltest.
| Oktal | Bedeutung | Einsatz |
|---|---|---|
| 644 | Besitzer schreibt, Rest liest | normale Dateien |
| 755 | Besitzer alles, Rest liest/führt aus | Skripte, Verzeichnisse |
| 600 | nur Besitzer liest/schreibt | private Schlüssel, Konfigurationen |
| 700 | nur Besitzer, sonst nichts | private Verzeichnisse |
Wer eine Datei mit chmod 777 für alle vollständig öffnet, lädt praktisch jeden zum Ändern ein – auf einem Server ein echtes Risiko. Wer genau welche Datei besitzt, steuerst du ergänzend mit chown; die Grundlagen dazu findest du im Beitrag zur Benutzer- und Gruppenverwaltung. Als Merkregel gilt: Vergib immer nur so viele Rechte wie nötig und beginne im Zweifel restriktiv – Rechte lassen sich später gezielt erweitern, während zu offene Dateien oft unbemerkt zum Einfallstor werden.
Häufige Fragen
Beim Umgang mit Dateirechten tauchen einige Fragen besonders oft auf. Hier die wichtigsten Antworten.
Was bedeutet chmod 777 und ist es sicher?
777 gibt Besitzer, Gruppe und allen anderen volle Lese-, Schreib- und Ausführrechte. Auf einem Mehrbenutzer- oder Serversystem ist das unsicher, weil jeder die Datei verändern kann. In den allermeisten Fällen reicht 644 für Dateien oder 755 für Skripte und Verzeichnisse.
Symbolisch oder oktal – was soll ich nutzen?
Beides führt zum Ziel. Die oktale Schreibweise wie chmod 644 setzt alle Rechte auf einmal und ist ideal, wenn du den Zielzustand genau kennst. Die symbolische Form wie chmod u+x ist praktischer, wenn du nur ein einzelnes Recht ändern willst.
Wie ändere ich Rechte oder Besitzer rekursiv?
Mit der Option -R wirken chmod und chown auf ein Verzeichnis samt allem Inhalt, etwa chown -R www-data:www-data /var/www. Sei damit vorsichtig: Ein rekursives chmod 777 auf ein großes Verzeichnis richtet schnell Schaden an.
Fazit
Mit dem Wissen um r/w/x, die Oktalzahlen und die Befehle chmod und chown löst du „Permission denied“ gezielt statt mit Raten. Merke dir 755 für Skripte/Ordner und 644 für Dateien. Wer Rechte vergibt, sollte auch die Benutzer und Gruppen im Blick haben.

