Show Table of Contents
9.7.1.
9.7. NFS サーバーの設定
NFS サーバーの設定には2つの方法があります。
- NFS の設定ファイル、
/etc/exportsを手動で編集する方法。 - コマンド
exportfsの使用により、コマンドラインを介して実行する方法。
9.7.1. /etc/exports 設定ファイル
/etc/exports ファイルは、リモートホストにエクスポートされるファイルシステムを制御して、オプションを指定します。以下の構文ルールに従います。
- 空白行は無視する。
- コメントを追加するには、その行をハッシュ記号 (
#) で始める。 - 長い行はバックスラッシュ (
\) を使って折り返す。 - エクスポートされるファイルシステムはそれぞれ独自の行に置く。
- エクスポートされるファイルシステムの後に配置される許可ホストの一覧はすべて、空白文字で分離する。
- 各ホストのオプションはホスト識別子の直後にある括弧内に配置し、ホストと最初の括弧の間に空白を入れない。
エクスポートされるファイルシステムの各エントリーには以下の構造があります。
export host(options)
前述の構造は以下の変数を使用します。
- export
- エクスポートされるディレクトリー
- host
- エクスポートを共有するホストまたはネットワーク
- options
- host に使用するオプション
各ホストに特定のオプションを付けて複数のホストを指定することができます。これを実行するにはホスト名の後にそれぞれのオプションを以下のように (括弧内に) 付けて、空白区切り行と同じ行にホストを一覧表示します。
export host1(options1) host2(options2) host3(options3)
ホスト名を指定するための異なるメソッドに関する詳細情報については、「ホスト名の形式」 を参照してください。
最も簡素な形式では、
/etc/exports ファイルはエクスポートしたディレクトリーとそれにアクセス許可のあるホストを指定するだけです。以下の例のようになります。
例9.6 /etc/exports ファイル
/exported/directory bob.example.com
ここで、
bob.example.com は、 NFS サーバーから /exported/directory/ をマウントできます。この例にはオプションが指定されていないため、NFS は デフォルト の設定を使用します。
デフォルトの設定は以下のようになります。
- ro
- エクスポートしたファイルシステムは読み込み専用です。リモートホストは、ファイルシステム上で共有されているデータの変更はできません。ファイルシステムに対して変更 (読み込み/書き込み) ができるようにするには、
rwオプションを指定します。 - sync
- NFS サーバーは以前の要求で発生した変更がディスクに書き込まれるまでは、要求に応答しません。それに代わって非同期書き込みを有効にするには、オプション
asyncを指定します。 - wdelay
- NFS サーバーは、別の書き込み要求が間近に来ていると判定すると、ディスクへの書き込みを遅らせます。別々の書き込みコマンドによるディスクへのアクセス回数を低減できるため、これが書き込みのワークロードを低下させてパフォーマンスを向上します。これを無効にするには、
no_wdelayを指定します。デフォルトのsyncオプションも指定されている場合にのみno_wdelayは利用可能になります。 - root_squash
- これは、(ローカルではなく) リモート で接続している root ユーザーが root 権限を持つことを阻止するものです。その代わりに、NFS サーバーは、そのユーザーにユーザー ID
nfsnobodyを割り当てます。これが、効果的にリモートの root ユーザーの権力を最低のローカルユーザーレベルへと「押しつぶし」て、リモートサーバー上での無許可の書き込み可能性を阻止します。この root squashing を無効にするには、no_root_squashを指定します。
すべてのリモートユーザー (root を含む) を潰す (squash) には、
all_squash を使用します。NFS サーバーが特定のホストからリモートユーザーに対して割り当てるべきユーザー ID とグループ ID を指定するには、anonuid と anongid のオプションをそれぞれ以下のように使用します。
export host(anonuid=uid,anongid=gid)
ここで、uid と gid はそれぞれ、ユーザー ID 番号およびグループ ID 番号です。
anonuid と anongid のオプションは、リモート NFS ユーザーが共有するための特別なユーザーおよびグループアカウントの作成を可能にします。
デフォルトでは、access control lists (アクセス制御リスト) (ACL) は、Red Hat Enterprise Linux の下で NFS によってサポートされています。この機能を無効にするには、ファイルシステムをエクスポートする際に
no_acl オプションを指定します。
すべてのエクスポートされたファイルシステムのデフォルトは明示的に上書きする必要があります。たとえば、
rw オプションを指定しないと、エクスポートしたファイルシステムは読み込み専用として共有されます。以下のサンプルは、/etc/exports からの行であり、これは 2 つのデフォルトオプションを上書きしています。
/another/exported/directory 192.168.0.3(rw,async)
この例では、
192.168.0.3 は /another/exported/directory/ を読み込み/書き込みでマウントできて、ディスクへの書き込みはすべて非同期となります。エクスポートオプションの詳細については、man exportfs を参照してください。
さらに、デフォルト値が指定されていない他のオプションも利用可能です。これらのオプションとして、サブツリーチェックを無効にする機能、安全でないポートからのアクセスの許可、および安全でないファイルロックの許可 (一部の初期 NFS クライアント実装で必要)などがあります。頻繁には使用しないこれらのオプションの詳細については
man exports を参照してください。
重要
/etc/exports ファイルの形式は、特に空白の使用に関しては非常に厳格です。常にホストとエクスポートされるファイルシステムの間、およびホスト同士の間を空白で隔離することを忘れないでください。しかし、コメント行以外では、ファイル内の他の場所には空白が存在すべきではありません。
たとえば、以下の2つの行は同じ意味ではありません。
/home bob.example.com(rw) /home bob.example.com (rw)
最初の行は
bob.example.com からのユーザーにのみ /home ディレクトリーへの読み込み/書き込みアクセスを許可します。2番目の行は bob.example.com からのユーザーにディレクトリーを読み込みのみで(デフォルト)マウントを許可して、他の人々には読み込み/書き込みでマウントすることを許可します。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.