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
| Positionen | Klasse | Kurzform | Mögliche Rechte |
|---|---|---|---|
| 1 bis 3 | Eigentümer | user, owner, u | r, w, x |
| 4 bis 6 | Gruppe | group, g | r, w, x |
| 7 bis 9 | Andere | others, o | r, 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
| Recht | Zeichen | Bei regulären Dateien | Bei Verzeichnissen |
|---|---|---|---|
| Lesen | r | Den Dateiinhalt abrufen oder lesen. | Die Einträge des Verzeichnisses auflisten. |
| Schreiben | w | Den Dateiinhalt verändern. | Einträge anlegen, umbenennen und entfernen, sofern weitere erforderliche Rechte und Regeln erfüllt sind. |
| Ausführen | x | Eine 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.
| Abschnitt | Wert | Bedeutung |
|---|---|---|
| Dateityp | - | Reguläre Datei |
| Eigentümerrechte | rw- | Der Eigentümer darf lesen und schreiben, aber nicht ausführen. |
| Gruppenrechte | rw- | Mitglieder der Dateigruppe dürfen lesen und schreiben, aber nicht ausführen. |
| Rechte für andere | r-- | Andere Benutzer dürfen nur lesen. |
| Eigentümername | root | Das Benutzerkonto root ist Eigentümer. |
| Gruppenname | bob | Die 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.
| Zeichen | Dateityp | Einordnung |
|---|---|---|
- | Reguläre Datei | Zum Beispiel eine Textdatei, ein Programm oder ein Skript. |
d | Verzeichnis | Enthält Verzeichniseinträge, die auf Dateien oder weitere Verzeichnisse verweisen. |
l | Symbolischer Link | Ein Verweis auf einen anderen Pfad. |
| Weitere Zeichen | Spezielle Unix-Dateitypen | Zum 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------
dkennzeichnet ein Verzeichnis.rwxgibt 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. rbedeutet Lesen,wSchreiben undxAusführen beziehungsweise bei Verzeichnissen Durchsuchen.- Ein Bindestrich steht für ein fehlendes Recht.
- Das erste Zeichen von
ls -list der Dateityp und kein Berechtigungsbit. -steht für eine reguläre Datei,dfür ein Verzeichnis undlfür einen symbolischen Link.- Mit
ls -l DATEIprüfst du eine Datei, mitls -ld VERZEICHNISdas 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.