Unix-Dateirechte

Unix-Dateirechte

Die Unix-Dateirechte sind Dateiberechtigungen bei UNIX und Unix-Derivaten wie Linux und Mac OS X. Die Berechtigungsaufteilung in Eigentümer, Gruppe und Andere gibt es seit UNIX-V4 (1974). In früheren UNIX-Versionen gab es nur 6 Bit für die Dateirechte (Lesen/Schreiben für Eigentümer und Nicht-Eigentümer, Execute und Set-UID). Die aktuellen UNIX-Dateirechte zeichnen sich durch eine einfache Struktur aus, die einerseits intuitiv von Menschen verwendet werden kann und andererseits keine hohen Ansprüche an Computer stellt. Trotzdem lassen sich mit diesen Dateirechten selbst komplexe Alltagsprobleme in einem Mehrbenutzerumfeld lösen.

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:

Eigentümer
(engl. user), ein spezielles Benutzerkonto am Computer
Gruppe
(engl. group), eine spezielle Unix-Benutzergruppe
Sonstige
(engl. others), jeder andere, der nicht der Eigentümer oder ein Mitglied der Inhabergruppe ist.

Die effektiven Rechte, die ein Benutzer an einer Datei hat, werden in der hier genannten Reihenfolge vergeben. So hat beispielsweise der Besitzer einer Datei all die Rechte, die ihm in dieser Position gegeben sind, ungeachtet der Rechte, die er als Gruppenmitglied hätte.

Der Eigentümer hat (im Falle nicht-feingranularer Rechte neben root) als einziger die Möglichkeit, die Dateirechte seiner Datei zu ändern oder den Dateiinhaber bzw. die -gruppe zu ändern (chown, chgrp). Im Falle feingranularer Rechte darf dies bei lokalen Dateien auch jeder Nutzer mit dem Recht PRIV_FILE_OWNER und es kann sogar sein, dass root dieses Recht nicht besitzt.

Grundlegende Rechte

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

Lesen
(engl. read) Der Benutzer darf aus der Datei lesen oder, im Falle eines Verzeichnisses, seinen Inhalt auslesen, allerdings keine Dateirechte dieser Dateien erfahren. Dieses Recht wird oft durch den Buchstaben „r“ für englisch read („lesen“) dargestellt und daher auch R-Bit genannt.
Schreiben
(engl. write) Der Benutzer darf in die Datei schreiben bzw. Dateien und Unterverzeichnisse in dem Verzeichnis erstellen, umbenennen, löschen und deren Dateirechte verändern. Dieses Recht wird oft durch den Buchstaben „w“ für englisch write („schreiben“) dargestellt und daher auch W-Bit genannt.
Ausführen
(engl. execute) Der Benutzer darf die Datei als Programm ausführen bzw. in das Verzeichnis wechseln und dort Dateien oder Unterverzeichnisse erreichen. Ohne das Lesen-Recht darf der Verzeichnisinhalt jedoch nicht ausgelesen werden. Dieses Recht wird oft durch den Buchstaben „x“ für englisch execute („ausführen“) dargestellt und daher auch X-Bit genannt.

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, sondern werden aus einer Rechtemaske (umask) des erzeugenden Programms abgeleitet. Die Gruppenzuordnung von neu erzeugten Verzeichnissen und Dateien entspricht zunächst je nach Systemeinstellungen entweder der aktiven Gruppe des Benutzers (z.B. bei Linux) oder der Gruppe des enthaltenden Verzeichnisses (BSD Unix-Standard).

Sonderrechte/erweiterte Rechte

Setuid
Wird eine Datei, die das Setuid-Bit gesetzt hat, ausgeführt, dann läuft der Prozess mit der effektiven User-ID des Dateieigentümers.

Angewendet bei einem Verzeichnis vererbt sich der Besitzer (UID) neu angelegter Dateien auf den "Übergeordneten" Besitzer.

Setgid
Wird eine Datei, die das Setgid-Bit gesetzt hat, ausgeführt, dann läuft der dadurch erzeugte Prozess mit der effektiven Group ID der Inhabergruppe der Datei.

Angewendet bei einem Verzeichnis vererbt sich die Gruppe (GID) neu angelegter Dateien auf die "Übergeordnete" Gruppe.

Sticky bit
Verwendung findet das Bit bei Verzeichnissen, wo es zur Folge hat, dass Benutzer Dateien von anderen Benutzern nicht löschen können. Früher wurde es bei Dateien benutzt, wo das Sticky Bit bewirkte, dass nach dem Ausführen der Datei der Programmcode weiterhin im Arbeitsspeicher verblieb (bei Swapping-Systemen ohne Paging).

