22.4 ファイルシステムの手動エクスポート

を使用しない場合は、以下のシステムがNFSサーバ上で稼動していることを確認します。

/etc/init.d/portmapスクリプトと/etc/init.d/nfsserverスクリプトを使用して、システムの起動時にこれらのサービスを起動するには、「insserv /etc/init.d/nfsserver」コマンドと「insserv /etc/init.d/portmap」コマンドを入力します。 また、どのファイルシステムを、どのホストにエクスポートするかを設定ファイル/etc/exportsに定義します。

エクスポートするディレクトリごとに 1行を指定して、どのマシンがどのようなパーミッションでそのディレクトリにアクセスできるかを設定します。このディレクトリのすべてのサブディレクトリも、自動的にエクスポートされます。許可するマシンは、通常、フルネーム(ドメイン名付き)で指定しますが、*?のようなワイルドカードを使用することもできます(Bashシェルと同様に展開)。ここでマシンを指定しない場合、指定したパーミッションで、すべてのマシンがこのファイルシステムにアクセスできます。

エクスポートファイルシステムのパーミッションを、マシン名の後にカッコで囲んで設定します。重要なオプションを表 22.1. 「エクスポートされるファイルシステムのパーミッション」に示します。

表 22.1 エクスポートされるファイルシステムのパーミッション

オプション

意味

ro

ファイルシステムを読み込み専用(read only)パーミッションでエクスポートします(デフォルト)。

rw

ファイルシステムを読み書き可能パーミッションでエクスポートします。

root_squash

インポート側ホストのrootユーザが、このファイルシステムでrootパーミッションを持たないようにします。そのために、ユーザID 0 (rootユーザのID)に、ユーザID 65534が割り当てられます。このユーザIDは、nobody (デフォルト)に設定する必要があります。

no_root_squash

ユーザID 0をユーザID 65534に割り当てず、rootユーザのパーミッションを有効なままにします。

link_relative

絶対リンク(/で始まるリンク)を../に変換します。これは、マシンのファイルシステム全体がマウントされている場合(デフォルト)のみ使用できます。

link_absolute

シンボリックリンクを変更しません。

map_identity

各ユーザIDがクライアントとサーバの両方で一致します(デフォルト)。

map_daemon

クライアントとサーバに、一致するユーザIDがありません。この結果、nfsdによってユーザIDの変換テーブルが作成されます。変換テーブルの作成には、ugiddデーモンが必要です。

exportsファイルの例を、例 22.1. 「/etc/exports」に示します。 /etc/exportsが、mountdとnfsdによって読み込まれます。ファイルをまったく変更しない場合は、mountdとnfsdを再起動して、変更内容を有効にします。再起動は、rcnfsserverrestartによって簡単に実行できます。

例 22.1 /etc/exports

#
# /etc/exports
#
/home            sun(rw)   venus(rw)
/usr/X11         sun(ro)   venus(ro)
/usr/lib/texmf   sun(ro)   venus(rw)
/                earth(ro,root_squash)
/home/ftp        (ro)
# End of exports