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
9. Delegierte Oracle Solaris ZFS-Administration
10. Fortgeschrittene Oracle Solaris ZFS-Themen
11. Problembehebung und Pool-Wiederherstellung in Oracle Solaris ZFS
Sie können Zugriffsrechte an ZFS-Dateien in einem Kompaktformat setzen und anzeigen, das für die einzelnen Berechtigungen 14 eindeutige Buchstaben verwendet. Die Buchstaben zur kompakten Darstellung der Zugriffsrechte sind in Tabelle 8-2 und Tabelle 8-3 aufgeführt.
Kompaktausgaben von Zugriffskontrolllisten für Dateien und Verzeichnisse 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 owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
Die Bedeutung dieser Kompaktausgabe ist wie folgt:
Der Eigentümer kann den Dateiinhalt lesen und ändern ( rw=read_data/write_data), (p= append_data). Der Eigentümer kann darüber hinaus auch Dateiattribute wie z. B. Zeitstempel, erweiterte Attribute und Zugriffskontrolllisten ändern (a=read_attributes , A=write_xattr, R=read_xattr, W=write_attributes, c=read_acl, C=write_acl). Zusätzlich dazu kann der Eigentümer die Datei-Eigentümerschaft ändern (o=write_owner).
Das Zugriffsrecht synchronize ist zurzeit nicht implementiert.
Der Gruppe wird die Berechtigung zum Lesen der Datei (r= read_data) bzw. der Dateiattribute (a=read_attributes , R=read_xattr, c= read_acl) gewährt.
Das Zugriffsrecht synchronize ist zurzeit nicht implementiert.
Allen übrigen Benutzern und Gruppen wird die Berechtigung zum Lesen der Datei bzw. der Dateiattribute gewährt (r=read_data, a=append_data, R=read_xattr , c=read_acl und s= synchronize).
Das Zugriffsrecht synchronize ist zurzeit nicht implementiert.
Das Kompaktformat von Zugriffskontrolllisten hat gegenüber dem ausführlichen Format folgende Vorteile:
Zugriffsrechte können für den Befehl chmod als positionale Argumente angegeben werden.
Der Bindestrich (-), der für die Verweigerung von Zugriffsrechten steht, kann weggelassen werden, und es müssen nur die erforderlichen Buchstaben angegeben werden.
Zugriffsrechte und Vererbungsflags werden in der gleichen Weise gesetzt.
Informationen zur Verwendung des ausführlichen Formats von Zugriffskontrolllisten finden Sie unter Setzen und Anzeigen von Zugriffskontrolllisten an ZFS-Dateien im ausführlichen Format.
Beispiel 8-10 Setzen und Anzeigen von Zugriffskontrolllisten im Kompaktformat
Im folgenden Beispiel besitzt file.1 eine gewöhnliche Zugriffskontrollliste:
# ls -V file.1 -rw-r--r-- 1 root root 206663 Jun 23 15:06 file.1 owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
In diesem Beispiel werden die Berechtigungen read_data/execute für den Benutzer gozer an der Datei file.1 hinzugefügt.
# chmod A+user:gozer:rx:allow file.1 # ls -V file.1 -rw-r--r--+ 1 root root 206663 Jun 23 15:06 file.1 user:gozer:r-x-----------:------:allow owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
Im folgenden Beispiel werden dem Benutzer gozer unter Verwendung des Zugriffskontrolllisten-Kompaktformats Lese-, Schreib- und Ausführungsberechtigungen gewährt, die für neu erstellte Dateien und Verzeichnisse vererbt wurden.
# chmod A+user:gozer:rwx:fd:allow dir.2 # ls -dV dir.2 drwxr-xr-x+ 2 root root 2 Jun 23 16:04 dir.2 user:gozer:rwx-----------:fd----:allow owner@:rwxp--aARWcCos:------:allow group@:r-x---a-R-c--s:------:allow everyone@:r-x---a-R-c--s:------:allow
Sie können Zugriffsrechte und Vererbungsflags auch aus der Ausgabe des Befehls ls - V in das Kompaktformat des Befehls chmod kopieren. Wenn Sie beispielsweise die Zugriffsrechte und Vererbungsflags von dir.2 für den Benutzer gozer auf den Benutzer cindy an dir.2 übertragen möchten, müssen Sie die entsprechenden Zugriffsrechte und Vererbungsflags (rwx-----------:fd----:allow) nur in die Befehlszeile des Befehls chmod kopieren. Beispiel:
# chmod A+user:cindy:rwx-----------:fd----:allow dir.2 # ls -dV dir.2 drwxr-xr-x+ 2 root root 2 Jun 23 16:04 dir.2 user:cindy:rwx-----------:fd----:allow user:gozer:rwx-----------:fd----:allow owner@:rwxp--aARWcCos:------:allow group@:r-x---a-R-c--s:------:allow everyone@:r-x---a-R-c--s:------:allow
Beispiel 8-11 Vererbung von Zugriffskontrolllisten mit dem Zugriffskontrolllisten-Vererbungsmodus "Pass Through"
Wenn die Eigenschaft aclinherit des Dateisystems auf passthrough gesetzt ist, werden alle vererbbaren Zugriffskontrolllisten ohne jegliche Änderung der Einträge bei der Vererbung weitergegeben. Ist diese Eigenschaft auf passthrough gesetzt, werden Dateien mit einem Berechtigungsmodus erstellt, der vom vererbbaren Zugriffskontrolleintrag bestimmt wird. Wenn keine den Berechtigungsmodus betreffenden vererbbaren Zugriffskontrolleinträge vorhanden sind, wird ein mit der Forderung der Anwendung vereinbarter Berechtigungsmodus gesetzt.
In den folgenden Beispielen wird die Vererbung von Berechtigungs-Bits durch das Setzen des Modus aclinherit auf passthrough in kompakter Zugriffskontrolllistensyntax veranschaulicht.
In diesem Beispiel wird eine Zugriffskontrollliste für test1.dir gesetzt, um die die Vererbung zu erzwingen. Durch die Syntax wird für neu erstellte Dateien ein Zugriffskontrolleintrag owner@, group@ und everyone@ erstellt. Neu erstellte Verzeichnisse erben die Zugriffskontrolleinträge @owner, group@ und everyone@.
# zfs set aclinherit=passthrough tank/cindy # pwd /tank/cindy # mkdir test1.dir
# chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow,everyone@::fd:allow test1.dir # ls -Vd test1.dir drwxrwx---+ 2 root root 2 Jun 23 16:10 test1.dir owner@:rwxpdDaARWcCos:fd----:allow group@:rwxp----------:fd----:allow everyone@:--------------:fd----:allow
In diesem Beispiel erbt eine neu erstellte Datei die Zugriffskontrollliste, die für die Weitergabe an neu erstellte Dateien angegeben wurde.
# cd test1.dir # touch file.1 # ls -V file.1 -rwxrwx---+ 1 root root 0 Jun 23 16:11 file.1 owner@:rwxpdDaARWcCos:------:allow group@:rwxp----------:------:allow everyone@:--------------:------:allow
In diesem Beispiel erbt ein neu erstelltes Verzeichnis sowohl die Zugriffskontrolleinträge, die den Zugriff auf dieses Verzeichnis regeln, als auch diejenigen für die künftige Weitergabe an untergeordnete Objekte des neu erstellten Verzeichnisses.
# mkdir subdir.1 # ls -dV subdir.1 drwxrwx---+ 2 root root 2 Jun 23 16:13 subdir.1 owner@:rwxpdDaARWcCos:fd----:allow group@:rwxp----------:fd----:allow everyone@:--------------:fd----:allow
Die Einträge fd---- gelten für die Weitergabe der Vererbung und werden bei der Zugriffskontrolle nicht berücksichtigt. In diesem Beispiel wird eine Datei mit einer gewöhnlichen Zugriffskontrollliste in einem anderen Verzeichnis erstellt, wo keine vererbten Zugriffskontrolleinträge vorhanden sind.
# cd /tank/cindy # mkdir test2.dir # cd test2.dir # touch file.2 # ls -V file.2 -rw-r--r-- 1 root root 0 Jun 23 16:15 file.2 owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
Beispiel 8-12 Vererbung von Zugriffskontrolllisten mit dem Zugriffskontrolllisten-Vererbungsmodus "Pass Through-X"
Ist aclinherit=passthrough-x aktiviert, so werden Dateien mit der Ausführungsberechtigung (x) für owner@, group@ oder everyone@ erstellt, allerdings nur, wenn die Ausführungsberechtigung im Dateierstellungsmodus und in einem vererbbaren Zugriffskontrolleintrag, der den Modus betrifft, eingestellt ist.
Das folgende Beispiel zeigt, wie die Ausführungsberechtigung durch Einstellen des Modus aclinherit auf passthrough-x vererbt wird.
# zfs set aclinherit=passthrough-x tank/cindy
Die folgende Zugriffskontrollliste ist auf /tank/cindy/test1.dir gesetzt, um ausführbare Zugriffskontrolllisten-Vererbung für Dateien für owner@ bereitzustellen.
# chmod A=owner@:rwxpcCosRrWaAdD:fd:allow,group@:rwxp:fd:allow,everyone@::fd:allow test1.dir # ls -Vd test1.dir drwxrwx---+ 2 root root 2 Jun 23 16:17 test1.dir owner@:rwxpdDaARWcCos:fd----:allow group@:rwxp----------:fd----:allow everyone@:--------------:fd----:allow
Es wird eine Datei (file1) mit den angeforderten Zugriffsrechten 0666 erstellt. Die resultierenden Zugriffsrechte sind 0660. Die Ausführungsberechtigung wurde nicht vererbt, weil der Erstellungsmodus dies nicht fordert.
# touch test1.dir/file1 # ls -V test1.dir/file1 -rw-rw----+ 1 root root 0 Jun 23 16:18 test1.dir/file1 owner@:rw-pdDaARWcCos:------:allow group@:rw-p----------:------:allow everyone@:--------------:------:allow
Als Nächstes wird das Executable t unter Verwendung des Compilers cc im Verzeichnis testdir erstellt.
# cc -o t t.c # ls -V t -rwxrwx---+ 1 root root 7396 Dec 3 15:19 t owner@:rwxpdDaARWcCos:------:allow group@:rwxp----------:------:allow everyone@:--------------:------:allow
Die resultierenden Zugriffsrechte sind 0770, weil cc die Zugriffsrechte 0777 gefordert hat, weswegen die Ausführungsberechtigung von den Einträgen owner@, group@ und everyone@ geerbt wurde.