VMware ESXi and vSphere Cluster Management

Linux-Berechtigungsbits: Lesen, Schreiben und Ausführen verstehen

Linux-Dateirechte mit ls -l lesen: Eigentümer, Gruppe, andere sowie r, w und x bei Dateien und Verzeichnissen verständlich erklärt.

Linux-Dateiberechtigungen legen fest, wer eine Datei oder ein Verzeichnis lesen, verändern oder verwenden darf. In der langen Ausgabe von ls -l erscheinen diese Rechte als Zeichenfolge aus einem Dateitypzeichen und neun normalen Berechtigungsbits.

Dieser Artikel erklärt, wie du diese Anzeige von links nach rechts liest und warum sich die Bedeutung von r, w und x bei regulären Dateien und Verzeichnissen teilweise unterscheidet.

Das Grundprinzip der Linux-Dateiberechtigungen

Jede Datei und jedes Verzeichnis besitzt einen Eigentümer, eine Gruppe und Zugriffsrechte. Die Rechte steuern, ob bestimmte Benutzer den Inhalt abrufen, verändern oder ein Objekt verwenden können.

Die normalen Berechtigungen bestehen aus neun Bits. Diese neun Bits sind in drei Dreiergruppen gegliedert:

  • Die erste Dreiergruppe gilt für den Eigentümer.
  • Die zweite Dreiergruppe gilt für die Dateigruppe.
  • Die dritte Dreiergruppe gilt für alle anderen Benutzer.

Jede Dreiergruppe steht immer für dieselbe Reihenfolge: r, w, x. Ein Bindestrich bedeutet, dass das jeweilige Recht fehlt.

Die drei Berechtigungsklassen

PositionenKlasseKurzformMögliche Rechte
1 bis 3Eigentümeruser, owner, ur, w, x
4 bis 6Gruppegroup, gr, w, x
7 bis 9Andereothers, or, w, x

Der Eigentümer ist das Benutzerkonto, dem die Datei oder das Verzeichnis zugeordnet ist. Die Gruppe ist die Benutzergruppe, für die der mittlere Rechteblock gilt. Andere bezeichnet alle lokalen Benutzer, die weder der Eigentümer sind noch über die Dateigruppe angesprochen werden.

Die Reihenfolge ist in jeder Berechtigungsanzeige fest: Eigentümer, Gruppe, andere. Bei der tatsächlichen Prüfung wird normalerweise zuerst betrachtet, ob der zugreifende Benutzer Eigentümer ist. Andernfalls kann die Gruppenklasse zutreffen; sonst gilt die Klasse für andere.

Die Rechte r, w und x

RechtZeichenBei regulären DateienBei Verzeichnissen
LesenrDen Dateiinhalt abrufen oder lesen.Die Einträge des Verzeichnisses auflisten.
SchreibenwDen Dateiinhalt verändern.Einträge anlegen, umbenennen und entfernen, sofern weitere erforderliche Rechte und Regeln erfüllt sind.
AusführenxEine ausführbare Datei oder ein Skript starten, sofern weitere Voraussetzungen erfüllt sind.Das Verzeichnis betreten beziehungsweise durchsuchen und auf darin referenzierte Objekte zugreifen.

- an einer Rechteposition bedeutet immer: Dieses Recht ist für die betreffende Klasse nicht gesetzt. Eine Datei kann deshalb beispielsweise lesbar sein, ohne ausführbar zu sein.

r, w und x bei regulären Dateien

Bei einer regulären Datei erlaubt r das Abrufen ihres Inhalts. w erlaubt, den Inhalt zu verändern. x erlaubt das Starten der Datei, wenn sie tatsächlich als ausführbares Programm oder Skript verwendbar ist und die Umgebung die Ausführung zulässt.

Lesen und Ausführen sind unabhängig voneinander. Eine Textdatei kann mit r lesbar sein, ohne ein x-Bit zu besitzen. Umgekehrt ist ein Ausführrecht allein nicht automatisch gleichbedeutend mit einem Leserecht.

