Go to main content
Oracle® Solaris 11.3 でのネットワークファイルシステムの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

NFS コマンド

また、FedFS サービスに関連したコマンドについては、FedFS コマンドに説明されています。

automount コマンド

このコマンドは autofs マウントポイントをインストールし、オートマスターファイル内の情報を各マウントポイントに関連付けます。このコマンドの構文は次のとおりです。

automount [ –t duration ] [ –v ]

–t duration はファイルシステムがマウントを継続できる時間 (秒) を設定し、–v は冗長モードを選択します。冗長モードでこのコマンドを実行するとトラブルシューティングが容易になります。

継続時間の値は、特に設定しないと 5 分に設定されます。通常はこの値が適切です。しかし、自動マウントされたファイルシステムの多いシステムでは、この値を増やす必要がある場合もあります。特に、サーバーを多くのユーザーが使用中の場合は、自動マウントされたファイルシステムを 5 分ごとにチェックするのは能率的でない場合があります。autofs ファイルシステムは 1800 秒 (30 分) ごとにチェックする方が適しています。5 分おきにファイルシステムマウントを解除しないと、/etc/mnttab が大きくなることがあります。df/etc/mnttab 内の各エントリをチェックするときの出力を減らすには、–F オプション (df(1M) のマニュアルページを参照) または egrep を使用することで、df からの出力を絞り込むことができます。

この継続時間を調節すると、オートマウンタマップへの変更が反映される速さを変更できるということも考慮すべきです。変更はファイルシステムがアンマウントされるまでは見ることができません。オートマウンタマップの変更方法については、マップの変更を参照してください。

コマンド行で行う場合と同じ指定を sharectl コマンドで行うことができます。ただし、コマンド行オプションと異なり、サービス再起動、システムリブート、およびシステムアップグレードを経由しても SMF リポジトリは指定を保持します。automount コマンドには次のパラメータを設定できます。

timeout

ファイルシステムがアンマウントされるまでアイドル状態を持続する時間を設定します。このキーワードは、automount–t 引数と同等です。デフォルト値は 600 です。

automount_verbose

マウント、アンマウント、およびその他の重要でないイベントを通知します。このキーワードは、–automountv 引数と同等です。デフォルト値は FALSE です。

clear_locks コマンド

このコマンドを使用すると、ある NFS クライアントのファイル、レコード、または共有のロックをすべて削除できます。このコマンドを実行するには、スーパーユーザーでなければなりません。NFS サーバーから、特定のクライアントに対するロックを解除できます。また、NFS クライアントから、特定のサーバーにおけるそのクライアントに対するロックを解除できます。次の例では、現在のシステム上の tulip という名前の NFS クライアントのロックを解除します。

# clear_locks tulip

–s オプションは、どの NFS ホストからロックを解除するかを指定するために使用します。このオプションは、ロックを作成した NFS クライアントで実行する必要があります。この状況では、クライアントからのロックが bee という名前の NFS サーバーから解除されます。

# clear_locks -s bee

Caution

注意  -  このコマンドは、クライアントがクラッシュしてロックを解除できないときだけに実行するようにしてください。データが破壊されるのを避けるため、使用中のクライアントに関するロックは解除しないでください。


fsstat コマンド

fsstat ユーティリティーを使用して、ファイルシステムの種類およびマウントポイントごとに、ファイルシステムオペレーションをモニターできます。さまざまなオプションで出力をカスタマイズできます。

–i

マウントポイントの入出力操作に関する統計を表示します

–n

マウントポイントの命名操作に関する統計を表示します

この例では、NFS Version 3、NFS Version 4、およびルートマウントポイントの出力を示しています。

% fsstat nfs3 nfs4 /
  new     name   name    attr    attr   lookup   rddir   read   read   write   write
 file    remov   chng     get     set      ops     ops    ops  bytes     ops   bytes
3.81K       90  3.65K   5.89M   11.9K    35.5M   26.6K   109K   118M   35.0K   8.16G  nfs3
  759      503    457   93.6K   1.44K     454K   8.82K  65.4K   827M     292    223K  nfs4
25.2K    18.1K  1.12K   54.7M    1017     259M   1.76M  22.4M  20.1G   1.43M   3.77G  /

次の例では、–i オプションを使って NFS Version 3、NFS Version 4、およびルートマウントポイントの入出力操作に関する統計を提供しています。

% fsstat -i nfs3 nfs4 /
 read    read    write   write   rddir   rddir   rwlock   rwulock
  ops   bytes      ops   bytes     ops   bytes      ops       ops
 109K    118M    35.0K   8.16G   26.6K   4.45M     170K      170K  nfs3
65.4K    827M      292    223K   8.82K   2.62M    74.1K     74.1K  nfs4
22.4M   20.1G    1.43M   3.77G   1.76M   3.29G    25.5M     25.5M  /

次の例では、–n オプションを使って NFS Version 3、NFS Version 4、およびルートマウントポイントの命名操作に関する統計を提供しています。

% fsstat -n nfs3 nfs4 /
lookup   creat   remov  link   renam  mkdir  rmdir   rddir  symlnk  rdlnk
 35.5M   3.79K      90     2   3.64K      5      0   26.6K      11   136K  nfs3
  454K     403     503     0     101      0      0   8.82K     356  1.20K  nfs4
  259M   25.2K   18.1K   114    1017     10      2   1.76M      12  8.23M  /

