/etc/exports
には、ネットワークを介して利用できるようにする (エクスポートされる) ディレクトリをリストします。各 NFS 共有について、リストされたマシンだけがアクセスを許可されます。よりきめ細かなアクセス制御を行うには、いくつかのオプションを使います。/etc/exports
ファイルの構文はとても単純です。
/directory/to/share machine1(option1,option2,...) machine2(...) ...
fsid=0
または fsid=root
で識別されなければいけません。これらの点に注意してください。
*.falcot.com
などの構文を使うか 192.168.0.0/255.255.255.0
や 192.168.0.0/24
などの IP アドレス範囲を使います。
ro
オプションを使えば) 読み込み専用として利用できるようにされます。rw
オプションを使えば読み書きアクセスが許可されます。典型的に NFS クライアントは root だけが使えるポート (言い換えれば、1024 番よりも低い番号のポート) から接続します。高いポート番号を使うクライアントからの接続を受け入れるには、insecure
オプションを使います (secure
オプションは暗黙的に有効化されていますが、明示する必要があればオプションを明示することも可能です)。
sync
オプション) 後です。これを無効化するには、async
オプションを使います。非同期書き込みを使うことで、性能はほんの少し向上しますが、信頼性は低下します。なぜなら、書き込み確認とディスクへの実際の書き込みの間にサーバがクラッシュした場合に、データを損失する危険性があるからです。デフォルト値が sync
に変更されたのは最近なので (NFS バージョンによってデフォルト値が違うので)、明確に sync
オプションを設定することを推奨します。
nobody
ユーザからの問い合わせとして処理します。この挙動は root_squash
オプションを使った場合の挙動に対応し、root_squash
オプションはデフォルトで有効化されています。no_root_squash
オプションを使うことで、この挙動は無効化されますが、no_root_squash
オプションは危険であり管理されない環境で使うべきではありません。anonuid=uid
と anongid=gid
オプションを使うことで、UID/GID 65534 (これは nobody
ユーザと nogroup
グループに対応します) の代わりに使う別の偽ユーザを指定することが可能です。
sec
オプションを追加してセキュリティレベルを指定することが可能です。デフォルト設定の sec=sys
は特別なセキュリティ機能を有効化しません。sec=krb5
は認証機能だけを有効化します。sec=krb5i
は認証と整合性保護機能を有効化します。sec=krb5p
はすべての機能、すなわち認証、整合性保護、プライバシー保護機能 (データ暗号化機能を含みます) を有効化します。これらを使うには、Kerberos サービスを動作させる必要があります (Kerberos サービスについては本書で解説されていません)。
mount
コマンドと /etc/fstab
ファイルにいくつかの調整を行うパラメータを含める必要があります。
例 11.22 mount
コマンドを用いた手作業によるマウント
#
mount -t nfs4 -o rw,nosuid arrakis.internal.falcot.com:/shared /srv/shared
例 11.23 /etc/fstab
ファイルの NFS エントリ
arrakis.internal.falcot.com:/shared /srv/shared nfs4 rw,nosuid 0 0
arrakis
サーバの /shared/
NFS ディレクトリがローカルの /srv/shared/
ディレクトリにマウントされます。ここでは読み書きアクセスを要求しています (このため rw
パラメータを追加しています)。nosuid
オプションは一種の保護手段で、共有ディレクトリに保存されているプログラムに設定された setuid
または setgid
ビットを無効化します。文書を保存するだけの目的で NFS 共有を使っている場合、noexec
オプションを追加することを推奨します。これは共有ディレクトリに含まれるプログラムの実行を避けるものです。NFS サーバ上では shared
ディレクトリは NFSv4 ルートエクスポート (たとえば /export/shared
) の下位に属すディレクトリであり、最上位ディレクトリではありません。この点に注意してください。