JavaScript is required to for searching.
Navigationslinks �berspringen
Druckansicht beenden
Oracle Solaris ZFS-Administrationshandbuch
search filter icon
search icon

Dokument-Informationen

Vorwort

1.  Oracle Solaris ZFS-Dateisystem (Einführung)

2.  Erste Schritte mit Oracle Solaris ZFS

3.  Unterschiede zwischen Oracle Solaris ZFS und herkömmlichen Dateisystemen

4.  Verwalten von Oracle Solaris ZFS-Speicher-Pools

5.  Installieren und Booten eines Oracle Solaris ZFS-Root-Dateisystems

6.  Verwalten von Oracle Solaris ZFS-Dateisystemen

7.  Arbeiten mit Oracle Solaris ZFS-Snapshots und -Klonen

8.  Schützen von Oracle Solaris ZFS-Dateien mit Zugriffskontrolllisten und Attributen

Neues Solaris-Modell für Zugriffskontrolllisten

Syntaxbeschreibungen zum Setzen von Zugriffskontrolllisten

Vererbung von Zugriffskontrolllisten

Eigenschaften von Zugriffskontrolllisten (aclinherit)

Setzen von Zugriffskontrolllisten an ZFS-Dateien

Setzen und Anzeigen von Zugriffskontrolllisten an ZFS-Dateien im ausführlichen Format

Festlegen der Vererbung von Zugriffskontrolllisten an ZFS-Dateien im ausführlichen Format

Setzen und Anzeigen von Zugriffskontrolllisten an ZFS-Dateien im Kompaktformat

9.  Delegierte Oracle Solaris ZFS-Administration

10.  Fortgeschrittene Oracle Solaris ZFS-Themen

11.  Problembehebung und Pool-Wiederherstellung in Oracle Solaris ZFS

A.  Oracle Solaris ZFS-Versionsbeschreibungen

Index

Setzen und Anzeigen von Zugriffskontrolllisten an ZFS-Dateien im ausführlichen Format

Mit dem Befehl chmod können Sie Zugriffskontrolllisten von ZFS-Dateien ändern. Die folgende chmod-Syntax zum Ändern von Zugriffskontrolllisten nutzt zur Erkennung des Zugriffskontrolllistenformats die Zugriffskontrolllisten-Spezifikation. Eine Beschreibung der Zugriffskontrolllisten-Spezifikation finden Sie unter Syntaxbeschreibungen zum Setzen von Zugriffskontrolllisten.

Ausführliche Informationen zu Zugriffskontrolllisten werden mithilfe des Befehls ls - v angezeigt. Beispiel:

# ls -v file.1
-rw-r--r--   1 root     root      206663 Jun 23 15:06 file.1
     0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
     2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow

Informationen zur Verwendung des Zugriffskontrolllisten-Kompaktformats finden Sie unter Setzen und Anzeigen von Zugriffskontrolllisten an ZFS-Dateien im Kompaktformat.

Beispiel 8-1 Ändern gewöhnlicher Zugriffskontrolllisten an ZFS-Dateien

Dieser Abschnitt enthält Beispiele zum Setzen und Anzeigen gewöhnlicher Zugriffskontrolllisten.

Im folgenden Beispiel besitzt Datei.1 eine gewöhnliche Zugriffskontrollliste:

# ls -v file.1
-rw-r--r--   1 root     root      206663 Jun 23 15:06 file.1
     0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
     2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow

Im folgenden Beispiel wird die Berechtigung write_data für group@ gewährt.

# chmod A1=group@:read_data/write_data:allow file.1
# ls -v file.1
-rw-rw-r--   1 root     root      206663 Jun 23 15:06 file.1
     0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     1:group@:read_data/write_data:allow
     2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow

Im folgenden Beispiel werden die Berechtigungen an Datei.1 auf 644 zurückgesetzt.

# chmod 644 file.1
# ls -v file.1
-rw-r--r--   1 root     root      206663 Jun 23 15:06 file.1
     0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
     2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow

Beispiel 8-2 Setzen komplexer Zugriffskontrolllisten an ZFS-Dateien

Dieser Abschnitt enthält Beispiele zum Setzen und Anzeigen komplexer Zugriffskontrolllisten.

