zfs_allow - 特権のないユーザーに ZFS ファイルシステム管理アクセス権を委任する
zfs help subcommand | help | property property-name | permission
zfs help -l properties
zfs allow filesystem|volume
zfs allow [-ldug] everyone|user|group[,...] perm|@setname[,...] filesystem|volume
zfs allow [-ld] -e perm|@setname[,...] filesystem|volume
zfs allow -c perm|@setname[,...] filesystem|volume
zfs allow -s @setname perm|@setname[,...] filesystem|volume
zfs unallow [-rldug] everyone|user|group[,...] [perm|@setname[,... ]] filesystem|volume
zfs unallow [-rld] -e [perm|@setname[,... ]] filesystem|volume
zfs unallow [-r] -c [perm|@setname[ ... ]] filesystem|volume
zfs unallow [-r] -s @setname [perm|@setname[,... ]] filesystem|volume
zpool(1M) で説明されているように、zfs allow コマンドを使用して、ZFS ストレージプールで特権のないユーザーに ZFS ファイルシステムを管理するためのアクセス権を委任できます。zfs unallow コマンドを使用して、管理アクセス権を取り消すことができます。
一般にアクセス権とは、ZFS サブコマンドを使用する権限、または ZFS プロパティーを変更する権限です。使用できるアクセス権は次のとおりです。
# zfs help permissions The following delegated permissions are supported: NAME TYPE NOTES allow subcommand Must also have the permission that is being allowed clone subcommand Must also have the 'create' ability and 'mount' ability in the origin file system create subcommand Must also have the 'mount' ability destroy subcommand Must also have the 'mount' ability diff subcommand Allows lookup of paths within a dataset, given an object number. Ordinary users need this in order to use zfs diff hold subcommand Allows adding a user hold to a snapshot mount subcommand Allows mount/umount of ZFS datasets promote subcommand Must also have the 'mount' and 'promote' ability in the origin file system receive subcommand Must also have the 'mount' and 'create' ability release subcommand Allows releasing a user hold which might destroy the snapshot rename subcommand Must also have the 'mount' and 'create' ability in the new parent rollback subcommand Allows rolling back datasets to previously-taken snapshots send subcommand Allows sending of snapshots share subcommand Allows sharing file systems over NFS or SMB protocols snapshot subcommand Allows taking of snapshots groupquota other Allows accessing any groupquota@... property groupused other Allows reading any groupused@... property key other Allows load/unload of dataset key keychange other Allows key change operations userprop other Allows changing any user property userquota other Allows accessing any userquota@... property userused other Allows reading any userused@... property The following properties can have delegated permissions applied: aclinherit aclmode atime canmount casesensitivity checksum compression copies dedup devices encryption exec keysource logbias mountpoint multilevel nbmand normalization primarycache quota readonly recordsize refquota refreservation reservation rstchown secondarycache setuid shadow sharenfs sharesmb snapdir sync utf8only version volblocksize volsize vscan xattr zoned
状態を変更するサブコマンドはすべて、元の形式でプールに永続的に記録されます。
ヘルプメッセージを表示します。
zfs コマンドの使用法情報を表示します。特定のコマンド、プロパティー、または委任アクセス権のヘルプを表示できます。特定のコマンドまたはプロパティーのヘルプを表示した場合、コマンド構文またはプロパティー値が表示されます。引数を何も付けずに zfs help を使用すると、zfs コマンドの完全なリストが表示されます。
zfs プロパティーに関する情報 (プロパティー値が編集可能および継承可能かどうか、指定可能な値など) が表示されます。
指定されたファイルシステムまたはボリューム上で委任されたアクセス権を表示します。詳細は、zfs allow のほかの形式を参照してください。
ファイルシステムに対する ZFS 管理アクセス権を非特権ユーザーに委任します。
アクセス権を委任するユーザーを指定します。複数のエンティティーをコンマ区切りのリストとして指定できます。どちらの –ug オプションも指定されていない場合、引数はキーワード everyone、ユーザー名、最後にグループ名という優先順位で解釈されます。「everyone」という名前のユーザーまたはグループを指定するには、–u オプションまたは –g オプションを使用します。ユーザーと同じ名前のグループを指定するには、–g オプションを使用します。
アクセス権を everyone に委任することを指定します。複数のアクセス権をコンマ区切りのリストとして指定できます。アクセス権の名前は、ZFS のサブコマンドおよびプロパティーの名前と同じです。下記のプロパティーリストを参照してください。プロパティーセットの名前を指定できます。プロパティーセット名はアットマーク記号 (@) で始まります。詳細については、下記の –s の形式を参照してください。
アクセス権を委任する場所を指定します。–ld オプションのどちらも指定されていない場合や、両方が指定されている場合は、ファイルシステムまたはボリュームおよびそのすべての子孫にアクセス権が許可されます。–l オプションのみが指定されている場合は、指定されたファイルシステムのみに「ローカルの」アクセス権が許可されます。–d オプションのみが指定されている場合は、子孫ファイルシステムのみにアクセス権が許可されます。
「作成時」アクセス権を設定します。これらのアクセス権は、新しく作成された子孫ファイルシステムの作成者に (ローカルに) 付与されます。
アクセス権セットにアクセス権を定義または追加します。このセットは、指定のファイルシステムとその子孫に対してほかの zfs allow コマンドで使用できます。セットは動的に評価されるため、セットに加えられた変更はすぐに反映されます。アクセス権セットは ZFS ファイルシステムと同じ命名規則に従いますが、名前はアットマーク記号 (@) で始まり、64 文字以下の長さにする必要があります。
zfs allow コマンドで付与されたアクセス権を削除します。どのアクセス権も明示的には拒否されないため、付与されているほかのアクセス権は引き続き有効です。たとえば、祖先によってアクセス権が付与されているとします。アクセス権が指定されていない場合は、指定された user、group、または everyone のすべてのアクセス権が削除されます。everyone を指定すると (または、–e オプションを使用すると)、everyone に付与されていたアクセス権のみが削除されます。すべてのユーザーおよびグループのすべてのアクセス権が削除されるわけではありません。zfs allow コマンドの –ldugec オプションの説明を参照してください。
このファイルシステムおよびすべての子孫から、アクセス権を再帰的に削除します。
アクセス権セットからアクセス権を削除します。アクセス権が指定されていない場合は、すべてのアクセス権が削除されるため、セット全体が削除されます。
次の例は、ユーザー anne が pool/home/anne の作成、破棄、マウント、およびスナップショットの取得を行えるようにアクセス権を設定する方法を示しています。pool/home/anne に対するアクセス権も表示されています。
# zfs allow anne create,destroy,mount,snapshot pool/home/anne # zfs allow pool/home/anne ---- Permissions on pool/home/anne ----------------------------------- Local+Descendent permissions: user anne create,destroy,mount,snapshot
pool/home/anne マウントポイントのアクセス権はデフォルトで 755 に設定されているため、ユーザー anne はファイルシステムを pool/home/anne にマウントできません。次の構文と同様の ACL を設定して、マウントポイントにアクセスできるようにします。
# chmod A+user:anne:add_subdirectory:allow /pool/home/anne使用例 2 ZFS データセットの作成時アクセス権を委任する
次の例は、pool/home にファイルシステムを作成するためのアクセス権をグループ staff のメンバーに付与する方法を示しています。この構文では、staff のメンバーが自分のファイルシステムを破棄することは許可し、ほかのユーザーのファイルシステムを破棄することは許可していません。pool/home に対するアクセス権も表示されています。
# zfs allow staff create,mount pool/home # zfs allow -c destroy pool/home # zfs allow pool/home ---- Permissions on pool/home ---------------------------------------- Create time permissions: destroy Local+Descendent permissions: group staff create,mount使用例 3 ZFS データセットのアクセス権セットを定義して付与する
次の例は、pool/home ファイルシステムのアクセス権セットを定義して付与する方法を示しています。pool/home に対するアクセス権も表示されています。
# zfs allow -s @pset create,destroy,snapshot,mount pool/home # zfs allow staff @pset pool/home # zfs allow pool/home ---- Permissions on pool/home ---------------------------------------- Permission sets: @pset create,destroy,mount,snapshot Create time permissions: destroy Local+Descendent permissions: group staff @pset,create,mount使用例 4 ZFS データセットのプロパティーアクセス権を委任する
次の例は、tank/users ファイルシステムに割り当てと予約を設定する能力を付与する方法を示しています。tank/users に対するアクセス権も表示されています。
# zfs allow mark quota,reservation tank/users # zfs allow tank/users ---- Permissions on tank/users --------------------------------------- Local+Descendent permissions: user mark quota,reservation mark% zfs set quota=10G tank/users/tim mark% zfs get quota tank/users/tim NAME PROPERTY VALUE SOURCE tank/users/tim quota 10G local使用例 5 ZFS データセットの ZFS 委任アクセス権を削除する
次の例は、pool/home ファイルシステムの staff グループについて、@pset アクセス権セットからスナップショットアクセス権を削除する方法を示しています。pool/home に対するアクセス権も表示されています。
# zfs unallow -s @pset snapshot pool/home # zfs allow pool/home ---- Permissions on pool/home ---------------------------------------- Permission sets: @pset create,destroy,mount Create time permissions: destroy Local+Descendent permissions: group staff @pset,create,mount
次の終了ステータスが返されます。
正常終了。
エラーが発生した。
無効なコマンド行オプションが指定された。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
zfs(1M), zpool(1M), chmod(2), chown(2), attributes(5)
その他の ZFS 機能の詳細は、zfs_encrypt.1m、zfs_share.1m、zfs(1M)、およびOracle Solaris 11.3 での ZFS ファイルシステムの管理を参照してください。