詳細は、fsstat(1M) のマニュアルページを参照してください。

mount コマンド

このコマンドを使用すると、指定したファイルシステムをローカルまたはリモートで、指定したマウントポイントにマウントできます。詳細は、mount(1M) のマニュアルページを参照してください。引数を指定しないで mount を使用すると、現在コンピュータにマウントされているファイルシステムのリストが表示されます。

Oracle Solaris 標準インストールに含まれるファイルシステムタイプごとに、固有の mount コマンド用オプションが用意されています。NFS ファイルシステムオプションについては、mount_nfs(1M) のマニュアルページを参照してください。UFS ファイルシステムオプションについては、mount_ufs(1M) のマニュアルページを参照してください。

標準 server:/pathname 構文の代わりに NFS URL を使用することで、NFS サーバーからマウントするパス名を選択できます。詳細は、NFS URL を使用して NFS ファイルシステムをマウントする方法を参照してください。


Caution

注意  -  mount コマンドは無効なオプションについて警告しません。解釈できないオプションがあると無視されるだけです。予想外の結果が生じるのを避けるために、使用するオプションはすべて確認してください。


NFS ファイルシステム用の mount オプション

このセクションでは、NFS ファイルシステムマウント時に –o フラグのあとに指定できるいくつかのオプションについて説明します。オプションの完全なリストについては、mount_nfs(1M) のマニュアルページを参照してください。

bg|fg

これらのオプションは、マウントが失敗した場合の再試行動作を選択するために使用できます。–bg オプションの場合はバックグラウンドで、–fg オプションでは、フォアグラウンドでマウント試行が実行されます。デフォルトは –fg で、マウントが完了するまで後続の処理を抑止するため、利用可能である必要があるファイルシステムにとって最適な選択です。–bg は、マウント要求の完了を待機中にクライアントはほかの処理を実行できるため、クリティカルでないファイルシステムに適した選択です。

forcedirectio

このオプションは、大きなシーケンシャルデータ転送のパフォーマンスを改善します。データは直接ユーザーバッファーにコピーされます。クライアント上のカーネル内ではキャッシュへの書き込みは行われません。このオプションはデフォルトでオフになっています (noforcedirectio)。

アプリケーションがクライアント上の単一ファイルへの並行書き込みおよび並行読み取り/書き込みを発行することを許可するには、–forcedirectio マウントオプションを使用します。このオプションによって、マウントされたファイルシステム内のすべてのファイルでこの機能が有効になります。この機能をクライアント上の単一ファイルで有効にするするために、directio() インタフェースを使用することもできます。この機能を有効にしないかぎり、ファイルへの書き込みは直列化されます。また、並行書き込みや並行読み取り/書き込みが実行されると、そのファイルに関しては、POSIX のセマンティクスはサポートされなくなります。

このオプションの使用例については、mount コマンドの使用を参照してください。

largefiles

このオプションで、2G バイトより大きいファイルにアクセスできます。大きいファイルにアクセスできるかどうかはサーバーでのみ制御できるため、このオプションは NFS Version 3 マウントでサイレントに無視されます。デフォルトでは、UFS ファイルシステムはすべて –largefiles オプション付きでマウントされます。NFS Version 2 プロトコルを使用するマウントでの –largefiles オプションは、マウントがエラーで失敗します。

nolargefiles

UFS マウント用のこのオプションによって、ファイルシステム上に大きなファイルが存在できないことが保証されます。大きなファイルの存在は NFS サーバー上でのみ制御できるため、NFS マウントを使用しているときに –nolargefiles 用のオプションは存在しません。このオプションを指定してファイルシステムを NFS マウントしようとすると、エラーが発生して拒否されます。

nosuid|suid

–nosuid オプションは、–nodevices オプションを –nosetuid オプションとともに指定することと同等です。–nodevices オプションが指定されている場合、マウントされたファイルシステム上のデバイス特殊ファイルを開くことができません。–nosetuid オプションが指定されている場合、ファイルシステム上に置かれたバイナリファイルの setuid ビットと setgid ビットは無視されます。プロセスは、バイナリファイルを実行するユーザーの特権で実行します。

–suid オプションは、–devices オプションを –setuid オプションと同時に指定することと同等です。–devices オプションが指定されている場合、マウントされたファイルシステムのデバイス特殊ファイルを開くことができます。–setuid オプションが指定されている場合、ファイルシステムに置かれたバイナリファイルの setuid ビットと setgid ビットは、カーネルが引き受けます。

いずれのオプションも指定されていない場合、デフォルトのオプションは –suid になります。これにより、–devices オプションを –setuid オプションと同時に指定するデフォルトの動作になります。

次の表で、–nosuid または –suid–devices または –nodevices、および –setuid または –nosetuid と組み合わせた効果について説明します。オプションの各組み合わせでは、もっとも制限の高いオプションが動作を決定します。