Im folgenden Beispiel werden die Berechtigungen read_data/execute für den Benutzer gozer und das·Verzeichnis Test.Verz gesetzt.

# chmod A+user:gozer:read_data/execute:allow test.dir
# ls -dv test.dir
drwxr-xr-x+  2 root     root           2 Jun 23 15:11 test.dir
     0:user:gozer:list_directory/read_data/execute:allow
     1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     2:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Im folgenden Beispiel werden die Berechtigungen read_data/execute für den Benutzer gozer entfernt.

# chmod A0- test.dir
# ls -dv test.dir
drwxr-xr-x   2 root     root           2 Jun 23 15:11 test.dir
     0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     1:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     2:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Beispiel 8-3 Interaktion von Zugriffskontrolllisten mit Berechtigungen an ZFS-Dateien

Diese Beispiele demonstrieren die Interaktion zwischen dem Setzen von Zugriffskontrolllisten und dem anschließenden Ändern der Berechtigungs-Bits einer Datei bzw. eines Verzeichnisses.

Im folgenden Beispiel besitzt Datei.2 eine gewöhnliche Zugriffskontrollliste:

# ls -v file.2
-rw-r--r--   1 root     root       49090 Jun 23 15:13 file.2
     0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
     2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow

Im folgenden Beispiel werden gewährte Zugriffskontrolllisten-Berechtigungen vom Benutzer everyone@ entfernt.

# chmod A2- file.2
# ls -v file.2
-rw-r-----   1 root     root       49090 Jun 23 15:13 file.2
     0:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow

In dieser Ausgabe werden die Dateiberechtigungs-Bits von 644 auf 640 zurückgesetzt. Leseberechtigungen für everyone@ werden faktisch von den Dateiberechtigungs-Bits entfernt, wenn die gewährten Zugriffskontrolllisten-Zugriffsrechte für everyone@ entfernt werden.

Im folgenden Beispiel wird die vorhandene Zugriffskontrollliste mit den Zugriffsrechten read_data/write_data für everyone@ ersetzt.

# chmod A=everyone@:read_data/write_data:allow file.3
# ls -v file.3
-rw-rw-rw-   1 root     root       27482 Jun 23 15:14 file.3
     0:everyone@:read_data/write_data:allow

In dieser Ausgabe ersetzt die chmod-Syntax faktisch die Zugriffskontrollliste mit den Berechtigungen read_data/write_data:allow durch Lese- und Schreibberechtigungen für Eigentümer, Gruppen und everyone@. In diesem Modell gibt everyone@ den Zugriff für beliebige Benutzer bzw. Gruppen an. Da keine Zugriffskontrolllisteneinträge für owner@ bzw. group@ existieren, die die Zugriffsrechte für Eigentümer und Gruppen überschreiben könnten, werden die Berechtigungs-Bits auf 666 gesetzt.

Im folgenden Beispiel wird die vorhandene Zugriffskontrollliste mit Leseberechtigungen für den Benutzer gozer ersetzt.

# chmod A=user:gozer:read_data:allow file.3
# ls -v file.3
# ls -v file.3
----------+  1 root     root       27482 Jun 23 15:14 file.3
     0:user:gozer:read_data:allow

In diesem Beispiel werden die Dateizugriffsrechte mit 000 berechnet, da für owner@, group@ bzw. everyone@ keine Zugriffskontrolllisteneinträge vorhanden sind, die die herkömmlichen Berechtigungskomponenten einer Datei repräsentieren. Der Dateieigentümer kann dieses Problem durch Zurücksetzen der Zugriffsrechte (und der Zugriffskontrollliste) wie folgt beheben:

# chmod 655 file.3
# ls -v file.3
-rw-r-xr-x   1 root     root       27482 Jun 23 15:14 file.3
     0:owner@:execute:deny
     1:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     2:group@:read_data/read_xattr/execute/read_attributes/read_acl
         /synchronize:allow
     3:everyone@:read_data/read_xattr/execute/read_attributes/read_acl
         /synchronize:allow

Beispiel 8-4 Wiederherstellen gewöhnlicher Zugriffskontrolllisten an ZFS-Dateien

