3.3. Zugriffsrechte

FreeBSD, das ein direkter Abkömmling von BSD UNIX® ist, stützt sich auf mehrere Grundkonzepte von UNIX Systemen. Das erste und ausgeprägteste: FreeBSD ist ein Mehrbenutzer-Betriebssystem. Das System ermöglicht, dass mehrere Benutzer gleichzeitig an völlig verschiedenen und unabhängigen Aufgaben arbeiten können. Es ist verantwortlich für eine gerechte Auf- und Zuteilung von Nachfragen nach Hardware- und Peripheriegeräten, Speicher und CPU-Zeit unter den Benutzern.

Da das System mehrere Benutzer unterstützt, hat alles, was das System verwaltet, einen Satz von Rechten, die bestimmen, wer die jeweilige Ressource lesen, schreiben oder ausführen darf. Diese Zugriffsrechte stehen in drei Achtergruppen, die in drei Teile unterteilt sind: einen für den Besitzer der Datei, einen für die Gruppe, zu der die Datei gehört und einen für alle anderen. Die numerische Darstellung sieht wie folgt aus:

Wert Zugriffsrechte Auflistung im Verzeichnis
0 Kein Lesen, Kein Schreiben, Kein Ausführen ---
1 Kein Lesen, Kein Schreiben, Ausführen --x
2 Kein Lesen, Schreiben, Kein Ausführen -w-
3 Kein Lesen, Schreiben, Ausführen -wx
4 Lesen, Kein Schreiben, Kein Ausführen r--
5 Lesen, Kein Schreiben, Ausführen r-x
6 Lesen, Schreiben, Kein Ausführen rw-
7 Lesen, Schreiben, Ausführen rwx

Sie können -l auf der Kommandozeile von ls(1) angeben, um eine ausführliche Verzeichnisauflistung zu sehen, die in einer Spalte die Zugriffsrechte für den Besitzer, die Gruppe und alle anderen enthält. Die Ausgabe von ls -l könnte wie folgt aussehen:

% ls -l
total 530
-rw-r--r--  1 root  wheel     512 Sep  5 12:31 myfile
-rw-r--r--  1 root  wheel     512 Sep  5 12:31 otherfile
-rw-r--r--  1 root  wheel    7680 Sep  5 12:31 email.txt
...

Die erste Spalte der Ausgabe enthält die Zugriffsrechte:

-rw-r--r--

Das erste Zeichen von links ist ein Symbol, welches angibt, ob es sich um eine normale Datei, ein Verzeichnis, ein zeichenorientiertes Gerät, ein Socket oder irgendeine andere Pseudo-Datei handelt. In diesem Beispiel zeigt - eine normale Datei an. Die nächsten drei Zeichen, dargestellt als rw-, ergeben die Rechte für den Datei-Besitzer. Die drei Zeichen danach r-- die Rechte der Gruppe, zu der die Datei gehört. Die letzten drei Zeichen, r--, geben die Rechte für den Rest der Welt an. Ein Minus bedeutet, dass das Recht nicht gegeben ist. In diesem Fall sind die Zugriffsrechte also: der Eigentümer kann die Datei lesen und schreiben, die Gruppe kann lesen und alle anderen können auch nur lesen. Entsprechend obiger Tabelle wären die Zugriffsrechte für diese Datei 644, worin jede Ziffer die drei Teile der Zugriffsrechte dieser Datei verkörpert.

Das ist alles schön und gut, aber wie kontrolliert das System die Rechte von Hardware-Geräten? FreeBSD behandelt die meisten Hardware-Geräte als Dateien, welche Programme öffnen, lesen und mit Daten beschreiben können wie alle anderen Dateien auch. Diese Spezial-Dateien sind im Verzeichnis /dev gespeichert.