Technische Hintergründe

In jedem Inode müssen folglich nun drei Informationen gespeichert werden, aus denen sich alle Informationen ableiten lassen:

  • Die User-ID des Dateiinhabers
  • Die Group-ID der Inhabergruppe
  • Die Rechtemaske

Bei der Rechtemaske werden die oben genannten grundlegenden und erweiterten Rechte in 10 Bit kodiert gespeichert.

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:

  • 1 für Ausführen
  • 2 für Schreiben
  • 4 für Lesen

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 (read), wenn das Lesen-Bit gesetzt ist. An der zweiten Stelle steht ein w (write), wenn Schreiben erlaubt ist. An der dritten Stelle steht x (execute) wenn Ausführen erlaubt ist. Falls ein Recht nicht gesetzt ist, wird dies durch ein - gekennzeichnet.

  Eigentümer Gruppe Sonstige
Leserrecht
r - - r - - r - -
Schreibrecht
- w - - w - - w -
Ausführungsrecht
- - x - - x - - x

Es entsteht ein String mit neun Zeichen. Die erweiterten Dateirechte werden darin an der Position 3, 6 und 9 angezeigt, wo sonst die mit x gekennzeichneten Ausführungsrechte stehen. Falls an dieser Position ein zusätzlich gesetztes Ausführungsrecht angezeigt werden soll, wird das erweiterte Dateirecht mit einem Kleinbuchstaben angezeigt; andernfalls mit einem Großbuchstaben. Wobei gilt: Die SUID- bzw. SGID-Bits werden mit S/s dargestellt und das Sticky Bit mit T/t.

  Ohne gesetztes Ausführungsbit Mit gesetztem Ausführungsbit
SUID-Bit
--S------ --s------
SGID-Bit
-----S--- -----s---
Sticky Bit
--------T --------t

Beispiele

  Sonderrechte Eigentümer Gruppe Sonstige
Bezeichnung
(Kennzeichen)
SUID
(S/s)
SGID
(S/s)
Sticky
(T/t)
read
(r)
write
(w)
execute
(x)
read
(r)
write
(w)
execute
(x)
read
(r)
write
(w)
execute
(x)
Wertigkeit 4 2 1 4 2 1 4 2 1 4 2 1
Beispiel 1 – Dateirecht 755
Gesetzte Bits Nein Nein Nein Ja Ja Ja Ja Nein Ja Ja Nein Ja
Oktalwert 0 + 0 + 0 = 0 4 + 2 + 1 = 7 4 + 0 + 1 = 5 4 + 0 + 1 = 5
Symbolische Notation r w x r - x r - x
Erläuterung Typische Dateirechte für eine ausführbare Datei (ein Programm oder ein Script). Nur der Eigentümer kann die Datei ändern. Alle anderen können sie lediglich lesen und ausführen.
 
Beispiel 2 – Dateirecht 664
Gesetzte Bits Nein Nein Nein Ja Ja Nein Ja Ja Nein Ja Nein Nein
Oktalwert 0 + 0 + 0 = 0 4 + 2 + 0 = 6 4 + 2 + 0 = 6 4 + 0 + 0 = 4
Symbolische Notation r w - r w - r - -
Erläuterung Mögliche Dateirechte für eine nicht ausführbare Datei (beispielsweise ein Textdokument), welche von Eigentümer und Gruppe bearbeitet, vom Rest allerdings nur gelesen werden kann.
 
Beispiel 3 – Dateirecht 4755
Gesetzte Bits Ja Nein Nein Ja Ja Ja Ja Nein Ja Ja Nein Ja
Oktalwert 4 + 0 + 0 = 4 4 + 2 + 1 = 7 4 + 0 + 1 = 5 4 + 0 + 1 = 5
Symbolische Notation r w s r - x r - x
Erläuterung Die Datei kann mit den Rechten des Eigentümers verwendet werden. Dies kann notwendig sein, wenn ein Programm root-Rechte benötigt, aber von normalen Benutzern aufgerufen werden soll, wie beispielsweise die Anwendung passwd (Passwortänderung; Eigentümer: root). Kennzeichnung durch den Kleinbuchstaben s wegen zusätzlich gesetzter Ausführungsrechte des Eigentümers.
 