Mit dem Befehl chmod können Sie alle komplexen Zugriffskontrolllisten einer Datei bzw. eines Verzeichnisses entfernen.

Im folgenden Beispiel besitzt test5.dir zwei komplexe Zugriffskontrolleinträge.

# ls -dv test5.dir
drwxr-xr-x   2 root     root           2 Jun 23 15:17 test5.dir
     0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     1:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     2:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Im folgenden Beispiel werden die komplexen Zugriffsteuerungslisten für die Benutzer gozer und lp entfernt. Die verbleibende Zugriffskontrollliste enthält die Standardwerte owner@, group@ und everyone@.

# chmod A- test5.dir
# ls -dv test5.dir
drwxr-xr-x   2 root     root           2 Jun 23 15:17 test5.dir
     0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     1:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     2:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Festlegen der Vererbung von Zugriffskontrolllisten an ZFS-Dateien im ausführlichen Format

Sie können festlegen, ob Zugriffsteuerungslisten von Dateien und Verzeichnissen vererbt werden sollen oder nicht. Standardmäßig werden Zugriffskontrolllisten nicht weitergegeben. Wenn Sie für ein Verzeichnis eine komplexe Zugriffskontrollliste setzen, wird diese nicht an untergeordnete Verzeichnisse vererbt. Sie müssen die Vererbung einer Zugriffskontrollliste für Dateien oder Verzeichnisse explizit angeben.

Die Eigenschaft aclinherit kann in einem Datensystem global gesetzt werden. Standardmäßig ist aclinherit auf restricted gesetzt.

Weitere Informationen dazu finden Sie in Vererbung von Zugriffskontrolllisten.

Beispiel 8-5 Gewähren der Standardvererbung von Zugriffskontrolllisten

Standardmäßig werden Zugriffskontrolllisten nicht durch eine Verzeichnisstruktur weitergegeben.

Im folgenden Beispiel wird ein komplexer Zugriffskontrolleintrag mit den Zugriffsrechten read_data/write_data/execute für den Benutzer gozer und das·Verzeichnis test.dir gesetzt.

# chmod A+user:gozer:read_data/write_data/execute:allow test.dir
# ls -dv test.dir
drwxr-xr-x+  2 root     root           2 Jun 23 15:18 test.dir
     0:user:gozer:list_directory/read_data/add_file/write_data/execute:allow
     1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     2:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Beim Erstellen eines Unterverzeichnisses in test.dir wird der Zugriffskontrolleintrag für den Benutzer gozer nicht weitergegeben. Der Benutzer gozer hätte nur dann Zugriff auf das Unterverzeichnis sub.dir, wenn ihm die Berechtigungen für sub.dir Zugriff als Dateieigentümer, Gruppenmitglied oder everyone@ gewähren würden.

# mkdir test.dir/sub.dir
# ls -dv test.dir/sub.dir
drwxr-xr-x   2 root     root           2 Jun 23 15:19 test.dir/sub.dir
     0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     1:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     2:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Beispiel 8-6 Gewähren der Vererbung von Zugriffskontrolllisten an Dateien und Verzeichnissen

In dieser Beispielfolge sind die Zugriffskontrolleinträge für Dateien und Verzeichnisse aufgeführt, die beim Setzen des Flags file_inherit angewendet werden.

Im folgenden Beispiel werden die Zugriffsrechte read_data/write_data für den Benutzer gozer des Verzeichnisses test2.dir hinzugefügt, sodass dieser Benutzer Leseberechtigung für neu erstellte Dateien besitzt.

# chmod A+user:gozer:read_data/write_data:file_inherit:allow test2.dir
# ls -dv test2.dir
drwxr-xr-x+  2 root     root           2 Jun 23 15:20 test2.dir
     0:user:gozer:read_data/write_data:file_inherit:allow
     1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     2:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Im folgenden Beispiel werden die Zugriffsrechte des Benutzers gozer auf die neu erstellte Datei test2.dir/file.2 angewendet. Durch die gewährte Zugriffskontrolllisten-Vererbung read_data:file_inherit:allow hat der Benutzer gozer Leseberechtigung für den Inhalt neu erstellter Dateien.