Verzeichnisse werden ebenfalls wie Dateien behandelt. Sie haben Lese-, Schreib- und Ausführ-Rechte. Das Ausführungs-Bit hat eine etwas andere Bedeutung für ein Verzeichnis als für eine Datei. Die Ausführbarkeit eines Verzeichnisses bedeutet, dass in das Verzeichnis zum Beispiel mit cd gewechselt werden kann. Das bedeutet auch, dass in dem Verzeichnis auf Dateien, deren Namen bekannt sind, zugegriffen werden kann, vorausgesetzt die Zugriffsrechte der Dateien lassen dies zu.

Das Leserecht auf einem Verzeichnis erlaubt es, sich den Inhalt des Verzeichnisses anzeigen zu lassen. Um eine Datei mit bekanntem Namen in einem Verzeichnis zu löschen, müssen auf dem Verzeichnis Schreib- und Ausführ-Rechte gesetzt sein.

Es gibt noch mehr Rechte, aber die werden vor allem in speziellen Umständen benutzt, wie zum Beispiel bei SetUID-Binaries und Verzeichnissen mit gesetztem Sticky-Bit. Mehr über Zugriffsrechte von Dateien und wie sie gesetzt werden, finden Sie in chmod(1).

3.3.1. Symbolische Zugriffsrechte

Beigesteuert von Tom Rhodes.

Die Zugriffsrechte lassen sich auch über Symbole anstelle von oktalen Werten festlegen. Symbolische Zugriffsrechte werden in der Reihenfolge Wer, Aktion und Berechtigung angegeben. Die folgenden Symbole stehen zur Auswahl:

Option Symbol Bedeutung
Wer u Benutzer (user)
Wer g Gruppe (group)
Wer o Andere (other)
Wer a Alle
Aktion + Berechtigungen hinzufügen
Aktion - Berechtigungen entziehen
Aktion = Berechtigungen explizit setzen
Berechtigung r lesen (read)
Berechtigung w schreiben (write)
Berechtigung x ausführen (execute)
Berechtigung t Sticky-Bit
Berechtigung s Set-UID oder Set-GID

Symbolische Zugriffsrechte werden wie die numerischen mit dem Kommando chmod(1) vergeben. Wenn Sie beispielsweise allen anderen Benutzern den Zugriff auf die Datei FILE verbieten wollen, benutzen Sie den nachstehenden Befehl:

% chmod go= FILE

Wenn Sie mehr als eine Änderung der Rechte einer Datei vornehmen wollen, können Sie eine durch Kommata getrennte Liste der Rechte angeben. Das folgende Beispiel entzieht der Gruppe und der Welt (den anderen) die Schreibberechtigung auf die Datei FILE und fügt dann für alle Ausführungsrechte hinzu:

% chmod go-w,a+x FILE

3.3.2. FreeBSD Datei-Flags

Beigetragen von Tom Rhodes.

Zusätzlich zu den vorhin diskutierten Zugriffsrechten unterstützt FreeBSD auch die sogenannten “Datei-Flags”. Diese erhöhen die Sicherheit Ihres Systems, indem sie eine verbesserte Kontrolle von Dateien erlauben. Verzeichnisse werden allerdings nicht unterstützt.

Diese verbesserte Sicherheit führt dazu, dass manche Dateien nicht einmal von root gelöscht oder bearbeitet werden können.

Datei-Flags können über chflags(1) gesetzt oder gelöscht werden. Um beispielsweise die Datei file1 mit dem “unlöschbar”-Flag zu sichern, geben Sie folgenden Befehl ein:

# chflags sunlink file1

Um dieses Flag wieder zu löschen, geben Sie den Befehl erneut ein. Allerdings setzen Sie ein “no” vor sunlink:

# chflags nosunlink file1

Um die Flags dieser Datei anzuzeigen, verwenden Sie ls(1) zusammen mit der Option -lo:

# ls -lo file1

Dadurch erhalten Sie eine Ausgabe ähnlich der folgenden:

-rw-r--r--  1 trhodes  trhodes  sunlnk 0 Mar  1 05:54 file1

Viele Flags können nur von root gesetzt oder gelöscht werden. Andere wiederum können auch vom Eigentümer der Datei gesetzt werden. Weitere Informationen zu Datei-Flags finden sich in den Manualpages chflags(1) und chflags(2).

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.