Zugriffskontrolllisten (Access Control Lists, ACL) erweitern die normalen Zugriffsrechte von UNIX® Systemen auf eine kompatible (POSIX®.1e) Weise und bieten feiner granulierte Sicherheitsmechanismen.
Der GENERIC
-Kernel von FreeBSD bietet
ACL-Unterstützung für
UFS-Dateisysteme. Benutzer, die es vorziehen
einen eigenen Kernel zu übersetzen, müssen die folgende Option
in die Kernelkonfigurationsdatei aufnehmen:
options UFS_ACL
Das System gibt eine Warnung aus, wenn ein Dateisystem mit ACLs eingehangen werden soll und die Unterstützung für ACLs nicht im Kernel aktiviert ist. ACLs bauen auf den erweiterten Attributen auf, die von UFS2 standardmäßig unterstützt werden.
Dieses Kapitel beschreibt, wie ACL-Unterstützung aktiviert wird. Zudem werden einige Anwendungsbeispiele vorgestellt.
Die Option acl
in
/etc/fstab
aktiviert Zugriffskontrolllisten
für ein Dateisystem. Die bevorzugte Möglichkeit ist
die Verwendung von Zugriffskontrolllisten mit tunefs(8) (Option
-a
), im Superblock des Dateisystems festzuschreiben.
Diese Möglichkeit hat mehrere Vorteile:
Nochmaliges Einhängen eines Dateisystems (Option
-u
von mount(8)) verändert den Status
der Zugriffskontrolllisten nicht. Die Verwendung von
Zugriffskontrolllisten kann nur durch Abhängen und erneutes
Einhängen eines Dateisystems verändert werden. Das
heißt auch, dass Zugriffskontrolllisten nicht
nachträglich auf dem Root-Dateisystem aktiviert werden
können.
Die Zugriffskontrolllisten auf den Dateisystemen sind,
unabhängig von den Optionen in /etc/fstab
oder Namensänderungen der Geräte, immer aktiv. Dies
verhindert auch, dass Zugriffskontrolllisten aus Versehen
auf Dateisystemen ohne Zugriffskontrolllisten aktiviert
werden.
Es kann sein, dass sich der Status von Zugriffskontrolllisten
später durch nochmaliges Einhängen des Dateisystems
(Option -u
von mount(8)) ändern
lässt. Die momentane Variante ist aber sicherer, da der
Status der Zugriffskontrolllisten nicht versehentlich geändert
werden kann. Allgemein sollten Zugriffskontrolllisten auf einem
Dateisystem, auf dem sie einmal verwendet wurden, nicht deaktiviert
werden, da danach die Zugriffsrechte falsch sein können.
Werden Zugriffskontrolllisten auf einem solchen Dateisystem wieder
aktiviert, werden die Zugriffsrechte von Dateien, die sich
zwischenzeitlich geändert haben, überschrieben, was zu
erneuten Problemen führt.
Die Zugriffsrechte einer Datei werden durch ein
+
(Plus) gekennzeichnet, wenn die Datei durch
Zugriffskontrolllisten geschützt ist:
drwx------ 2 robert robert 512 Dec 27 11:54 private drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1 drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2 drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3 drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html
In diesem Beispiel sind die Verzeichnisse
directory1
, directory2
und directory3
durch Zugriffskontrolllisten
geschützt, wohingegen das Verzeichnis
public_html
nicht geschützt ist.
getfacl
zeigt Zugriffskontrolllisten
an. Das folgende Kommando zeigt die ACLs
auf der Datei test
:
%
getfacl test
#file:test #owner:1001 #group:1001 user::rw- group::r-- other::r--
setfacl
ändert oder entfernt
ACLs auf Dateien. Um alle
ACLs einer Datei zu entfernen, können Sie
die Option -k
benutzen. Es ist jedoch
empfehlenswert die Option -b
zu verwenden, da
sie die erforderlichen Felder, die für ACLs
benötigt werden, beibehält.
#
setfacl -k test
Benutzen Sie -m
um die Einträge der
ACL zu verändern:
%
setfacl -m u:trhodes:rwx,g:web:r--,o::--- test
In diesem Beispiel gab es keine vordefinierten Einträge, da sie durch den vorhergehenden Befehl entfernt wurden. Mit diesem Kommando werden die eben entfernten Zugriffskontrolllisten wiederhergestellt. Der Befehl gibt die Fehlermeldung Invalid argument aus, wenn Sie nicht existierende Benutzer oder Gruppen als Parameter angeben.
Weitere Informationen zu den Optionen dieser Kommandos finden Sie in getfacl(1) und setfacl(1).
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>.