オプションの組み合わせによる動作
オプション
オプション
オプション
–nosetuid–nodevices の同時指定と同等
–nosuid
–nosetuid
–nodevices
–nosetuid–nodevices の同時指定と同等
–nosuid
–nosetuid
–devices
–nosetuid–nodevices の同時指定と同等
–nosuid
–setuid
–nodevices
–nosetuid–nodevices の同時指定と同等
–nosuid
–setuid
–devices
–nosetuid–nodevices の同時指定と同等
–suid
–nosetuid
–nodevices
–nosetuid–devices の同時指定と同等
–suid
–nosetuid
–devices
–setuid–nodevices の同時指定と同等
–suid
–setuid
–nodevices
–setuid–devices の同時指定と同等
–suid
–setuid
–devices

–nosuid オプションを指定すると、信頼できないサーバーにアクセスする可能性のある NFS クライアントのセキュリティーを向上できます。このオプションでリモートファイルシステムをマウントすることで、信頼できないデバイスのインポートまたは信頼できない setuid バイナリファイルのインポートによって特権がエスカレーションする危険が少なくなります。これらのすべてのオプションは、すべての Oracle Solaris ファイルシステムで使用可能です。

public

このオプションによって、NFS サーバーに接続するときに公開ファイルハンドルが強制的に使用されます。NFS サーバーが公開ファイルハンドルをサポートしていれば、MOUNT プロトコルが使用されないため、マウント操作は短時間で行われます。また、MOUNT プロトコルを使用しないため、ファイアウォールを越えたマウントが可能です。

rw|ro

–rw オプションと –ro オプションは、ファイルシステムが読み書きまたは読み取り専用のどちらでマウントされるかを示します。デフォルトは読み書き可能で、これはリモートホームディレクトリやメールスプールディレクトリなどの、ユーザーによる変更が必要なファイルシステムに適しています。読み取り専用オプションは、ユーザーが変更してはいけないディレクトリに適しています。具体的には、マニュアルページの共有コピーなどです。

sec=mode

このオプションは、マウント時に使用される認証メカニズムを指定します。mode に使用可能な値は次のとおりです。

  • krb5、Kerberos Version 5 認証サービスの場合

  • krb5i、完全性付き Kerberos Version 5 の場合

  • krb5p、プライバシー付き Kerberos Version 5 の場合

  • none、認証なしの場合

  • dh、Diffie-Hellman (DH) 認証の場合

  • sys、UNIX 標準認証の場合

モードは、/etc/nfssec.conf ファイルにも定義されます。

soft|hard

–soft オプションでマウントされた NFS ファイルシステムは、サーバーが応答しない場合にエラーを返します。–hard オプションが指定されていると、サーバーが応答するまで続けて再試行が行われます。デフォルトは –hard です。ほとんどのファイルシステムには hard を使用します。ソフトマウントされたファイルシステムからの値を検査しないアプリケーションが多いので、アプリケーションでエラーが発生してファイルが破壊される恐れがあるためです。アプリケーションが戻り値をチェックする場合でも、ルーティング問題やほかの状況によってアプリケーションを混乱させたりファイルが破損したりすることがあります。原則として、–soft は使用しないでください。–hard オプションを指定した場合にファイルシステムが使用できなくなると、そのファイルシステムを使用するアプリケーションはファイルシステムが復旧するまでハングアップする可能性があります。

mount コマンドの使用