# touch test2.dir/file.2
# ls -v test2.dir/file.2
-rw-r--r--+  1 root     root           0 Jun 23 15:21 test2.dir/file.2
     0:user:gozer:read_data:allow
     1:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
     3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow

Da die Eigenschaft aclinherit für dieses Dateisystem auf den Standardwert restricted gesetzt ist, hat der Benutzer gozer für die Datei file.2 nicht das Zugriffsrecht write_data, da es die Gruppenberechtigung der Datei nicht zulässt.

Bitte beachten Sie, dass das Zugriffsrecht inherit_only, das beim Setzen der Flags file_inherit bzw. dir_inherit angewendet wird, zum Weitergeben der Zugriffskontrollliste durch die Verzeichnisstruktur dient. Somit werden dem Benutzer gozer nur Zugriffsrechte für everyone@ gewährt bzw. verweigert, wenn er nicht Eigentümer der betreffenden Datei ist bzw. nicht zur Eigentümergruppe gehört. Beispiel:

# mkdir test2.dir/subdir.2
# ls -dv test2.dir/subdir.2
drwxr-xr-x+  2 root     root           2 Jun 23 15:21 test2.dir/subdir.2
     0:user:gozer:list_directory/read_data/add_file/write_data:file_inherit
         /inherit_only:allow
     1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     2:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

In der folgenden Beispielfolge sind die Zugriffskontrolllisten für Dateien und Verzeichnisse aufgeführt, die beim Setzen des Flags file_inherit bzw. dir_inherit angewendet werden.

Im folgenden Beispiel werden dem Benutzer gozer Lese-, Schreib- und Ausführungsberechtigungen gewährt, die für neu erstellte Dateien und Verzeichnisse vererbt wurden.

# chmod A+user:gozer:read_data/write_data/execute:file_inherit/dir_inherit:allow test3.dir
# ls -dv test3.dir
drwxr-xr-x+  2 root     root           2 Jun 23 15:22 test3.dir
     0:user:gozer:list_directory/read_data/add_file/write_data/execute
         :file_inherit/dir_inherit:allow
     1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     2:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
# touch test3.dir/file.3
# ls -v test3.dir/file.3
-rw-r--r--+  1 root     root           0 Jun 23 15:25 test3.dir/file.3
     0:user:gozer:read_data:allow
     1:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
     3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow
# mkdir test3.dir/subdir.1
# ls -dv test3.dir/subdir.1
drwxr-xr-x+  2 root     root           2 Jun 23 15:26 test3.dir/subdir.1
     0:user:gozer:list_directory/read_data/execute:file_inherit/dir_inherit
         :allow
     1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     2:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Da die Zugriffsrecht-Bits des übergeordneten Verzeichnisses für group@ und everyone@ Schreib- und Ausführungsberechtigungen verweigern, wird in diesem Beispiel dem Benutzer gozer ebenfalls die Schreib- und Ausführungsberechtigung verweigert. Der Standardwert der Eigenschaft aclinherit ist restricted, was bedeutet, dass die Zugriffsrechte write_data und execute nicht vererbt werden.

Im folgenden Beispiel werden dem Benutzer gozer Lese-, Schreib- und Ausführungsberechtigungen gewährt, die für neu erstellte Dateien und Verzeichnisse vererbt wurden, aber nicht an die untergeordneten Dateien des Verzeichnisses weitergegeben werden.

# chmod A+user:gozer:read_data/write_data/execute:file_inherit/no_propagate:allow test4.dir
# ls -dv test4.dir
drwxr-xr-x+  2 root     root           2 Jun 23 15:27 test4.dir
     0:user:gozer:list_directory/read_data/add_file/write_data/execute
         :file_inherit/no_propagate:allow
     1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     2:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Wie das folgende Beispiel zeigt, werden beim Erstellen eines neuen Unterverzeichnisses die Zugriffsrechte read_data/write_data/execute für den Benutzer gozer nicht an das neue Verzeichnis sub4.dir weitergegeben.

# mkdir test4.dir/sub4.dir
# ls -dv test4.dir/sub4.dir
drwxr-xr-x   2 root     root           2 Jun 23 15:28 test4.dir/sub4.dir
     0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     1:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     2:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Wie das folgende Beispiel zeigt, werden die Zugriffsrechte read_data/write_data/execute des Benutzers gozer basierend auf den Rechten der Eigentümergruppe reduziert.

