zfs_share - ZFS ファイルシステムを共有または共有解除する
zfs help subcommand | help | property property-name | permission
zfs help -l properties
zfs destroy share
zfs get [-rHpe|-d max][-o all | field[,...]] [-s source[,...]] all | property[,...] filesystem|volume|snapshot|share ...
zfs get share [filesystem]
zfs [-r] set [-r | -c] filesystem|volume|snapshot|share ...
zfs [-r] set share.nfs=on | off filesystem
zfs [-r] set share.smb=on | off filesystem
zfs share -u [-o property=value]... filesystem%share
zfs share filesystem|mountpoint|filesystem%share
zfs share -a | -r filesystem
zfs unshare filesystem|mountpoint|filesystem%share
zfs unshare -a | -r filesystem
share.nfs または share.smb プロパティーを設定すると、ZFS ファイルシステムの NFS 共有または SMB 共有を作成できます。zfs share および zfs unshare コマンドを使用して、ZFS 共有を公開または非公開にすることもできます。
share.nfs=on または share.smb=on プロパティー値を設定または継承すると、ファイルシステムを共有できます。例:
# zfs set share.nfs=on tank/home # zfs set share.smb=on tank/data
前述の簡単な構文によって、自動的にファイルシステムの共有が作成および公開されます。この方法は、自動共有と呼ばれます。詳細は、「使用例」のセクションを参照してください。
自動共有は読み取り専用であり、すべてのプロパティーを親ファイルシステムから継承します。この方法では、必要に応じて、子孫ファイルシステムごとに共有を作成しなくても、継承だけで共有することが可能です。自動共有の公開される共有名 share.name は、データセットのマウントポイントから生成されます。
たとえば、tank/home の share.name は tank_home です。
ファイルシステムの自動共有名は、filesystem% と表示されます。たとえば、tank/home% となります。
次のように、zfs share コマンドを使用して共有を作成および公開することもできます:
# zfs share -o share.smb=on sandbox/myfs%myshare
前述の構文では、NFS または SMB プロトコル上でファイルシステム内のサブディレクトリを共有する必要がある場合に、より高い柔軟性を実現する名前付き共有が作成および公開されます。詳細は、「使用例」のセクションを参照してください。
zfs list コマンドを使用する際に共有情報が表示されるかどうかを確認するには、listshares プールプロパティーを使用します。詳細は、zpool(1M) を参照してください。
ファイルシステムのプロパティーは、ネイティブプロパティーとユーザー定義 (「ユーザー」) プロパティーの 2 種類に分けられます。ネイティブプロパティーは、情報を表示するか ZFS の動作を制御します。また、ネイティブプロパティーは編集可能であるか、読み取り専用です。
プロパティーは、子により上書きされないかぎり、親から継承されます。一部のプロパティーは、特定のタイプのデータセット (ファイルシステム、ボリューム、またはスナップショット) にのみ適用されます。
次のネイティブプロパティーを使用すると ZFS ファイルシステムの動作を変更することが可能であり、通常ファイルシステムの共有時に使用されます。
ファイルシステムを nbmand (非ブロッキング強制ロック) でマウントするべきかどうかを制御します。これは SMB クライアントに使用されます。このプロパティーの変更は、ファイルシステムをアンマウントしてから再マウントした場合にのみ反映されます。nbmand マウントの詳細は、mount(1M) を参照してください。
このデータを変更できるかどうかを制御します。デフォルト値は off です。
このプロパティーは、列の短縮名 rdonly を使用して参照することもできます。
ZFS データセットを NFS 共有として作成および公開するかどうかを制御します。zfs share および zfs unshare コマンドを使用して、ZFS データセットの名前付き NFS 共有を公開および非公開にすることもできます。どちらの NFS 共有公開方法でも、NFS 共有プロパティーがすでに設定されている必要があります。NFS 共有プロパティーの設定については、下記の zfs set コマンドの構文を参照してください。
share.nfs プロパティーを変更すると、ファイルシステム共有、およびそのプロパティーを継承するすべての子は、そのプロパティーが以前に off であった場合、またはそのプロパティーの変更前に共有が公開されていた場合にのみ、zfs set share コマンドで設定されている新しいオプションで再度公開されます。新しいプロパティー値が off であれば、ファイルシステム共有は非公開になります。
ZFS データセットを SMB 共有として作成および公開するかどうかを制御します。zfs share および zfs unshare コマンドを使用して、ZFS データセットの名前付き SMB 共有を公開および非公開にすることもできます。どちらの SMB 共有公開方法でも、SMB 共有プロパティーが同時に設定されている必要があります。SMB 共有プロパティーの設定については、下記の zfs set コマンドの構文を参照してください。
SMB 共有が作成されると、SMB 共有名が .zfs/shares ディレクトリのエントリとして表示されます。ls または chmod コマンドを使用して、このディレクトリのエントリについて共有レベルの ACL を表示できます。
プロパティーを off から on に変更すると、そのプロパティーを継承するすべての共有が現在のオプションで再共有されます。プロパティーを off に設定すると、そのプロパティーを継承する共有の共有が解除されます。
通常ファイルを開くときや閉じるときに、ファイルのウイルススキャンを実行するかどうかを制御します。ウイルススキャンを実行するには、このプロパティーを有効にするほかに、ウイルススキャンサービスも有効にする必要があります。デフォルト値は off です。
次のプロパティーは、ファイルシステムの作成後には変更できないため、ファイルシステムの作成時に設定するようにしてください。zfs create または zpool create コマンドで設定されていない場合、これらのプロパティーは親データセットから継承されます。これらの機能がサポートされる前に親データセットが作成されたため、親データセットにこれらのプロパティーが存在しない場合、新しいファイルシステムではこれらのプロパティーにデフォルト値が設定されます。
ファイルシステムで使用するファイル名照合アルゴリズムで、大文字と小文字を区別するか、区別しないか、または両方の照合方式の組み合わせを許可するかを指定します。casesensitivity プロパティーのデフォルト値は mixed です。通常、UNIX および POSIX のファイルシステムでは、ファイル名の大文字と小文字を区別します。
casesensitivity プロパティーの値が mixed の場合、ファイルシステムが要求に応じて大文字と小文字を区別する照合も区別しない照合もサポートできることを示します。現在、混合動作をサポートするファイルシステムで大文字と小文字を区別しない照合が可能なのは、Solaris SMB サーバー製品に限られています。mixed 値の動作の詳細については、Oracle Solaris 11.3 での ZFS ファイルシステムの管理を参照してください。
ファイルシステムで 2 つのファイル名を比較するとき常にファイル名の unicode 正規化を実行するかどうか、およびどの正規化アルゴリズムを使用するかを指定します。保存されるファイル名が変更されることはなく、名前の正規化は比較処理の一部として実行されます。このプロパティーが none 以外の有効な値に設定されており、utf8only プロパティーが指定されなかった場合、utf8only プロパティーは自動的に on に設定されます。normalization プロパティーのデフォルト値は none です。このプロパティーは、ファイルシステムの作成後には変更できません。
UTF-8 文字コードセットに存在しない文字が含まれているファイル名をファイルシステムで拒否するかどうかを設定します。このプロパティーが明示的に off に設定されている場合、normalization プロパティーを明示的に設定しないか、または none に設定する必要があります。utf8only プロパティーのデフォルト値は off です。このプロパティーは、ファイルシステムの作成後には変更できません。
ネイティブプロパティーとユーザープロパティーに加えて、ファイルシステムを共有する方法を制御するプロパティーを指定することもできます。次の共有関係のプロパティーセットは、NFS と SMB の両方の共有に適用されるグローバルプロパティー、NFS に固有のプロパティー、および SMB に固有のプロパティーの 3 つのカテゴリに分けられます。
グローバル共有プロパティーは、一部の例外を除いてほとんどが読み取り専用です。次のグローバル共有プロパティーは、NFS または SMB の共有、または共有中もしくは共有されるファイルシステムのいずれかに適用されます:
|
次の共有プロパティーは、NFS プロトコルに固有のものです。NFS 共有固有のプロパティーはすべて、編集可能および継承可能です。特に記述がないかぎり、ほとんどのプロパティーのデフォルト値は off です。
NFS 共有プロパティーの説明を次に示します。
ファイルシステムが NFS プロトコル上で共有されるかどうかを指定します。値: on または off
このプロパティーがサーバーに設定されると、すべてのクライアントに最大限のアクセス権が付与されるように、NFSv2 クライアントのアクセス制御を指定します。このプロパティーが設定されない場合は、すべてのクライアントに最小限のアクセス権が付与されます。値: on または off
ACL アクセス権が加工されるかどうかを指定します。値: on または off
不明なユーザーの実効ユーザー ID に UID を設定します。デフォルトでは、不明なユーザーに実効 UID nobody が付与されます。UID を -1 に設定すると、アクセスが拒否されます。値: uid
NFS 文字エンコーディングを euc-cn (中国語) に設定します。値: access-list
NFS 文字エンコーディングを euc-jpms (MicroSoft 互換の日本語) に設定します。値: access-list
NFS 文字エンコーディングを euc-kr (韓国語) に設定します。値: access-list
NFS 文字エンコーディングを euc-tw (台湾語) に設定します。値: access-list
NFS 文字エンコーディングを ISO 8859–1 (ラテン語 1) に設定します。値: access-list
NFS 文字エンコーディングを ISO 8859–2 (ラテン語 2) に設定します。値: access-list
NFS 文字エンコーディングを ISO 8859–5 (ラテン語/キリル語) に設定します。値: access-list
NFS 文字エンコーディングを ISO 8859–6 (アラビア語) に設定します。値: access-list
NFS 文字エンコーディングを ISO 8859–7 (ギリシャ語) に設定します。値: access-list
NFS 文字エンコーディングを ISO 8859–8 (ヘブライ語) に設定します。値: access-list
NFS 文字エンコーディングを ISO 8859–9 (トルコ語) に設定します。値: access-list
NFS 文字エンコーディングを ISO 8859–13 (バルト語) に設定します。値: access-list
NFS 文字エンコーディングを ISO 8859–15 (西ヨーロッパ語) に設定します。値: access-list
NFS 文字エンコーディングを ISO KOI8–R (ロシア語/キリル語) に設定します。値: access-list
まだ実装されていません。値: string
ディレクトリが NFS URL によって参照されるときに、このファイルを含むディレクトリの一覧ではなくファイルがロードされるかどうかを指定します。値: filename
指定されたファイルシステムに対する NFSv2 または NFSv3 サーバーのロギングを有効にします。タグは /etc/nfs/nfslog.conf ファイルで定義されます。タグが指定されていない場合は、/etc/nfs/nfslog.conf ファイル内のグローバルなタグに関連付けられたデフォルト値が使用されます。値: tag
NFSv2 または NFSv3 クライアントが共有ディレクトリのサブディレクトリをマウントできないようにします。値: on または off
NFS クライアントが setguid または setuid アクセス権を持つファイルを作成できないようにします。有効になっている場合、setguid または setuid アクセス権を有効にしようとしても、NFS サーバーで暗黙のうちに無視されます。値: on または off
公開ファイルハンドルの場所をルートから、NFS に対応したブラウザおよびクライアントの共有ディレクトリに変更します。値: on または off
デフォルトのセキュリティーモードを SYS に設定します。SYS セキュリティーモードでは、AUTH_SYS 認証が使用されます。つまり、ユーザーの UID と GID は、NFS サーバーによって認証されずにネットワーク上に平文で渡されます。値: security-mode-list
access-list に対するデフォルトのセキュリティーモードをなしに設定します。値: access-list
デフォルトのセキュリティーモードを access-list に対する読み取り専用アクセスに設定します。値: access-list
デフォルトのセキュリティーモードを access-list に対するルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたシステムはありません。値: access-list
デフォルトのセキュリティーモードを特定の UID へのルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたユーザーはありません。値: UID
デフォルトのセキュリティーモードを access-list に対する読み取り/書き込みアクセスに設定します。値: access-list
NFS サーバーがデフォルトのセキュリティーモードで許可する要求元の資格の最大有効期間を秒単位で設定します。デフォルト値は 30000 秒 (8.3 時間) です。値: seconds
access-list に対する Diffie Helman (dh) セキュリティーモードをなしに設定します。値: access-list
dh セキュリティーモードを access-list に対する読み取り専用アクセスに設定します。値: access-list.
dh セキュリティーモードを access-list に対するルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたシステムはありません。値: access-list.
dh セキュリティーモードを特定の UID へのルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたユーザーはありません。値: UID
デフォルトのセキュリティーモードを access-list に対する読み取り/書き込みアクセスに設定します。値: access-list
NFS サーバーが dh セキュリティーモードで許可する要求元の資格の最大有効期間を秒単位で設定します。デフォルト値は 30000 秒 (8.3 時間) です。値: seconds
access-list に対する Kerberos V5 (krb5) セキュリティーモードをなしに設定します。値: access-list
krb5 セキュリティーモードを access-list に対する読み取り専用アクセスに設定します。値: access-list
krb5 セキュリティーモードを access-list に対するルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたシステムはありません。値: access-list
krb5 セキュリティーモードを特定の UID へのルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたユーザーはありません。値: UID
krb5 セキュリティーモードを access-list に対する読み取り/書き込みアクセスに設定します。値: access-list
krb5 セキュリティーモードでは、このプロパティーは実装されていません。値: N/A
Kerberos V5 (krb5i) セキュリティーモードをなしに設定します。値: access-list
krb5i セキュリティーモードを access-list に対する読み取り専用アクセスに設定します。値: access-list
krb5i セキュリティーモードを access-list に対するルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたシステムはありません。値: access-list
krb5i セキュリティーモードを特定の UID へのルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたユーザーはありません。値: UID
krb5i セキュリティーモードを access-list に対する読み取り/書き込みアクセスに設定します。値: access-list
krb5i セキュリティーモードでは、このプロパティーは使用できません。値: N/A
access-list に対する Kerberos V5 (krb5i) セキュリティーモードをなしに設定します。値: access-list
krb5p セキュリティーモードを access-list に対する読み取り専用アクセスに設定します。値: access-list
krb5p セキュリティーモードを access-list に対するルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたシステムはありません。値: access-list
krb5p セキュリティーモードを特定の UID へのルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたユーザーはありません。値: UID
krb5i セキュリティーモードを access-list に対する読み取り/書き込みアクセスに設定します。値: access-list
krb5p セキュリティーモードでは、このプロパティーは実装されていません。値: N/A
access-list に対するセキュリティーモードをなしに設定します。値: access-list
セキュリティーモードを access-list に対する読み取り専用アクセスに設定します。値: access-list.
セキュリティーモードを access-list に対するルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたシステムはありません。値: access-list
セキュリティーモードを特定の UID へのルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたユーザーはありません。値: UID
セキュリティーモードを access-list に対する読み取り/書き込みアクセスに設定します。値: access-list
このプロパティーは実装されていません。値: seconds
AUTH_SYS 共有にアクセスする際にクライアントが予約されたポートを必要とするかどうかを設定します。値: on または off。
access-list に対する SYS セキュリティーモードをなしに設定します。値: access-list
SYS セキュリティーモードを access-list に対する読み取り専用アクセスに設定します。値: access-list.
SYS セキュリティーモードを access-list に対するルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたシステムはありません。値: access-list
セキュリティーモードを特定の UID へのルートアクセスに設定します。デフォルトでは、ルートアクセスを許可されたユーザーはありません。値: UID
セキュリティーモードを access-list に対する読み取り/書き込みアクセスに設定します。値: access-list
SYS セキュリティーモードでは、このプロパティーは実装されていません。値: seconds
次の共有プロパティーは、SMB プロトコルに固有のものです。SMB 共有固有のプロパティーはすべて、編集可能および継承可能です。
|
状態を変更するサブコマンドはすべて、元の形式でプールに永続的に記録されます。
ヘルプメッセージを表示します。
zfs コマンドの使用法情報を表示します。特定のコマンド、プロパティー、または委任アクセス権のヘルプを表示できます。特定のコマンドまたはプロパティーのヘルプを表示した場合、コマンド構文またはプロパティー値が表示されます。引数を何も付けずに zfs help を使用すると、zfs コマンドの完全なリストが表示されます。
zfs プロパティーに関する情報 (プロパティー値が編集可能および継承可能かどうか、指定可能な値など) が表示されます。
新しい ZFS ファイルシステムを作成します。ファイルシステムは、親から継承した mountpoint プロパティーに従って自動的にマウントされます。
データセットの作成時にコマンド zfs set property=value が呼び出された場合と同様に、指定されたプロパティーを設定します。編集可能なすべての ZFS プロパティーは、作成時にも設定可能です。複数の –o オプションを指定できます。複数の –o オプション内で同じプロパティーを指定した場合は、エラーが発生します。
指定したファイルシステムの共有が破棄されます。
指定したデータセットのプロパティーを表示します。データセットが指定されていない場合、このコマンドはシステムのすべてのデータセットのプロパティーを表示します。プロパティーごとに、次の列が表示されます。
name Dataset name property Property name value Property value source Property source. Can either be local, default, temporary, inherited, or none (-).
デフォルトでは、RECEIVED 列を除くすべての列が表示されます。特定の列またはすべての列を指定するには、–o オプションを使用します。このコマンドには、「ネイティブプロパティー」および「ユーザープロパティー」で説明されているコンマ区切りのプロパティーリストを指定できます。
特殊な値 all を使って、指定したデータセットのタイプ (ファイルシステム、ボリューム、またはスナップショット) に適用されるプロパティーをすべて表示できます。
任意の子のプロパティーを再帰的に表示します。
データセットのすべての子を再帰的に表示しますが、再帰の深さは depth に制限されます。深さ 1 の場合は、データセットとその直接の子だけが表示されます。
スクリプトによる解析がより容易な形式で、出力を表示します。ヘッダーがすべて省略され、フィールドが任意の数のスペースではなく、タブ 1 つで明示的に区切られます。
表示するフィールドのセット。次の 1 つ以上のフィールドを指定します。
name,property,value,received,source
複数のフィールドをコンマ区切りリストで表します。デフォルト値は次のとおりです:
name,property,value,source
キーワード all はすべてのソースを指定します。
表示するソースのコンマ区切りのリスト。このリストにないソースからのプロパティーは、無視されます。各ソースは、次のいずれかでなければなりません:
local,default,inherited,temporary,received,none
デフォルト値はすべてのソースです。
解析可能な (絶対) 値で数を表示します。
定義されているすべての共有、または指定したファイルシステムに定義されている共有を表示します。
share.nfs または share.smb プロパティーを on に設定して、ZFS データセットに NFS または SMB ファイル共有のプロパティーを定義します。
プロパティーをファイルシステムまたはファイルシステム共有ごとに指定された値に設定します。一部のプロパティーのみ、編集可能です。設定可能なプロパティーおよび有効な値に関するセクションを参照してください。詳細は、「NFS 共有プロパティーの説明」セクションまたは「SMB 共有プロパティーの説明」セクションを参照してください。
子データセットのサブツリー全体に対して、設定の有効な値を再帰的に適用します。有効な値は、プロパティーに応じて設定または継承できます。
共有プロパティーの値に従って、ZFS データセットの NFS 共有または SMB 共有を作成および公開します。
NFS または SMB プロトコルでデータセットを共有すると、データセットのデータがネットワークを介して使用できます。share.nfs または share.smb プロパティーが設定されている ZFS データセットは、システムのブート時に自動的に共有されます。
すぐには共有せずに共有を作成します。
共有プロパティーの値が指定された ZFS ファイルシステムを共有します。
共有プロパティーの値、および share.nfs プロパティーと share.smb プロパティーの設定に従って、すべての ZFS ファイルシステムを共有します。
指定されたファイルシステムの下にあるすべてのファイルシステムおよびデータセットに再帰的に共有操作を適用します。
指定されたファイルシステムまたは名前付きファイルシステム共有を共有します。
share.nfs プロパティーまたは share.smb プロパティーが設定されているすべての ZFS データセットを共有解除します。
すべての共有 ZFS ファイルシステムの共有を解除します。これは、ブートプロセスの一部として自動的に呼び出されます。
指定されたファイルシステムの下にあるすべてのファイルシステムおよびデータセットに再帰的に共有解除操作を適用します。
指定されたファイルシステムの共有を解除します。このコマンドには、システムで共有された ZFS ファイルシステムへのパスを指定することもできます。
次の例では、さまざまな方法で ZFS ファイルシステムを共有する方法を示します。
ZFS ファイルシステムは作成時に共有できます。例:
# zfs create -o share.nfs=on tank/workspace
共有プロパティーを適用することもできます。
# zfs set share.nfs.nosuid=on tank/workspace
ファイルシステムが共有されているかどうかを確認します。例:
# grep workspace /etc/dfs/sharetab /tank/workspace tank_workspace nfs nosuid,sec=sys,rw
子孫ファイルシステムは自動的に共有されます。例:
# zfs create tank/workspace/fs1
ファイルシステムは作成後に共有できます。例:
# zfs set share.smb=on tank/data使用例 2 ZFS ファイルシステムのより複雑な SMB 共有を作成する
次の例では、ABE (アクセスベースの列挙) を使用して、ユーザーがアクセス権を持っているファイルを参照できるように指定する SMB を作成する方法を示します。%shareabe という共有が、share.smb.abe プロパティーが on に設定された状態で作成されます。%shareabe という新しい共有が同じファイルシステムに、share.smb.abe が off に設定された状態で作成されます。
# zfs share -o share.smb=on -o share.smb.abe=on tank/users/files%shareabe # zfs share -o share.smb=off tank/users/files%sharenoabe
特定のユーザーが sharenoabe 共有内のすべてのファイルを参照でき、その他のユーザーは shareabe 共有内でアクセス権を持っているファイルのみを参照できるようにするには、/tank/users/files/.zfs/shares ディレクトリでアクセスできる共有アクセス権を変更する必要があります。
使用例 3 ZFS ファイルシステムの共有プロパティーを追加または変更するNFS と SMB の両方のプロトコル上でファイルシステムを共有できます。例:
# zfs set share.nfs=on tank/data # zfs set share.smb=on tank/data
共有プロパティーをさらに追加または変更できます。例:
# zfs set share.nfs.ro=on tank/data使用例 4 NFS または SMB 共有情報を表示する
NFS または SMB 共有情報を表示します。
親ファイルシステムが共有されたときに、子孫ファイルシステムも共有されているかどうかを確認します。例:
# zfs get -r share.nfs tank/workspace NAME PROPERTY VALUE SOURCE tank/workspace share.nfs on local tank/workspace% share.nfs on inherited from tank/workspace tank/workspace/fs1 share.nfs on inherited from tank/workspace tank/workspace/fs1% share.nfs on inherited from tank/workspace
次の終了ステータスが返されます。
正常終了。
エラーが発生した。
無効なコマンド行オプションが指定された。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
share(1M)、share_nfs(1M)、share_smb(1M)、unshare(1M)、zfs(1M)、zpool(1M)、chmod(2)、chown(2)、stat(2)、write(2)、fsync(3C)、dfstab(4)、vfstab(4)、attributes(5)
その他の ZFS 機能の詳細は、zfs_allow(1M)、zfs_encrypt(1M)、zfs(1M)、およびOracle Solaris 11.3 での ZFS ファイルシステムの管理を参照してください。