次の例は別のシナリオを示しています。

  • NFS Version 2 または NFS Version 3 では、次のコマンドはどちらもサーバー bee から NFS ファイルシステムを読み取り専用でマウントします。

    # mount -F nfs -r bee:/export/share/man /usr/man
    # mount -F nfs -o ro bee:/export/share/man /usr/man

    NFS Version 4 では、次のコマンド行が同じマウントを実現します。

    # mount -F nfs -o vers=4 -r bee:/export/share/man /usr/man
  • NFS Version 2 または NFS Version 3 では、次のコマンドの –O オプションによって、強制的にマニュアルページがサーバー bee からローカルシステムにマウントされます (すでに /usr/man がマウントされている場合でも)。

    # mount -F nfs -O bee:/export/share/man /usr/man

    NFS Version 4 では、次のコマンドが同じマウントを実現します。

    # mount -F nfs -o vers=4 -O bee:/export/share/man /usr/man
  • NFS Version 2 または NFS Version 3 では、次のコマンドがクライアントフェイルオーバーを使用します。

    # mount -F nfs -r bee,wasp:/export/share/man /usr/man

    NFS Version 4 では、次のコマンドがクライアントフェイルオーバーを使用します。

    # mount -F nfs -o vers=4 -r bee,wasp:/export/share/man /usr/man

    注 -  コマンド行から使用する場合、リスト内のサーバーがサポートしている NFS プロトコルは同じバージョンでなければなりません。コマンド行から mount を実行するときは、NFS Version 2 と NFS Version 3 サーバーの両方を使用しないでください。autofs が NFS Version 2 または NFS Version 3 サーバーの最適のサブセットを自動的に選択するため、autofs で両方のサーバーを使用できます。
  • 次の例は、NFS Version 2 または Version 3 で、NFS URL を mount コマンドで使用する方法を示しています。

    # mount -F nfs nfs://bee//export/share/man /usr/man

    次の例は、NFS Version 4 で、NFS URL を mount コマンドで使用する方法を示しています。

    # mount -F nfs -o vers=4 nfs://bee//export/share/man /usr/man
  • 次の例は、quota マウントオプションを使用して、ユーザーがファイルシステムのディスク割り当て制限と使用量を確認できるようにする方法を示しています。

    # mount -F nfs -o quota bee:/export/share/man /usr/man
  • 次の例は、–forcedirectio マウントオプションを使用して、クライアントにファイルへの並行書き込みとファイルへの並行読み取り/書き込みを許可する方法を示しています。

    # mount -F nfs -o forcedirectio bee:/home/somebody /mnt

    この例では、サーバー bee からの NFS ファイルシステムがマウントされ、ディレクトリ /mnt にあるファイルごとに並行読み取り/書き込みが有効になります。並行読み取り/書き込みのサポートを有効にすると、次のことが発生します。

    • クライアントは、ファイルへの並列した書き込みをアプリケーションに許可します。

    • クライアントでのキャッシュが無効になります。その結果、読み取りと書き込みのデータはサーバー上に保持されます。つまり、クライアントは読み取られたデータまたは書き込まれたデータをキャッシュに書き込まないため、アプリケーションがキャッシュに書き込んでいないデータはサーバーから読み取られます。クライアントのオペレーティングシステムは、このデータのコピーを持ちません。通常、NFS クライアントは、アプリケーションが使用するカーネルにデータをキャッシュします。

      クライアント側でキャッシュが無効になっているため、先読みと後書きプロセスが無効になります。先読みプロセスは、アプリケーションが次に要求する可能性のあるデータをカーネルが予測したときに、発生します。次に、カーネルはあらかじめデータを収集するプロセスを開始します。カーネルの目標は、アプリケーションがデータを要求する前にそのデータを準備しておくことです。

      クライアントは、書き込みのスループットを向上する後書きプロセスを使用します。アプリケーションがデータをファイルに書き込むたびに、入出力操作をただちに開始する代わりに、データはメモリー内にキャッシュされます。のちに、データはディスクに書き込まれます。

      後書きプロセスにより、データがより大きな領域に書き込まれたり、アプリケーションから非同期で書き込まれたりする可能性があります。通常、より大きな領域を使用するとスループットが向上します。非同期の書き込みにより、アプリケーション処理と入出力処理間でオーバーラップができるようになります。また、ストレージサブシステムが、より優れた入出力処理を行うことで入出力を最適化できるようにもなります。同期の書き込みは、最適化されていないストレージサブシステムでの入出力を強制的に処理します。

    • アプリケーションでキャッシュされていないデータのセマンティクスを処理する準備ができていない場合、著しくパフォーマンスが低下する可能性があります。マルチスレッド化されたアプリケーションは、この問題を回避します。


    注 -  並行書き込みのサポートが有効にされていない場合、すべての書き込み要求は直列化されます。ある書き込み要求が進行中のとき、2 番目の書き込み要求は、最初の処理が完了するのを待ってから処理を続行する必要があります。
  • 次の例は、mount コマンドを引数なしで使用して、クライアントにマウントされたファイルシステムを表示する方法を示しています。

    % mount
    / on /dev/dsk/c0t3d0s0 read/write/setuid on Wed Apr 7 13:20:47 2004
    /usr on /dev/dsk/c0t3d0s6 read/write/setuid on Wed Apr 7 13:20:47 20041995
    /proc on /proc read/write/setuid on Wed Apr 7 13:20:47 2004
    /dev/fd on fd read/write/setuid on Wed Apr 7 13:20:47 2004
    /tmp on swap read/write on Wed Apr 7 13:20:51 2004
    /opt on /dev/dsk/c0t3d0s5 setuid/read/write on Wed Apr 7 13:20:51 20041995
    /home/kathys on bee:/export/home/bee7/kathys              
      intr/noquota/nosuid/remote on Wed Apr 24 13:22:13 2004

umount コマンド

umount コマンドにより、現在マウントされているリモートファイルシステムを削除できます。umount コマンドには次のオプションを使用できます。

–V

テストを有効にします

–a

