Navigationslinks überspringen | |
Druckansicht beenden | |
![]() |
Oracle Solaris ZFS-Administrationshandbuch Oracle Solaris 10 1/13 Information Library (Deutsch) |
1. Oracle Solaris ZFS-Dateisystem (Einführung)
2. Erste Schritte mit Oracle Solaris ZFS
3. Verwalten von Oracle Solaris ZFS-Speicher-Pools
4. Installieren und Booten eines Oracle Solaris ZFS-Root-Dateisystems
5. Verwalten von Oracle Solaris ZFS-Dateisystemen
6. Arbeiten mit Oracle Solaris ZFS-Schnappschüssen und -Klonen
7. Schützen von Oracle Solaris ZFS-Dateien mit Zugriffskontrolllisten und Attributen
Solaris-Modell zu Zugriffskontrolllisten
Syntaxbeschreibungen zum Setzen von Zugriffskontrolllisten
Vererbung von Zugriffskontrolllisten
Eigenschaften von Zugriffskontrolllisten
Setzen von Zugriffskontrolllisten an ZFS-Dateien
Setzen und Anzeigen von Zugriffskontrolllisten an ZFS-Dateien im Verbose-Format
Festlegen der Vererbung von Zugriffskontrolllisten an ZFS-Dateien im Verbose-Format
Setzen und Anzeigen von Zugriffskontrolllisten an ZFS-Dateien im Kompaktformat
8. Delegierte Oracle Solaris ZFS-Administration
9. Fortgeschrittene Oracle Solaris ZFS-Themen
10. Problembehebung und Pool-Wiederherstellung in Oracle Solaris ZFS
11. Empfohlene Oracle Solaris ZFS-Vorgehensweisen
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.
Hinzufügen von Zugriffskontrolllisten-Eintragstypen
Hinzufügen eines Zugriffskontrolllisteneintrags für einen Benutzer
% chmod A+acl-specification filename
Hinzufügen eines Zugriffskontrolllisteneintrags nach Index-ID
% chmod Aindex-ID+acl-specification filename
Mit dieser Syntax wird der neue Zugriffskontrolllisteneintrag an der entsprechenden Index-ID eingefügt.
Ersetzen eines Zugriffskontrolllisteneintrags
% chmod A=acl-specification filename
% chmod Aindex-ID=acl-specification filename
Entfernen von Zugriffskontrolllisteneinträgen
Entfernen eines Zugriffskontrolllisteneintrags nach Index-ID
% chmod Aindex-ID- filename
Entfernen eines Zugriffskontrolllisteneintrags nach Benutzername
% chmod A-acl-specification filename
Entfernen aller komplexen Zugriffskontrolleinträge aus einer Datei
% chmod A- filename
Ausführliche Informationen zu Zugriffskontrolllisten werden mithilfe des Befehls ls -v angezeigt. Beispiel:
# ls -v file.1 -rw-r--r-- 1 root root 206695 Jul 20 13:43 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 7-1 Ändern gewöhnlicher Zugriffskontrolllisten an ZFS-Dateien
Dieser Abschnitt enthält Beispiele für die Festlegung und Anzeige von einfachen Zugriffskontrolllisten, d.h. nur die herkömmlichen UNIX-Einträge "user", "group" und "other" sind in der Zugriffskontrollliste enthalten.
Im folgenden Beispiel besitzt Datei.1 eine gewöhnliche Zugriffskontrollliste:
# ls -v file.1 -rw-r--r-- 1 root root 206695 Jul 20 13:43 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 206695 Jul 20 13:43 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 206695 Jul 20 13:43 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 7-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 Jul 20 14:23 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/delete_child /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 Jul 20 14:23 test.dir 0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/delete_child /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 7-3 Interaktion von Zugriffskontrolllisten mit Berechtigungen an ZFS-Dateien
Die folgenden 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 2693 Jul 20 14:26 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 (allow) Zugriffskontrolllistenberechtigungen vom Benutzer everyone@ entfernt.
# chmod A2- file.2 # ls -v file.2 -rw-r----- 1 root root 2693 Jul 20 14:26 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 Zugriffssteuerungslisten-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 2440 Jul 20 14:28 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 ----------+ 1 root root 2440 Jul 20 14:28 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 2440 Jul 20 14:28 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 7-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 Jul 20 14:32 test5.dir 0:user:lp:read_data:file_inherit:deny 1:user:gozer:read_data:file_inherit:deny 2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/delete_child /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
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 Jul 20 14:32 test5.dir 0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/delete_child /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
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 bzw. 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 7-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 Jul 20 14:53 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/delete_child /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 Jul 20 14:54 test.dir/sub.dir 0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/delete_child /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 7-6 Gewähren der Vererbung von Zugriffskontrolllisten an Dateien und Verzeichnissen
In dieser Beispielfolge sind die Zugriffssteuerungslisten 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 Jul 20 14:55 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/delete_child /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 Jul 20 14:56 test2.dir/file.2 0:user:gozer:read_data:inherited: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 Jul 20 15:00 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/delete_child /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 den obigen Beispielen 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 untergeordnete 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--r--+ 2 root root 2 Mar 1 12:11 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/delete_child /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 2:group@:list_directory/read_data/read_xattr/read_attributes/read_acl /synchronize:allow 3:everyone@:list_directory/read_data/read_xattr/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 7-7 Vererbung von Zugriffskontrolllisten mit dem Zugriffskontrolllisten-Vererbungsmodus "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.5 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 7-8 Vererbung von Zugriffskontrolllisten mit dem Zugriffskontrolllistenvererbungsmodus "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 Jul 20 14:18 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/delete_child /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 Jul 20 14:18 test5.dir 0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/read_xattr/write_xattr/execute/delete_child /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 7-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 Jul 20 14:22 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/delete_child /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