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

9.  Delegierte Oracle Solaris ZFS-Administration

Delegierte ZFS-Administration im Überblick

Deaktivieren von delegierten ZFS-Zugriffsrechten

Delegieren von ZFS-Zugriffsrechten

Delegieren von ZFS-Zugriffsrechten (zfs allow)

Löschen von delegierten ZFS-Zugriffsrechten (zfs unallow)

Delegieren von ZFS-Zugriffsrechten (Beispiele)

Anzeigen von delegierten ZFS-Zugriffsrechten (Beispiele)

Löschen von delegierten ZFS-Zugriffsrechten (Beispiele)

10.  Fortgeschrittene Oracle Solaris ZFS-Themen

11.  Problembehebung und Pool-Wiederherstellung in Oracle Solaris ZFS

A.  Oracle Solaris ZFS-Versionsbeschreibungen

Index

Delegieren von ZFS-Zugriffsrechten (Beispiele)

Beispiel 9-1 Delegieren von Zugriffsrechten an einzelne Benutzer

Wenn Sie die Zugriffsrechte create und mount an einen einzelnen Benutzer delegieren, müssen Sie sich vergewissern, dass dieser über die erforderlichen Zugriffsrechte für den zugrunde liegenden Einhängepunkt verfügt.

Um beispielsweise an den Benutzer mark die Zugriffsrechte create und mount für das Dateisystem tank zu delegieren, legen Sie zuerst die Zugriffsrechte fest:

# chmod A+user:mark:add_subdirectory:fd:allow /tank/home

Anschließend delegieren Sie mit dem Befehl zfs allow die Zugriffsrechte create, destroy und mount. Beispiel:

# zfs allow mark create,destroy,mount tank/home

Jetzt kann der Benutzer mark im Dateisystem tank eigene Dateisysteme anlegen. Beispiel:

# su mark
mark$ zfs create tank/home/mark
mark$ ^D
# su lp
$ zfs create tank/lp
cannot create 'tank/lp': permission denied

Beispiel 9-2 Delegieren der Zugriffsrechte create und destroy an Gruppen

Das folgende Beispiel veranschaulicht, wie ein Dateisystem eingerichtet wird, damit jedes Mitglied der Gruppe staff Dateisysteme unter tank erstellen und einhängen sowie eigene Dateisysteme löschen kann. Die Gruppenmitglieder von staff können jedoch nicht die Dateisysteme anderer Gruppenmitglieder löschen.

# zfs allow staff create,mount tank/home
# zfs allow -c create,destroy tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
        create,destroy
Local+Descendent permissions:
        group staff create,mount
# su cindy
cindy% zfs create tank/home/cindy
cindy% exit
# su mark
mark% zfs create tank/home/mark/data
mark% exit
cindy% zfs destroy tank/home/mark/data
cannot destroy 'tank/home/mark/data': permission denied

Beispiel 9-3 Delegieren von Zugriffsrechten auf der richtigen Ebene der Dateisystemhierarchie

Stellen Sie sicher, dass Sie auf der richtigen Ebene der Dateisystemhierarchie die Zugriffsrechte an die Benutzer delegieren. So werden beispielsweise an den Benutzer mark die Zugriffsrechte create, destroy und mount für das lokale und für die untergeordneten Dateisysteme delegiert. An den Benutzer mark werden lokale Zugriffsrechte zum Erstellen von Schnappschüssen des Dateisystems tank/home, nicht aber des eigenen Dateisystems, delegiert. Das Zugriffsrecht snapshot wurde also nicht auf der richtigen Ebene der Dateisystemhierarchie an ihn delegiert.

# zfs allow -l mark snapshot tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
        create,destroy
Local permissions:
        user mark snapshot
Local+Descendent permissions:
        group staff create,mount
# su mark
mark$ zfs snapshot tank/home@snap1
mark$ zfs snapshot tank/home/mark@snap1
cannot create snapshot 'tank/home/mark@snap1': permission denied

Um an den Benutzer mark Zugriffsrechte für die untergeordnete Ebene zu delegieren, verwenden Sie den Befehl zfs allow mit der Option -d. Beispiel:

# zfs unallow -l mark snapshot tank/home
# zfs allow -d mark snapshot tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
        create,destroy
Descendent permissions:
        user mark snapshot
Local+Descendent permissions:
        group staff create,mount
# su mark
$ zfs snapshot tank/home@snap2
cannot create snapshot 'tank/home@snap2': permission denied
$ zfs snapshot tank/home/mark@snappy

Jetzt kann der Benutzer mark nur Schnappschüsse unterhalb der Dateisystemebene tank/home erstellen.

Beispiel 9-4 Definieren und Anwenden komplexer delegierter Zugriffsrechte

Es können spezifische Zugriffsrechte an Benutzer oder Gruppen delegiert werden. So werden beispielsweise mit dem folgenden zfs allow-Befehl spezifische Zugriffsrechte an die Gruppe staff delegiert. Darüber hinaus werden die Zugriffsrechte destroy und snapshot delegiert, sobald tank/home-Dateisysteme erstellt werden.

# zfs allow staff create,mount tank/home
# zfs allow -c destroy,snapshot tank/home
# zfs allow tank/home
---- Permissions on tank/home ----------------------------------------
Create time permissions:
        create,destroy,snapshot
Local+Descendent permissions:
        group staff create,mount

Da Benutzer mark ein Mitglied der Gruppe staff ist, kann er in tank/home Dateisysteme erstellen. Zusätzlich kann Benutzer mark Schnappschüsse von tank/home/mark2 erstellen, da er über die dafür erforderlichen Zugriffsrechte verfügt. Beispiel:

# su mark
$ zfs create tank/home/mark2
$ zfs allow tank/home/mark2
---- Permissions on tank/home/mark2 ----------------------------------
Local permissions:
        user mark create,destroy,snapshot
---- Permissions on tank/home ----------------------------------------
Create time permissions:
        create,destroy,snapshot
Local+Descendent permissions:
        group staff create,mount

Benutzer mark kann jedoch keine Schnappschüsse in tank/home/mark erstellen, da ihm die Zugriffsrechte hierfür fehlen. Beispiel:

$ zfs snapshot tank/home/mark2@snap1
$ zfs snapshot tank/home/mark@snap1
cannot create snapshot 'tank/home/mark@snap1': permission denied

In diesem Beispiel verfügt der Benutzer mark über das Zugriffsrecht create in seinem Home-Verzeichnis. Er kann also Schnappschüsse erstellen. Dies kann sich bei Dateisystemen als hilfreich erweisen, die per NFS eingehängt werden.

Beispiel 9-5 Definieren und Anwenden von delegierten Zugriffsrechtsätzen für ZFS

Das folgende Beispiel zeigt, wie der Zugriffsrechtsatz @myset erstellt wird und dieser sowie das Zugriffsrecht rename an die Gruppe staff für das Dateisystem tank delegiert werden. Der Benutzer cindy, Mitglied der Gruppe staff, verfügt über die Berechtigung zum Erstellen von Dateisystemen in tank. Benutzer lp verfügt jedoch nicht über die Berechtigung zum Erstellen von Dateisystemen in tank.

# zfs allow -s @myset create,destroy,mount,snapshot,promote,clone,readonly tank
# zfs allow tank
---- Permissions on tank ---------------------------------------------
Permission sets:
        @myset clone,create,destroy,mount,promote,readonly,snapshot
# zfs allow staff @myset,rename tank
# zfs allow tank
---- Permissions on tank ---------------------------------------------
Permission sets:
        @myset clone,create,destroy,mount,promote,readonly,snapshot
Local+Descendent permissions:
        group staff @myset,rename
# chmod A+group:staff:add_subdirectory:fd:allow tank
# su cindy
cindy% zfs create tank/data
cindy% zfs allow tank
---- Permissions on tank ---------------------------------------------
Permission sets:
        @myset clone,create,destroy,mount,promote,readonly,snapshot
Local+Descendent permissions:
        group staff @myset,rename
cindy% ls -l /tank
total 15
drwxr-xr-x   2 cindy   staff          2 Jun 24 10:55 data
cindy% exit
# su lp
$ zfs create tank/lp
cannot create 'tank/lp': permission denied