いくつかのファイルシステムを一度にアンマウントします。–a オプションに mount-points を指定すると、そのファイルシステムがアンマウントされます。マウントポイントが含まれない場合は、/etc/mnttab にリストされているすべてのファイルシステムのアンマウントが試行されます(//usr/var/proc/dev/fd/tmp など、「必要な」ファイルシステムを除く)。このファイルシステムはすでにマウントされていて /etc/mnttab にエントリがあるはずなので、そのファイルシステムタイプ用のフラグを含める必要はありません。

–f

ビジーファイルシステムを強制的にアンマウントします。このオプションを使用して、マウントできないファイルシステムのマウントを試みた最中にハングアップしたクライアントを復帰させることが可能です。


Caution

注意  -  ファイルシステムを強制的にアンマウントすることで、ファイルをそのシステムに書き込まれている場合にデータを失うことがあります。


使用例 8  ファイルシステムをアンマウントする

次の例では、/usr/man にマウントされたファイルシステムをアンマウントします。

# umount /usr/man
使用例 9  umount でオプションを使用する

次の例では、umount –a -V の実行結果が表示されます。

# umount -a -V
umount /home/kathys
umount /opt
umount /home
umount /net

このコマンドでは、実際にはファイルシステムはアンマウントされません。

mountall コマンド

mountall コマンドは、ファイルシステムテーブルにリストされているすべてのファイルシステムまたは特定のファイルシステムグループをマウントするために使用します。このコマンドには次のオプションが用意されています。

–F FSType

アクセスするファイルシステムタイプを選択します。

–r

ファイルシステムテーブルにリストされているすべてのリモートファイルシステムを選択します

–l

すべてのローカルファイルシステムを選択します

NFS ファイルシステムタイプに分類されるすべてのファイルシステムはリモートファイルシステムなので、これらのオプションの一部は冗長です。詳細は、mountall(1M) のマニュアルページを参照してください。

次の 2 つのユーザー入力例は同等です。

# mountall -F nfs
# mountall -F nfs -r

umountall コマンド

umountall コマンドは、ファイルシステムのグループをアンマウントするために使用します。umountall コマンドには次のオプションを使用できます。

–k

mount-point に関連付けられているプロセスを強制終了するために fuser –k mount-point コマンドを実行します。

–s

アンマウントが並行して実行されないことを示します

–l

ローカルファイルシステムだけが使用されることを指定します

–r

リモートファイルシステムだけが使用されることを指定します

–h host

指定されたホストからすべてのシステムファイルがアンマウントされるべきであることを指定します。–h オプションは、–l または –r と同時に指定できません。

次の例では、リモートホストからマウントされたすべてのファイルシステムをアンマウントします。

# umountall -r

次の例では、bee サーバーから現在マウントされているすべてのファイルシステムをアンマウントします。

# umountall -h bee

sharectl コマンド

    このリリースには、NFS などのファイル共有プロトコルを構成および管理できる管理ツールである、sharectl ユーティリティーが含まれています。このコマンドを使用して次のことを実行できます。

  • クライアントとサーバーの動作プロパティーを設定する

  • 特定のプロトコルのプロパティー値を表示する

  • プロトコルのステータスを取得する

sharectl ユーティリティーは次の構文を使用します。

# sharectl subcommand [option] [protocol]

sharectl ユーティリティーは次のサブコマンドをサポートしています。

set

ファイル共有プロトコルのプロパティーを定義します。プロパティーとプロパティー値の一覧については、nfs(4) のマニュアルページで説明されているパラメータを参照してください。

get

指定されたプロトコルのプロパティーとプロパティー値を表示します。

status

指定されたプロトコルが有効か無効かを表示します。プロトコルが指定されていない場合は、すべてのファイル共有プロトコルのステータスが表示されます。

set サブコマンド

ファイル共有プロトコルのプロパティーを定義する set サブコマンドは、次のオプションをサポートしています。

–h

オンラインヘルプの説明を提供します。

–p

プロトコルのプロパティーを定義します。

set サブコマンドは次の構文を使用します。

# sharectl set [-h] [-p property=value] protocol

set サブコマンドを使用するには root の特権が必要です。

このコマンドを追加プロパティー値ごとに繰り返す必要はありません。同じコマンドで –p オプションを複数回使用して複数のプロパティーを定義できます。

次の例は、クライアントの NFS プロトコルの最小バージョンを 3 に設定します。

# sharectl set -p client_versmin=3 nfs

次の例は、AUTH_SYS で共有されているすべてのファイルシステムに対する NFS 呼び出しに予約済みポートを使用するよう、クライアントに要求する方法を示しています。

# sharectl set -p resvport=on nfs

get サブコマンド

指定されたプロトコルのプロパティーとプロパティー値を表示する get サブコマンドは、次のオプションをサポートしています。

–h

オンラインヘルプの説明を提供します。

–p

指定されたプロパティーのプロパティー値を特定します。–p オプションが使用されていない場合は、すべてのプロパティー値が表示されます。

get サブコマンドは次の構文を使用します。

# sharectl get [-h] [-p property] protocol

get サブコマンドを使用するには root の特権が必要です。

次の例は servers を使用します。これは、同時に処理できる NFS 要求の最大数を指定できるプロパティーです。

# sharectl get -p servers nfs
servers=1024

次の例では、–p オプションが使用されていないため、すべてのプロパティー値が表示されます。

# sharectl get nfs
servers=1024
listen_backlog=32
protocol=ALL
servers=32
lockd_listen_backlog=32
lockd_servers=20
lockd_retransmit_timeout=5
grace_period=90
nfsmapid_domain=example.com
server_versmin=2
server_versmax=4
client_versmin=2
client_versmax=4
server_delegation=on
max_connections=-1
device=

status サブコマンド

status サブコマンドは、指定されたプロトコルが有効か無効かを表示します。オンラインヘルプの説明を提供する、–h オプションをサポートします。

status サブコマンドは次の構文を使用します。

# sharectl status [-h] [protocol]

次の例は、NFS プロトコルのステータスを表示します。

# sharectl status nfs
nfs	   enabled

share コマンド

share コマンドは、NFS サーバー上のローカルファイルシステムをマウント可能にするために使用します。share コマンドを使用して、システム上のファイルシステムのうち、現在共有されているもののリストを表示することもできます。share コマンドが機能するには、NFS サーバーが動作して必要があります。

すべてのディレクトリツリーは共有できるオブジェクトです。ただし、各ファイルシステムの階層構造は、そのファイルシステムが位置するディスクスライスやパーティションで制限されます。

すでに共有している大規模なファイルシステムの一部であるファイルシステムを共有することはできません。たとえば、/usr および /usr/local が 1 つのディスクスライス上にある場合は、/usr を共有したり /usr/local を共有したりできます。ただし、異なる共有オプションを指定してこれら両方のディレクトリを共有するには、/usr/local を別のディスクスライスに移動する必要があります。

読み取り専用で共有されているファイルシステムへのアクセスを、読み書きで共有されているファイルシステムのファイルハンドル経由で取得できます。ただし、両方のファイルシステムが同じディスクスライスにある必要があります。より安全な状況を作成するには、読み書きである必要があるファイルシステムを、読み取り専用として共有されているファイルシステムとは別のパーティションまたは別のディスクスライスに配置してください。


注 -  ファイルシステムが共有解除されてから再共有されるとき、NFS Version 4 がどのように機能するかについては、NFS Version 4 におけるファイルシステムの共有解除と再共有を参照してください。

share オプション

–o フラグと一緒に含めることができるオプションの一部を次に示します。

rw|ro

pathname ファイルシステムが、すべてのクライアントに読み書きまたは読み取り専用で共有されます。

rw=access-list

ファイルシステムが、リストされたクライアントにのみ読み書きで共有されます。それ以外の要求は拒否されます。詳細については、share コマンドによるアクセスリストの設定を参照してください。このオプションは –ro オプションをオーバーライドします。

NFS 固有 share オプション

NFS ファイルシステムで使用できるオプションには次が含まれます。

aclok

このオプションによって、NFS Version 2 プロトコルをサポートする NFS サーバーが NFS Version 2 クライアントのアクセス制御を行うように構成できます。このオプションを指定しないと、すべてのクライアントは最小限のアクセスしかできません。指定すると、最大限のアクセスができるようになります。たとえば aclok オプションを指定して共有したファイルシステムでは、1 人のユーザーが読み取り権を持っていれば全員が読み取りを許可されます。このオプションを指定しないと、アクセス権を持つべきクライアントからのアクセスが拒否される可能性があります。ユーザーに与えるアクセス権は、既存のセキュリティーシステムによって決定します。アクセス制御リスト (ACL) の詳細は、Oracle Solaris 11.3 でのファイルのセキュリティー保護とファイル整合性の検証 の アクセス制御リストによる UFS ファイルの保護を参照してください。


注 -  ACL を使用するには、クライアントとサーバーが NFS Version 3 および NFS_ACL プロトコルをサポートするソフトウェアを実行していることを確認してください。ソフトウェアが NFS Version 3 プロトコルのみをサポートする場合でも、クライアントは正しいアクセスを取得できますが、ACL を操作できません。NFS_ACL プロトコルをサポートしていれば、正しいアクセス権を取得した上で ACL の操作も可能です。
anon=uid

anon は、認証されていないユーザーのユーザー ID を選択するために使用します。anon-1 に設定すると、サーバーは認証されていないユーザーへのアクセスを拒否します。anon=0 を設定して root アクセスを付与することで、認証されていないユーザーに root アクセスを付与できるため、代わりに root オプションを使用してください。

index=filename

index=filename オプションによって、ユーザーが NFS URL にアクセスするときに、ディレクトリのリストが表示される代わりに、HTML ファイルが強制的にロードされます。これは、HTTP URL がアクセスしているディレクトリに index.html ファイルが見つかるとブラウザのような動作をするというものです。このオプションを設定することは、httpd に対して DirectoryIndex オプションを指定するのと同じ意味です。たとえば、share コマンドが次を報告するとします。

export_web /export/web   nfs sec=sys,public,index=index.html,ro

このとき、次の URL によって表示される情報はすべて同じです。

nfs://server/dir
nfs://server/dir/index.html
nfs://server//export/web/dir
nfs://server//export/web/dir/index.html
http://server/dir
http://server/dir/index.html
log=tag

このオプションによって、/etc/nfs/nfslog.conf 内に、ファイルシステム用の NFS サーバーロギング構成情報を含むタグを指定します。NFS サーバーログ機能を使用可能にするにはこのオプションを選択する必要があります。

nosuid

このオプションによって、setuid または setgid モードを有効にするすべての試行が無視されるべきであることを示します。NFS クライアントは、setuid または setgid ビットがオンのファイルを作成できません。

public

public オプションは、WebNFS ブラウズのために追加されました。このオプションで共有できるのは、1 台のサーバーにつき 1 つのファイルシステムだけです。

root=access-list

サーバーがリスト内のホストに root アクセスを付与します。デフォルトでは、サーバーはどのリモートホストにもルートアクセス権は与えません。選択されているセキュリティーモードが sec=sys 以外のものである場合は、リストにクライアントホスト名のみを含めることができます。詳細については、share コマンドによるアクセスリストの設定を参照してください。


Caution

注意  -  ほかのホストに root アクセスを付与することは、さまざまなセキュリティー上の影響があります。–root= オプションは十分慎重に使用してください。


root=client-name

client-name 値は、AUTH_SYS 認証で、exportfs(1B) で提供されるアドレスのリストに基づいてクライアントの IP アドレスをチェックするために使用されます。一致が見つかった場合、共有されているファイルシステムに root アクセスが付与されます。

root=hostname

AUTH_SYSRPCSEC_GSS などのセキュア NFS モードの場合、サーバーは、アクセスリストから派生したホストベース主体名のリストに基づいてクライアントの主体名をチェックします。クライアントの主体名の汎用構文は root@hostname です。Kerberos V の場合、構文は root/hostname.fully.qualified@REALM です。host-name 値を使用するときは、アクセスリスト上のクライアントは主体名用の資格を持っている必要があります。Kerberos V の場合、クライアントはその root/hostname.fully.qualified@REALM 主体名用の有効な keytab エントリを持っている必要があります。詳細は、Oracle Solaris 11.3 での Kerberos およびその他の認証サービスの管理 の Kerberos クライアントの構成を参照してください。

sec=mode[:mode]

このオプションによって、ファイルシステムへのアクセスを取得するために必要なセキュリティーモードを設定します。デフォルトのセキュリティーモードは、UNIX の認証です。モードは複数指定できますが、コマンド行に指定するときは 1 行につき 1 つのセキュリティーモードだけにしてください。各 sec= オプションは、別の sec= が検出されるまで、後続の rwrorw= ro=root=、および window= オプションに適用されます。–sec=none とすると、すべてのユーザーがユーザー nobody にマップされます。

window=value

value は、NFS サーバーで資格が有効な時間の上限です。デフォルトは 30000 秒 (8.3 時間) です。

resvport

このオプションは、個々のファイルシステムに対して予約済みポートの使用を強制します。

次の例は、AUTH_SYS で共有されている NFS 共有に予約済みポートを使用するよう、クライアントに要求する方法を示しています。

# share -F NFS -o resvport=on /usr/src

share コマンドによるアクセスリストの設定

share コマンドで提供するアクセスリストには、ドメイン名、サブネット番号、およびアクセスを拒否するエントリ、さらに標準の –ro=–rw=、または –root= オプションを含めることができます。この拡張により、名前空間を変更したり多数のクライアントを定義したリストを使用することなく、ファイルアクセス制御を単一のサーバーで簡単に管理できます。

次の例は、ほとんどのシステムに読み取り専用アクセスを提供しますが、roselilac には読み書きアクセスを許可します。

# share -F nfs -o ro,rw=rose:lilac /usr/src

次の例では、eng ネットグループ内のホストに読み取り専用アクセスを割り当てます。rose クライアントでは、読み取りと書き込みの両方ができます。

# share -F nfs -o ro=eng,rw=rose /usr/src

注 -  引数なしで rwro の両方を指定できません。読み書き可能オプションを指定しないと、デフォルトによってすべてのクライアントが読み書き可能になります。

複数のクライアントが 1 つのファイルシステムを共有するには、同じ行にすべてのオプションを入力する必要があります。同じオブジェクトに対して share コマンドの複数呼び出しを発行する場合、最後に実行されるコマンドだけが適用されます。次の例では、3 つのクライアントシステムで読み書きアクセスが有効になりますが、rosetulip だけにはファイルシステムへのアクセスが root として付与されます。

# share -F nfs -o rw=rose:lilac:tulip,root=rose:tulip /usr/src

複数の認証メカニズムを使用するファイルシステムを共有するときは、正しいセキュリティーモードのあとに –ro–ro=–rw–rw=–root、および –window オプションを含めていることを確認してください。この例では、eng というネットグループ内のすべてのホストに対して UNIX 認証が選択されています。これらのホストは、ファイルシステムを読み取り専用モードでのみマウントできます。ホスト tuliplilac は、これらのホストが Diffie-Hellman 認証を使用する場合にファイルシステムを読み書きでマウントできます。これらのオプションでは、tulip および lilac は、これらのホストが DH 認証を使用していない場合でも、ファイルシステムを読み取り専用でマウントできます。ただし、ホスト名が eng ネットグループに含まれている必要があります。

# share -F nfs -o sec=dh,rw=tulip:lilac,sec=sys,ro=eng /usr/src

デフォルトのセキュリティーモードは UNIX 認証ですが、–sec オプションを使用している場合、この UNIX 認証は含まれなくなります。そのため、UNIX 認証をほかの認証メカニズムとともに使用する場合は、–sec=sys オプションを指定する必要があります。

実際のドメイン名の前にドットを付けると、アクセスリスト中で DNS ドメイン名を使用できます。ドットの後の文字列はドメイン名です。完全指定のホスト名ではありません。次の例では、eng.example.com ドメイン内のすべてのホストにマウントアクセスを許可します。

# share -F nfs -o ro=.:.eng.example.com /export/share/man

この例では、単一ドットは NIS 名前空間で照合されたすべてのホストに一致します。ネームサービスから返される結果にはドメイン名は含まれません。.eng.example.com エントリは、名前空間解決に DNS を使用するすべてのホストに一致します。DNS は常に完全修飾ホスト名を返すため、DNS とほかの名前空間を組み合わせを使用する場合は長いエントリが必要です。

実際のネットワーク番号またはネットワーク名とアットマーク (@) を後置することで、アクセスリスト内でサブネット番号を使用できます。この文字は、ネットワーク名をネットグループ名や完全指定のホスト名と区別するためです。サブネットは、/etc/networks 内または NIS 名前空間内で識別する必要があります。次のエントリは、サブネット 192.168eng ネットワークと識別されている場合、すべて同じ意味を持ちます。

# share -F nfs -o ro=@eng /export/share/man
# share -F nfs -o ro=@192.168 /export/share/man
# share -F nfs -o ro=@192.168.0.0 /export/share/man

2 番目と 3 番目のエントリは、ネットワークアドレス全体を指定する必要がないことを表しています。

ネットワークアドレスの先頭部分がバイトによる区切りでなく、CIDR (Classless Inter-Domain Routing) のようになっている場合には、マスクの長さをコマンド行で具体的に指定できます。この長さは、ネットワーク名かネットワーク番号の後ろにスラッシュで区切ってアドレスの接頭辞に有効ビット数として指定します。次に例を示します。

# share -f nfs -o ro=@eng/17 /export/share/man
# share -F nfs -o ro=@192.168.0/17 /export/share/man

この例で、「/17」はアドレスの先頭から 17 ビットがマスクとして使用されることを表します。CIDR についての追加情報は、RFC 1519 を参照してください。

また、エントリの前に「-」を指定することでアクセスの拒否を示すこともできます。エントリは左から右に読み込まれるため、アクセス拒否のエントリは次のようにそのエントリを適用するエントリの前に置く必要があることに注意してください。

# share -F nfs -o ro=-rose:.eng.example.com /export/share/man

この例では、eng.example.com ドメイン内のホストにアクセスを許可します (rose という名前のホストを除く)。

unshare コマンド

unshare は、それまで利用可能であったファイルシステムをクライアントがマウントできなくするコマンドです。NFS ファイルシステムの共有を解除している場合、クライアントから既存マウントへのアクセスは禁止されます。ファイルシステムはクライアントでまだマウントされている可能性がありますが、ファイルにはアクセスできません。–t オプションを使用してファイルシステムの共有を一時的に解除する場合を除き、unshare コマンドは共有を恒久的に削除します。


注 -  ファイルシステムが共有解除されてから再共有されるとき、NFS Version 4 がどのように機能するかについては、NFS Version 4 におけるファイルシステムの共有解除と再共有を参照してください。

次の例では、ファイルシステム /usr/src を共有解除します。

# unshare /usr/src

shareall コマンド

shareall コマンドでは複数のファイルシステムを共有できます。オプションなしで使用すると、SMF リポジトリ内のすべてのエントリが共有されます。share コマンドを並べたファイルの名前を指定することができます。

次の例では、ローカルファイルにリストされているすべてのファイルシステムを共有します。

# shareall /etc/dfs/special_dfstab

unshareall コマンド

unshareall コマンドでは、現在共有されているすべてのリソースが利用できなくなります。–F FSType は、/etc/dfs/fstypes に定義されているファイルシステムタイプのリストを選択するオプションです。このフラグによって、特定のタイプのファイルシステムだけを共有解除できます。デフォルトファイルシステムタイプは /etc/dfs/fstypes に定義されています。特定のファイルシステムを選択するには、unshare コマンドを使います。

次の例では、すべての NFS タイプファイルシステムを共有解除します。

# unshareall -F nfs

showmount コマンド

    showmount コマンドは、次の情報を表示するために使用します。

  • NFS サーバーから共有している、リモートマウントされたファイルシステムを持つすべてのクライアント

  • クライアントによってマウントされたファイルシステムのみ

  • 共有されたファイルシステムとクライアントアクセス情報


注 -  showmount コマンドでは、NFS Version 2 および NFS Version 3 エクスポートだけが表示されます。このコマンドでは NFS Version 4 エクスポートは表示されません。

このコマンドの構文に次のようになります。

showmount [ –ade ] [ hostname ]

–a

すべてのリモートマウントのリストを出力します。各エントリには、クライアント名とディレクトリが含まれます。

–d

クライアントがリモートマウントしたディレクトリのリストを表示します。

–e

共有されているファイル、またはエクスポートされたファイルのリストを表示します。

hostname

表示する情報の取得元 NFS サーバーを指定します。

hostname を指定しない場合、ローカルホストが照会されます。

次の例では、すべてのクライアント、およびクライアントがマウントしたローカルディレクトリが一覧表示されます。

# showmount -a bee
lilac:/export/share/man
lilac:/usr/src
rose:/usr/src
tulip:/export/share/man

次の例では、マウントされているディレクトリが一覧表示されます。

# showmount -d bee
/export/share/man
/usr/src

次の例では、共有しているファイルシステムが一覧表示されます。

# showmount -e bee
/usr/src								(everyone)
/export/share/man					eng

/network/nfs/server:default サービスの nfs_props/showmount_info プロパティーは、showmount コマンドによってクライアントに表示される情報量を制御します。デフォルト値は full です。この値を none に設定すると、クライアントにはサーバー上のリモートファイルシステムのうち、クライアントがマウントできるもののみが表示されます。ほかのクライアントに関する情報は表示されません。このプロパティーの変更方法の例については、使用例 5を参照してください。

nfsref コマンド

nfsref コマンドは、NFSv4 リフェラルを追加、削除、または一覧表示するために使用されます。このコマンドの構文は次のとおりです。

nfsref add path location [ location … ]

nfsref remove path

nfsref lookup path

path

再解析ポイントの名前を決定します。

location

再解析ポイントに関連付ける 1 つ以上の NFS または SMB 共有ファイルシステムを識別します。