r, w und x bei Verzeichnissen

Bei einem Verzeichnis bezieht sich r auf die Liste seiner Einträge. Mit diesem Recht kann ein Benutzer Namen von Dateien und Unterverzeichnissen auflisten, sofern der Zugriff auf das Verzeichnis grundsätzlich möglich ist.

w erlaubt Änderungen an den Einträgen des Verzeichnisses, etwa das Anlegen, Umbenennen oder Entfernen von Dateien. Dabei sind weitere Rechte und Regeln relevant. Beispielsweise wird für den praktischen Zugriff häufig zusätzlich x benötigt.

x bedeutet bei einem Verzeichnis Betreten beziehungsweise Durchsuchen. Es ermöglicht, einen Pfad durch das Verzeichnis zu verfolgen und auf darin referenzierte Objekte zuzugreifen, wenn deren eigene Rechte dies erlauben.

Berechtigungen mit ls -l anzeigen

Mit ls -l forderst du eine lange Dateiliste an:

ls -l

Eine beispielhafte Ausgabe kann so aussehen:

-rw-rw-r-- 1 root bob 1234 datei.txt

Das erste Feld am Zeilenanfang enthält den Dateityp und die Berechtigungen. Danach folgen unter anderem die Anzahl der Verweise, der Eigentümername, der Gruppenname, die Größe, ein Zeitstempel und der Dateiname.

Die Angaben zu Eigentümer und Gruppe sind wichtig, weil sie erklären, auf wen die erste und zweite Rechteklasse angewendet wird.

Das Berechtigungsfeld zerlegen

Das Feld -rw-rw-r-- besteht aus zehn Zeichen:

  • Das erste Zeichen, -, beschreibt den Dateityp.
  • Die nächsten drei Zeichen, rw-, gelten für den Eigentümer.
  • Die folgenden drei Zeichen, rw-, gelten für die Gruppe.
  • Die letzten drei Zeichen, r--, gelten für andere Benutzer.

Die neun Standardrechte beginnen also erst nach dem Dateitypzeichen. Das führende Minus bedeutet hier nicht, dass ein Eigentümerrecht fehlt, sondern dass es sich um eine reguläre Datei handelt.

AbschnittWertBedeutung
Dateityp-Reguläre Datei
Eigentümerrechterw-Der Eigentümer darf lesen und schreiben, aber nicht ausführen.
Gruppenrechterw-Mitglieder der Dateigruppe dürfen lesen und schreiben, aber nicht ausführen.
Rechte für anderer--Andere Benutzer dürfen nur lesen.
EigentümernamerootDas Benutzerkonto root ist Eigentümer.
GruppennamebobDie Gruppe bob ist die zugeordnete Dateigruppe.

Dateitypen in der langen ls-Ausgabe

Das erste Zeichen der langen Ausgabe ist ein Dateitypkennzeichen. Es gehört nicht zu den neun normalen Berechtigungsbits.

ZeichenDateitypEinordnung
-Reguläre DateiZum Beispiel eine Textdatei, ein Programm oder ein Skript.
dVerzeichnisEnthält Verzeichniseinträge, die auf Dateien oder weitere Verzeichnisse verweisen.
lSymbolischer LinkEin Verweis auf einen anderen Pfad.
Weitere ZeichenSpezielle Unix-DateitypenZum Beispiel Geräte-, Socket- oder FIFO-Dateien.

Trenne deshalb immer das Dateitypkennzeichen vom Rechtebereich. Bei drwx------ ist d der Typ des Objekts; rwx------ sind die neun Berechtigungspositionen.

Beispiele Schritt für Schritt lesen

Normale Datei mit unterschiedlichen Rechten

