9.3. NFSサーバー設定

Red Hat Enterprise LinuxでのNFSサーバーを設定するには、NFS サーバー設定ツール (redhat-config-nfs) を使用する方法、、手動で設定ファイル(/etc/exports) を編集する方法、 /usr/sbin/exportfsコマンドを使用する方法 の3つがあります。

NFS サーバー設定ツールを使用する場合の詳細は、 Red Hat Enterprise Linux システム管理ガイドの章、 ネットワークファイルシステム(NFS)を参照ください。 このセクションでは手動で /etc/exportsを編集する方法と、 /usr/sbin/exportfsコマンドを使って NFSファイルシステムをエクスポートする方法について説明します。

9.3.1. NFSサーバー設定ファイル

/etc/exports ファイルはどのファイルシステムがリモートホストにエクスポートされるかを制御して、 オプションを指定します。空白行は無視されます。 コメントはラインの最初を「#」マークにしてください。 長い行はバックスラッシュ(\)を使用してラップできます。 各エクスポート対象ファイルシステムは、それぞれ独自の行上になければいけません。 エクスポート対象ファイルシステムの 後ろに置かれた許可ホストの一覧は、 空白文字で区切られていなければなりません。 各ホストのオプションは ホスト識別子の直後にあるかっこ内に配置し、 ホスト識別子と最初のかっこの間に空白がないようにしてください。

エクスポート対象ファイルシステムのラインは次のような構造になっています。

<export> <host1>(<options>) <hostN>(<options>)...

この中の<export> をエクスポートされたディレクトリに置き換えてください。<host1> はエクスポートを共有しているホストまたはネットワーク に置き換えてください。 そして (<options> をそのホストまたは ネットワークのオプションに置き換えてください。 追加ホストは空白で区切られたリストに指定することができます。

次の方法でホスト名を指定することができます。

/etc/exportsにはエクスポート対象ディレクトリと、 そのディレクトリの使用を許可されているホストの指定が最低必要となります。

/exported/directory bob.example.com

この例では、 bob.example.comによって/exported/directory/をマウントすることができます。 この例ではオプションの指定がないため、次のデフォルトNFSオプションが有効となります。

誓要項目重要
 

デフォルトでは アクセス制御リスト (ACL)はRed Hat Enterprise LinuxのNFSによってサポートされます。 この機能を無効にするには、ファイルシステムをエクスポートする際にsno_aclオプションを指定してください。この機能に関する詳細は Red Hat Enterprise Linux システム管理ガイド の章、ネットワーク ファイル システム(NFS)を参照ください。

各エクスポート対応のファイルシステムのデフォルトを確実に無効にしてください。 例えば、rwオプションが指定されていない場合、 エクスポート対応のファイルシステムは読み取り専用として共有されます。 次の例は、 2つのデフォルトオプションを無効にする /etc/exportsのラインです。

/another/exported/directory 192.168.0.3(rw,sync)

この例では192.168.0.3 によって /another/exported/directory/ 読み書きをマウントすることができます。また、クライアントからの書き込み要求が完了する前に ディスクに移動されたものすべてがディスクにコミットされます。

さらに、デフォルト値が指定されていない場合は 他のオプションを使用することができます。 これには、サブツリーのチェックを無効にする機能、 安全でないポートからのアクセス許可、安全でないファイルロックの許可(特定の初期 NFSクライアント実装に必要)などがあります 使用頻度の少ないこれらのオプションについての詳細は exports manページを参照してください。

警告警告
 

/etc/exportsファイルをフォーマットする方法は非常に厳密で、特に空白文字の使用について重要です。 エクスポートファイルシステムをホストから離し、ホスト同士を空白文字で離すことを忘れないでください。ただし、 コメント行で使用する場合を除き、ファイル内にこれ以外の空白文字がないようにしてください。

たとえば、次の2行は同じ内容ではありません。

/home bob.example.com(rw)
/home bob.example.com (rw)

第1行目は、/homeディレクトリへの読み書きのアクセスを bob.example.comのユーザーのみに許可します。 第2行目は、 ディレクトリを読み取り専用としてマウントする許可を bob.example.comのユーザーに与えますが、他のユーザーは読み書き可能としてマウントすることができます。

/etc/exportsを編集してNFSサーバーを設定する方法の詳細は Red Hat Enterprise Linux システム管理ガイドの章、ネットワーク ファイル システム (NFS)を 参照ください。

9.3.2. exportfsコマンド

NFSによりリモートユーザーに エクスポートされるすべてのファイルシステムと、これらファイルシステムのアクセスレベルの一覧は/etc/exportsファイルにあります。 nfsサービスが起動されると、 /usr/sbin/exportfsコマンドが開始され、 このファイルを読み出します。 そして、リモートユーザーが使用できるファイルシステムを rpc.mountdrpc.nfsd に伝えます。

手動で行なう場合、 /usr/sbin/exportfsコマンドを使用すれば、 NFSサービス再起動しなくても、選択したディレクトリをrootユーザーによってエクスポート/アンエクスポートすることができます。 /usr/sbin/exportfsに適切なオプションが渡されると、 エクスポート対象のファイルシステムが/var/lib/nfs/xtab に書き込まれます。 ファイルシステムに対するアクセス権を判断するときに rpc.mountdxtabファイルを参照するため、 エクスポート対象のファイルシステムの一覧に対する変更は直ちに有効となります。

/usr/sbin/exportfsでよく使われるオプションは次の通りです。

/usr/sbin/exportfsコマンドにオプションが渡されないときは、 現在エクスポートされているファイルシステムの 一覧が表示されます。

/usr/sbin/exportfsコマンドの詳細はexportfs man ページを参照ください。