Dateirechte unter Linux verstehen (chmod & chown)

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

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.sh

Das 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:

ZahlRechteBedeutung
7rwxLesen, Schreiben, Ausführen
6rw-Lesen, Schreiben
5r-xLesen, Ausführen
4r–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.txt

Alternativ geht es symbolisch – etwa „dem Besitzer Ausführungsrecht geben“:

chmod u+x skript.sh

Genau 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/www

Der 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 datei nimmt 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.

SonderrechtWirkungTypisches Beispiel
SUIDProgramm läuft mit Rechten des Besitzers/usr/bin/passwd
SGIDProgramm/Ordner nutzt Rechte der Gruppegemeinsame Projektordner
Sticky Bitnur 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.

OktalBedeutungEinsatz
644Besitzer schreibt, Rest liestnormale Dateien
755Besitzer alles, Rest liest/führt ausSkripte, Verzeichnisse
600nur Besitzer liest/schreibtprivate Schlüssel, Konfigurationen
700nur Besitzer, sonst nichtsprivate 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.

Siehe auch  Raspberry Pi SSH-Verbindung aufbauen: Eine Schritt-für-Schritt-Anleitung
Nach oben scrollen