-rw-rw-r--
  • Dateityp: - bedeutet reguläre Datei.
  • Eigentümer: rw- bedeutet lesen und schreiben, aber nicht ausführen.
  • Gruppe: rw- bedeutet ebenfalls lesen und schreiben, aber nicht ausführen.
  • Andere: r-- bedeutet nur lesen.

In keiner der drei Klassen steht ein x. Keine dieser Klassen besitzt daher über diesen Rechtebereich ein Ausführrecht.

Ausführbare Datei

-rwxr-xr-x
  • Der Eigentümer darf lesen, schreiben und ausführen.
  • Die Gruppe darf lesen und ausführen, aber nicht schreiben.
  • Andere Benutzer dürfen lesen und ausführen, aber nicht schreiben.

Das x-Bit wird für jede Benutzerklasse unabhängig vergeben.

Privates Verzeichnis

drwx------
  • d kennzeichnet ein Verzeichnis.
  • rwx gibt dem Eigentümer Lesen, Schreiben und Durchsuchen.
  • --- für Gruppe und andere bedeutet keinen Zugriff über diese Rechte.

Nützliche Prüfkommandos

Um die Rechte einer einzelnen Datei zu prüfen, verwendest du:

ls -l DATEI

Um eine lange Liste eines Verzeichnisses anzuzeigen, verwendest du:

ls -l

Mit ls -ld prüfst du dagegen das Verzeichnis selbst. Ohne -d würde ls normalerweise den Inhalt des Verzeichnisses auflisten:

ls -ld VERZEICHNIS

Typische Probleme analysieren

Datei ist lesbar, lässt sich aber nicht starten

Prüfe mit ls -l DATEI, ob in der maßgeblichen Klasse ein x fehlt. Bestimme zuerst, ob du Eigentümer bist, Mitglied der angezeigten Gruppe bist oder unter die Klasse für andere fällst. Leserecht allein macht eine Datei nicht ausführbar.

Eine Datei kann nicht verändert werden

Vergleiche das Rechtefeld mit dem angezeigten Eigentümer- und Gruppennamen. In der für dich maßgeblichen Klasse muss w gesetzt sein. Fehlt es dort, erlaubt der Rechtebereich keine Änderung des Datei-Inhalts.

Ein Verzeichnis lässt sich nicht betreten

Prüfe mit ls -ld VERZEICHNIS das Rechtefeld des Verzeichnisses selbst. Fehlt in der zutreffenden Klasse das x-Bit, kann der Pfad nicht ordnungsgemäß durchsucht werden. Das kann auch den Zugriff auf eine Datei verhindern, deren Namen du bereits kennst.

Das führende Minus wird falsch gelesen

Das erste Minus in -rw-r--r-- bezeichnet eine reguläre Datei. Die Rechte beginnen erst mit dem darauffolgenden r. Für ein fehlendes Eigentümerrecht wäre dagegen innerhalb des ersten Dreierblocks ein Bindestrich zu sehen, etwa ---r--r--.

Prüfungsrelevante Zusammenfassung

  • Die normalen Linux-Berechtigungen bestehen aus neun Bits in drei Dreiergruppen.
  • Die Gruppen stehen in der Reihenfolge Eigentümer, Gruppe, andere.
  • Innerhalb jeder Gruppe gilt die Reihenfolge r, w, x.
  • r bedeutet Lesen, w Schreiben und x Ausführen beziehungsweise bei Verzeichnissen Durchsuchen.
  • Ein Bindestrich steht für ein fehlendes Recht.
  • Das erste Zeichen von ls -l ist der Dateityp und kein Berechtigungsbit.
  • - steht für eine reguläre Datei, d für ein Verzeichnis und l für einen symbolischen Link.
  • Mit ls -l DATEI prüfst du eine Datei, mit ls -ld VERZEICHNIS das Verzeichnis selbst.

Wenn du die Rechte ändern oder Eigentümer und Gruppen verwalten möchtest, sind die nächsten Themen Linux-Berechtigungsbits, chmod, chown, chgrp, spezielle Berechtigungsbits und ACLs.