Oracle Solaris ZFS-Administrationshandbuch

Delegieren von ZFS-Zugriffsrechten

Mit dem Befehl zfs allow können Sie Nicht-Root-Benutzern Zugriffsrechte für ZFS-Datasets gewähren. Dafür stehen folgende Möglichkeiten zur Verfügung:

In der folgenden Tabelle finden Sie eine Beschreibung der delegierbaren Vorgänge und aller abhängigen Zugriffsrechte, die zum Durchführen des delegierten Vorgangs erforderlich sind.

Zugriffsrecht (Unterbefehl) 

Beschreibung 

Abhängigkeiten 

allow

Die Fähigkeit, eigene Zugriffsrechte an andere Benutzer weiterzugeben. 

Das Zugriffsrecht, das gewährt werden soll, muss ebenfalls vorhanden sein. 

clone

Die Fähigkeit, beliebige Snapshots des Datasets zu klonen.  

Die Fähigkeiten create und mount müssen im ursprünglichen Dateisystem vorhanden sein.

create

Die Fähigkeit, untergeordnete Datasets zu erstellen. 

Die Fähigkeit mount muss ebenfalls vorhanden sein.

destroy

Die Fähigkeit, ein Dataset zu löschen. 

Die Fähigkeit mount muss ebenfalls vorhanden sein.

Einhängen

Die Fähigkeit, ein Dataset ein- und auszuhängen und Geräteverknüpfungen für Volumes zu erstellen oder zu löschen.  

 

promote

Die Fähigkeit, einen Klon zu einem Dataset zu machen.  

Die Fähigkeiten mount und promote müssen im ursprünglichen Dateisystem vorhanden sein.

receive

Die Fähigkeit, mit dem Befehl zfs receive untergeordnete Dateisysteme zu erstellen.

Die Fähigkeiten mount und create müssen ebenfalls vorhanden sein.

rename

Die Fähigkeit, ein Dataset umzubenennen. 

Die Fähigkeiten create und mount müssen im neuen übergeordneten Objekt vorhanden sein.

rollback

Die Fähigkeit, frühere Zustände aus einem Snapshot wiederherzustellen.  

 

send

Die Fähigkeit, einen Snapshot-Datenstrom zu senden.  

 

share

Die Fähigkeit, ein Dataset freizugeben und zu sperren.  

 

snapshot

Die Fähigkeit, Snapshots von Datasets herzustellen.  

 

Sie können die folgenden Zugriffsrechte erteilen, wobei diese auf Zugriff, Lesezugriff oder Bearbeitungszugriff beschränkt sein können:

Darüber hinaus können Nicht-Root-Benutzern folgende ZFS-Eigenschaften delegiert werden.

Einige dieser Eigenschaften können nur bei der Erstellung des Datasets gesetzt werden. Eine Beschreibung dieser Eigenschaften finden Sie unter ZFS-Eigenschaften.

Delegieren von ZFS-Zugriffsrechten (zfs allow)

Die Syntax für zfs allow lautet:


zfs allow -[ldugecs] everyone|user|group[,...] perm|@setname,...] filesystem| volume

Die folgende zfs allow-Syntax (fett gedruckt) gibt an, wem die Zugriffsrechte übertragen werden:


zfs allow [-uge]|user|group|everyone [,...] filesystem | volume

Mehrere Entitäten können durch Komma getrennt als Liste angegeben werden. Wenn keine -uge-Option angegeben ist, werden die Argumente der Reihenfolge nach als das Schlüsselwort everyone, dann als Benutzername und schließlich als Gruppenname interpretiert. Um einen Benutzer oder eine Gruppe mit dem Namen „everyone “anzugeben, verwenden Sie die Option -u bzw. -g. Mit der Option -g geben Sie eine Gruppe mit demselben Namen eines Benutzers an. Die Option -c gewährt „Create-time“-Zugriffsrechte.

Die folgende zfs allow-Syntax (fett gedruckt) veranschaulicht, wie Zugriffsrechte und Zugriffsrechtsätze angegeben werden:


zfs allow [-s] ... perm|@setname [,...] filesystem | volume

Mehrere Zugriffsrechte können durch Komma getrennt als Liste angegeben werden. Die Namen der Zugriffsrechte sind mit den ZFS-Unterbefehlen und -Eigenschaften identisch. Weitere Informationen finden Sie im vorherigen Abschnitt.

Mehrere Zugriffsrechte lassen sich in Zugriffsrechtsätzen zusammenfassen. Sie werden durch die Option -s gekennzeichnet. Zugriffsrechtsätze können von anderen zfs allow-Befehlen für das angegebene Dateisystem und dessen untergeordnete Objekte verwendet werden. Zugriffsrechtsätze werden dynamisch ausgewertet, sodass Änderungen an einem Satz unverzüglich aktualisiert werden. Für Zugriffsrechtsätze gelten dieselben Benennungsregeln wie für ZFS-Dateisysteme, wobei der Name allerdings mit dem Zeichen @ beginnen muss und nicht mehr als 64 Zeichen lang sein darf.

Die folgende zfs allow-Syntax (fett gedruckt) gibt an, wie die Zugriffsrechte übertragen werden:


zfs allow [-ld] ... ... filesystem | volume

Die Option -l gibt an, dass das Zugriffsrecht für das angegebene Dataset, nicht aber für dessen untergeordnete Objekte gewährt wird, es sei denn, es wurde auch die Option -d angegeben. Die Option -d bedeutet, dass das Zugriffsrecht nicht für dieses Dataset, sondern für dessen untergeordnete Objekte gewährt wird, es sei denn, es wurde auch die Option -l angegeben. Wenn keine der Optionen -ld angegeben wird, gelten die Zugriffsrechte für das Dateisystem bzw. Volume und alle untergeordneten Objekte.

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

Mit dem Befehl zfs unallow können Sie zuvor erteilte Zugriffsrechte wieder löschen.

Gehen wir beispielsweise davon aus, dass Sie die Zugriffsrechte create, destroy, mount und snapshot wie folgt delegiert haben:


# zfs allow cindys create,destroy,mount,snapshot tank/cindys
# zfs allow tank/cindys
-------------------------------------------------------------
Local+Descendent permissions on (tank/cindys)
        user cindys create,destroy,mount,snapshot
-------------------------------------------------------------

Zum Entziehen dieser Zugriffsrechte müssen Sie die folgende Syntax verwenden:


# zfs unallow cindys tank/cindys
# zfs allow tank/cindys