Beispiel 4 – Dateirecht 1777 für ein Verzeichnis
Gesetzte Bits Nein Nein Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja
Oktalwert 0 + 0 + 1 = 1 4 + 2 + 1 = 7 4 + 2 + 1 = 7 4 + 2 + 1 = 7
Symbolische Notation r w x r w x r w t
Erläuterung Kennzeichnung eines Ordners zur gemeinsamen Benutzung für alle Anwender. Darin enthaltene Dateien und Ordner dürfen allerdings nur von ihren Eigentümern bearbeitet oder gelöscht werden, wie beispielsweise beim /tmp-Verzeichnis. Kennzeichnung durch den Kleinbuchstaben t wegen zusätzlich gesetzter Ausführungsrechte für sonstige Benutzer.

Programme zum Verändern von Dateirechten

Unix-Dateirechte bearbeiten mit Konqueror

In der Unix-Kommandozeile können Dateirechte mit dem Befehl chmod (Abkürzung von change mode) verändert werden. Besitzer- bzw. Gruppenzugehörigkeiten werden mit den Befehlen chown bzw. chgrp beeinflusst. Viele Dateimanager sowie FTP-Clientprogramme moderner grafischer Benutzeroberflächen bieten ebenfalls Möglichkeiten zur Veränderung der Dateirechte.


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • UNIX-ähnlich — Ein unixoides oder unixähnliches System ist ein Betriebssystem, das versucht die Verhaltensweise von Unix zu implementieren. Die lange Geschichte von Unix hat eine Vielzahl mehr oder minder verschiedenartiger Betriebssysteme hervorgebracht, die… …   Deutsch Wikipedia

  • Unix-artig — Ein unixoides oder unixähnliches System ist ein Betriebssystem, das versucht die Verhaltensweise von Unix zu implementieren. Die lange Geschichte von Unix hat eine Vielzahl mehr oder minder verschiedenartiger Betriebssysteme hervorgebracht, die… …   Deutsch Wikipedia

  • Unix-ähnlich — Ein unixoides oder unixähnliches System ist ein Betriebssystem, das versucht die Verhaltensweise von Unix zu implementieren. Die lange Geschichte von Unix hat eine Vielzahl mehr oder minder verschiedenartiger Betriebssysteme hervorgebracht, die… …   Deutsch Wikipedia

  • Ls (Unix) — ls ist ein durch POSIX und die Single Unix Specification definierter Befehl auf der Kommandozeile, der in Unix und unixoiden Systemen implementiert ist, um den Inhalt eines Verzeichnisses anzeigen zu lassen. ls ist eines der am häufigsten… …   Deutsch Wikipedia

  • Mv (Unix) — mv (engl. Abkürzung für move) ist ein Unix Befehl, der eine oder mehrere Dateien oder Verzeichnisse von einem Ort zum anderen verschiebt. Damit vereint das Programm die beiden von einem Computerbenutzer intuitiv als verschieden wahrgenommenen… …   Deutsch Wikipedia

  • ls (Unix) — ls ist ein durch POSIX und die Single Unix Specification definierter Befehl auf der Kommandozeile, der in Unix und unixoiden Systemen implementiert ist, um den Inhalt eines Verzeichnisses anzeigen zu lassen. ls ist eines der am häufigsten… …   Deutsch Wikipedia

  • rm (Unix) — rm (Abkürzung für „remove“) ist der in der UNIX Welt übliche Befehl zum Löschen von Dateien und Verzeichnisbäumen. Im Gegensatz zu anderen Betriebssystemen, z. B. MS DOS, ist der Löschbefehl in UNIX als unabhängiges Programm und nicht im… …   Deutsch Wikipedia

  • mv (Unix) — mv (engl. Abkürzung für move) ist ein Unix Befehl, der eine oder mehrere Dateien oder Verzeichnisse von einem Ort zum anderen verschiebt. Damit vereint das Programm die beiden von einem Computerbenutzer intuitiv als verschieden wahrgenommenen… …   Deutsch Wikipedia

  • CHMOD — (von englisch: change mode) ist ein Kommandozeilenprogramm unter Unix, mit dem sich die klassischen Unix Dateiattribute (Zugriffsrechte) verändern lassen. Das chmod Kommando gibt es bereits seit der ersten Version des AT T Unix (Ende der 1970er… …   Deutsch Wikipedia

  • Chmod — (von englisch: change mode) ist ein Kommandozeilenprogramm unter Unix, mit dem sich die klassischen Unix Dateiattribute (Zugriffsrechte) verändern lassen. Das chmod Kommando gibt es bereits seit der ersten Version des AT T Unix (Ende der 1970er… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”