# touch test4.dir/file.4
# ls -v test4.dir/file.4
-rw-r--r--+  1 root     root           0 Jun 23 15:28 test4.dir/file.4
     0:user:gozer:read_data:allow
     1:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
     3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow

Beispiel 8-7 Vererbung von Zugriffskontrolllisten mit dem Zugriffskontrolllistenmodus "Pass Through"

Wenn die Eigenschaft aclinherit des Dateisystems tank/cindy auf passthrough gesetzt ist, erbt der Benutzer gozer die auf test4.dir angewendete Zugriffskontrollliste für die neu erstellte Datei file.4 wie folgt:

# zfs set aclinherit=passthrough tank/cindy
# touch test4.dir/file.4
# ls -v test4.dir/file.4
-rw-r--r--+  1 root     root           0 Jun 23 15:35 test4.dir/file.4
     0:user:gozer:read_data:allow
     1:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
     3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow

Beispiel 8-8 Vererbung von Zugriffskontrolllisten mit dem Zugriffskontrolllistenmodus "Discard"

Wenn die Eigenschaft aclinherit eines Dateisystems auf discard gesetzt ist, können Zugriffskontrolllisten potenziell ignoriert werden, wenn sich die Zugriffsrecht-Bits eines Verzeichnisses ändern. Beispiel:

# zfs set aclinherit=discard tank/cindy
# chmod A+user:gozer:read_data/write_data/execute:dir_inherit:allow test5.dir
# ls -dv test5.dir
drwxr-xr-x+  2 root     root           2 Jun 23 15:58 test5.dir
     0:user:gozer:list_directory/read_data/add_file/write_data/execute
         :dir_inherit:allow
     1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     2:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     3:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Wenn Sie später die Zugriffsrechte an einem Verzeichnis einschränken, gelten die komplexen Zugriffskontrolllisten nicht mehr. Beispiel:

# chmod 744 test5.dir
# ls -dv test5.dir
drwxr--r--   2 root     root           2 Jun 23 15:58 test5.dir
     0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     1:group@:list_directory/read_data/read_xattr/read_attributes/read_acl
         /synchronize:allow
     2:everyone@:list_directory/read_data/read_xattr/read_attributes/read_acl
         /synchronize:allow

Beispiel 8-9 Vererbung von Zugriffskontrolllisten mit dem Zugriffskontrolllistenmodus "Noallow"

Im folgenden Beispiel sind zwei komplexe Zugriffsteuerungslisten mit Dateivererbung gesetzt. Eine Zugriffskontrollliste gewährt die Berechtigung read_data, und die andere Zugriffskontrollliste verweigert die Berechtigung read_data. Dieses Beispiel zeigt auch, wie Sie mit dem gleichen Aufruf des Befehls chmod zwei Zugriffskontrolleinträge angeben können.

# zfs set aclinherit=noallow tank/cindy
# chmod A+user:gozer:read_data:file_inherit:deny,user:lp:read_data:file_inherit:allow test6.dir
# ls -dv test6.dir
drwxr-xr-x+  2 root     root           2 Jun 23 16:00 test6.dir
     0:user:gozer:read_data:file_inherit:deny
     1:user:lp:read_data:file_inherit:allow
     2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory
         /append_data/read_xattr/write_xattr/execute/read_attributes
         /write_attributes/read_acl/write_acl/write_owner/synchronize:allow
     3:group@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow
     4:everyone@:list_directory/read_data/read_xattr/execute/read_attributes
         /read_acl/synchronize:allow

Wie das folgende Beispiel zeigt, gilt beim Erstellen einer neuen Datei die Zugriffskontrollliste, die das Zugriffsrecht read_data gewährt, nicht mehr.

# touch test6.dir/file.6
# ls -v test6.dir/file.6
-rw-r--r--+  1 root     root           0 Jun 15 12:19 test6.dir/file.6
     0:user:gozer:read_data:inherited:deny
     1:owner@:read_data/write_data/append_data/read_xattr/write_xattr
         /read_attributes/write_attributes/read_acl/write_acl/write_owner
         /synchronize:allow
     2:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow
     3:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize
         :allow