Heim

Unix-Dateirechte

Unter Unix-Dateirechten versteht man bei Unix-Derivaten wie Linux und Mac OS X eine spezielle Implementierung von Dateiberechtigungen, die es bereits in der ersten Version Anfang der 1970er Jahre des AT&T-Unix gab.

Inhaltsverzeichnis

Grundlagen

Benutzerklassen

Auf Unix-Dateisystemen besitzt jeder Inode, d.h. im Endeffekt jede Datei, eine Regelung der Zugriffsrechte. Geregelt werden die Rechte folgender Benutzerklassen:

Die effektiven Rechte, die ein Benutzer an einer Datei hat, werden von oben nach unten vergeben. Zum Beispiel hat der Besitzer einer Datei all die Rechte, die ihm als Eigentümer gegeben sind, ungeachtet der Rechte, die er als Gruppenmitglied hätte.

Grundlegende Rechte

Jeder der drei Benutzerklassen kann eines oder mehrere der folgenden Rechte zugewiesen werden:

Im Gegensatz zu Access Control Lists werden Rechte nicht vererbt. Neu erstellte Dateien in einem Verzeichnis haben demnach nicht notwendigermaßen die gleichen Rechte wie dieses Verzeichnis.

Sonderrechte/erweiterte Rechte

Rechtenotation

Oktalnotation

Sehr verbreitet ist die Notation der Dateirechte in der Oktalnotation. Diese besteht aus einer drei bzw. vier Ziffern langen Oktalzahl. Jeweils eine Ziffer repräsentiert dabei eine Benutzerklasse, in der Reihenfolge Eigentümer, Gruppe, Sonstige. Eine Ziffer setzt sich dabei als Summe aus den drei Rechten zusammen:

Jede Kombinationsmöglichkeit hat eine andere Ziffer zur Folge. 0 als Sonderfall bedeutet dabei, dass die Benutzerklasse keinerlei Recht am Objekt besitzt.

Es existiert zudem eine Oktalnotation, die vier Ziffern lang ist. Dazu wird der dreiziffrigen Oktalzahl eine vierte Ziffer vorangestellt, die die erweiterten Dateirechte repräsentiert. Analog zu den Dateirechten bildet sich die Ziffer als eine Summe der jeweils gesetzten Sonderrechte:

Symbolische Notation

Die symbolische Notation ist im Gegensatz zur Oktalnotation eine handlichere Methode, Dateirechte zu notieren. Die Rechte der drei Benutzerklassen werden, in der gleichen Reihenfolge wie bei der Oktalnotation, hintereinander notiert, wobei das Recht jeder Klasse anstelle einer Ziffer durch ein Zeichentriplet repräsentiert wird. An Stelle des ersten Zeichens steht in diesem ein r, wenn das Lesen-Bit gesetzt ist, - wenn nicht. An der zweiten Stelle steht ein w, wenn Schreiben erlaubt ist, - wenn nicht. An der dritten Stelle steht x wenn Ausführen erlaubt ist, - wenn nicht.

Es entsteht ein String mit neun Zeichen. Die erweiterten Dateirechte werden in diesen eingebaut, in dem das x an Position drei oder sechs durch ein s ersetzt wird, wenn das Setuid-Bit bzw. das Setgid-Bit gesetzt ist. Ist das Sticky-Bit gesetzt, dann wird es durch ein t anstelle des letzten x an Position neun ersetzt. Sind die Ausführ-Rechte für die entsprechenden Benutzerklassen nicht gesetzt, werden die jeweiligen s bzw. t großgeschrieben.

Beispiele

Dateirecht 755
Zugriff Eigentümer Gruppe Sonstige
Lesen
Schreiben
Ausführen
Summe: 755 4 + 2 + 1 = 7 4 + 1 = 5 4 + 1 = 5
Symbolische Notation rwxr-xr-x
Bedeutung Typische Dateirechte für eine ausführbare Datei (ein Programm oder ein Script). Nur der Dateinhaber kann die Datei ändern, alle anderen können lesen und ausführen.
Dateirecht 664
Zugriff Eigentümer Gruppe Sonstige
Lesen
Schreiben
Ausführen
Summe: 664 4 + 2 = 6 4 + 2 = 6 4
Symbolische Notation rw-rw-r--
Bedeutung Mögliche Dateirechte für eine nicht ausführbare Datei (z.B. ein Textdokument), welche von Inhaber und Gruppe bearbeitet werden kann, vom Rest allerdings nur gelesen.

Programme zum Bearbeiten von Dateirechten

Das klassische Unix-Kommando zum Verändern von Dateirechten ist chmod (CHange MODe). Um den Besitzer bzw. die Gruppenzugehörigkeit zu ändern, wird chown bzw. chgrp verwendet.

Auch die Dateimanager moderner grafischer Benutzeroberflächen besitzen in der Regel Möglichkeiten, die Dateirechte zu verändern.

Tutorial Benutzerrechte