zfs allow コマンドを使用して、ZFS データセットに対するアクセス権を root 以外のユーザーに次の方法で委任できます。
個別のアクセス権をユーザー、グループ、または全員に委任できます。
個別のアクセス権の集まりを「アクセス権セット」としてユーザー、グループ、または全員に委任できます。
アクセス権は、現在のデータセットだけにローカルで委任するか、現在のデータセットのすべての子孫に委任することができます。
次の表では、委任できる操作と、委任された操作の実行に必要な依存するアクセス権について説明します。
アクセス権 (サブコマンド) |
説明 |
依存関係 |
---|---|---|
allow |
所有しているアクセス権を別のユーザーに付与するアクセス権。 |
許可しようとしているアクセス権自体を持っていることも必要です。 |
クローン |
データセットのスナップショットのいずれかを複製するアクセス権。 |
元のファイルシステムで create アクセス権と mount アクセス権を持っていることも必要です。 |
create |
子孫のデータセットを作成するアクセス権。 |
mount アクセス権を持っていることも必要です。 |
destroy |
データセットを破棄するアクセス権。 |
mount アクセス権を持っていることも必要です。 |
mount |
データセットのマウントとマウント解除、およびボリュームのデバイスリンクの作成と破棄を行うアクセス権。 | |
promote |
クローンをデータセットに昇格させるアクセス権。 |
元のファイルシステムで mount アクセス権と promote アクセス権を持っていることも必要です。 |
receive |
zfs receive コマンドで子孫のファイルシステムを作成するアクセス権。 |
mount アクセス権と create アクセス権を持っていることも必要です。 |
rename |
データセットの名前を変更するアクセス権。 |
新しい親で create アクセス権と mount アクセス権を持っていることも必要です。 |
rollback |
スナップショットをロールバックするアクセス権。 | |
send |
スナップショットストリームを送信するアクセス権。 | |
share |
データセットを共有および共有解除するアクセス権。 | |
snapshot |
データセットのスナップショットを作成するアクセス権。 |
次の一連のアクセス権を委任できますが、アクセス、読み取り、および変更のアクセス権に限定されることがあります。
groupquota
groupused
userprop
userquota
userused
また、次の ZFS プロパティーの管理をルート以外のユーザーに委任できます。
aclinherit
aclmode
atime
canmount
casesensitivity
チェックサム
compression
copies
devices
exec
mountpoint
nbmand
normalization
primarycache
quota
readonly
recordsize
refreservation
reservation
secondarycache
setuid
shareiscsi
sharenfs
sharesmb
snapdir
utf8only
version
volblocksize
volsize
vscan
xattr
zoned
これらのプロパティーの一部は、データセットの作成時にのみ設定できます。これらのプロパティーについては、「ZFS のプロパティーの紹介」を参照してください。
zfs allow -[ldugecs] everyone|user|group[,...] perm|@setname,...] filesystem| volume |
次の zfs allow 構文 (太字) は、アクセス権の委任先を示しています。
zfs allow [-uge]|user|group|everyone [,...] filesystem | volume |
複数のエンティティーをコンマ区切りのリストとして指定できます。-uge オプションが指定されていない場合、引数はキーワード everyone、ユーザー名、最後にグループ名という優先順位で解釈されます。「everyone」という名前のユーザーまたはグループを指定するには、-u オプションまたは -g オプションを使用します。ユーザーと同じ名前のグループを指定するには、-g オプションを使用します。-c オプションは作成時のアクセス権を委任します。
次の zfs allow 構文 (太字) は、アクセス権およびアクセス権セットの指定方法を示しています。
zfs allow [-s] ... perm|@setname [,...] filesystem | volume |
複数のアクセス権をコンマ区切りのリストとして指定できます。アクセス権の名前は、ZFS のサブコマンドおよびプロパティーと同じです。詳細は、前の節を参照してください。
アクセス権を「アクセス権セット」にまとめ、-s オプションで指定できます。アクセス権セットは、指定のファイルシステムとその子孫に対してほかの zfs allow コマンドで使用できます。アクセス権セットは動的に評価されるため、セットに加えられた変更はすぐに更新されます。アクセス権セットは ZFS ファイルシステムと同じ命名要件に従いますが、名前はアットマーク記号 (@) で始まり、64 文字以下の長さでなければなりません。
次の zfs allow 構文 (太字) は、アクセス権の委任方法を示しています。
zfs allow [-ld] ... ... filesystem | volume |
-l オプションは、アクセス権が指定のデータセットだけに許可されることを示します。-d オプションも指定されている場合を除き、子孫には許可されません。-d オプションは、アクセス権が子孫のデータセットだけに許可されることを示します。-l オプションも指定されている場合を除き、このデータセットには許可されません。どちらのオプションも指定されていない場合は、ファイルシステムまたはボリュームおよびそのすべての子孫にアクセス権が許可されます。
以前に委任したアクセス権を zfs unallow コマンドで削除できます。
たとえば、create、destroy、mount、および snapshot アクセス権を次のように委任したとします。
# 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 ------------------------------------------------------------- |
これらのアクセス権を削除するには、次の構文を使用します。
# zfs unallow cindys tank/cindys # zfs allow tank/cindys |