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>.