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
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
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, die die Zugriffsrechte in Kompaktform darstellen, werden in Tabelle 7-2 und Tabelle 7-4 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 , W=write_xattr, R=read_xattr, A=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 (s) ist aktuell 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 (s) ist aktuell 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 (s) ist aktuell nicht implementiert.
Das Kompaktformat von Zugriffskontrolllisten hat gegenüber dem Verbose-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 Verbose-Formats von Zugriffskontrolllisten finden Sie unter Setzen und Anzeigen von Zugriffskontrolllisten an ZFS-Dateien im Verbose-Format.
Beispiel 7-10 Setzen und Anzeigen von Zugriffskontrolllisten im Kompaktformat
Im folgenden Beispiel besitzt file.1 eine gewöhnliche Zugriffssteuerungsliste:
# 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. Beispiel: Wenn Sie die Zugriffsrechte und Vererbungs-Flags 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 Vererbungs-Flags (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 7-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 Zugriffssteuerungsliste, 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 Zugriffssteuerungseinträ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 Zugriffssteuerungsliste in einem anderen Verzeichnis erstellt, wo keine vererbten Zugriffssteuerungseinträ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 7-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.
Beispiel 7-13 Interaktion der Zugriffskontrollliste mit chmod-Vorgängen in ZFS-Dateien
In den folgenden Beispielen wird dargestellt, wie sich bestimmte aclmode- und aclinherit-Eigenschaftswerte auf die Interaktion der vorhandenen Zugriffskontrolllisten mit einem chmod-Vorgang auswirken, der Datei- oder Verzeichniszugriffsrechte ändert, um vorhandene Zugriffsrechte der Zugriffskontrolllisten zu verringern oder zu erweitern, damit sie konsistent mit der Eigentümergruppe sind.
In diesem Beispiel ist die aclmode-Eigenschaft auf mask und die aclinherit-Eigenschaft auf restricted gesetzt. Die Zugriffsrechte der Zugriffskontrollliste in diesem Beispiel werden in Kompaktform angezeigt, in der die Änderung der Zugriffsrechte einfacher dargestellt werden kann.
Die ursprüngliche Datei- und Gruppeneigentümerschaft und die Zugriffsrechte der Zugriffskontrollliste sind:
# zfs set aclmode=mask pond/whoville # zfs set aclinherit=restricted pond/whoville # ls -lV file.1 -rwxrwx---+ 1 root root 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:rw-p--aARWc---:-------:allow group:staff:rw-p--aARWc---:-------:allow owner@:rwxp--aARWcCos:-------:allow group@:rwxp--aARWc--s:-------:allow everyone@:------a-R-c--s:-------:allow
Ein chown-Vorgang ändert die Dateieigentümerschaft für file.1, und die Ausgabe wird jetzt für den Eigentümer angezeigt, amy. Beispiel:
# chown amy:staff file.1 # su - amy $ ls -lV file.1 -rwxrwx---+ 1 amy staff 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:rw-p--aARWc---:-------:allow group:staff:rw-p--aARWc---:-------:allow owner@:rwxp--aARWcCos:-------:allow group@:rwxp--aARWc--s:-------:allow everyone@:------a-R-c--s:-------:allow
Der folgende chmod-Vorgang ändert die Zugriffsrechte in einen restriktiveren Modus. In diesem Beispiel überschreiten die geänderten Zugriffsrechte der sysadmin- und staff-Gruppe die Zugriffsrechte der Eigentümergruppe nicht.
$ chmod 640 file.1 $ ls -lV file.1 -rw-r-----+ 1 amy staff 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:r-----a-R-c---:-------:allow group:staff:r-----a-R-c---:-------:allow owner@:rw-p--aARWcCos:-------:allow group@:r-----a-R-c--s:-------:allow everyone@:------a-R-c--s:-------:allow
Der folgende chmod-Vorgang ändert die Zugriffsrechte in einen weniger restriktiven Modus. In diesem Beispiel werden die geänderten Zugriffsrechte der sysadmin- und staff-Gruppe auf die Zugriffsrechte der Eigentümergruppe zurückgesetzt.
$ chmod 770 file.1 $ ls -lV file.1 -rwxrwx---+ 1 amy staff 206695 Aug 30 16:03 file.1 user:amy:r-----a-R-c---:-------:allow user:rory:r-----a-R-c---:-------:allow group:sysadmin:rw-p--aARWc---:-------:allow group:staff:rw-p--aARWc---:-------:allow owner@:rwxp--aARWcCos:-------:allow group@:rwxp--aARWc--s:-------:allow everyone@:------a-R-c--s:-------:allow