EXPORTS(5)

名称
exports - NFS マウント要求に対するリモートマウントポイントを定義する

書式
exports

解説
exports ファイルは NFS サーバの指定 1 つについて NFS マウントプロトコルに対するリモートマウントポイントを指定します。 RFC1094, Appendix A および Appendix I を参照してください。

exports ファイルの各行 (# で始まる注釈行以外) は、1 つ以上のホスト向けに、 1 つのローカルサーバファイルシステム内の マウントポイント (複数) とエクスポートフラグを指定します。 長い行は一番最後の行以外の行をバックスラッシュ (‘\’) で終らせると複数の行に分割することができます。 あるホストは、 サーバの各ローカルファイルシステムに関して唯 1 度だけ指定可能です。 また他の全てのホストに適用されるデフォルトエントリは、 各サーバファイルシステムに関して唯 1 つだけ指定できます。 後者は ``世界'' に対しそのファイルシステムを公開することになるので、 そのファイルシステムが公の情報を含むときにのみ用いるべきです。

マウントエントリ内の最初の欄 (複数) には、 対応するクライアント (複数) がマウント可能である サーバファイルシステム内ディレクトリパス (複数) を指定します。 この指定には 2 つの形式があります。 最初の指定形式は、 全マウントポイントのリストであり、 絶対ディレクトリパスを空白で区切ったものです。 次の指定形式は、そのファイルシステムのルートパス名に続いて -alldirs フラグを指定するものです。この形式は、そのファイルシステム内の任意の点を ホスト (複数) がマウントすることを可能にします。 mountd(8) で -r オプションを用いれば、任意の点には通常ファイルを含むことができます。 パス名中には、シンボリックリンクを含んではなりませんし、また "." または ".." を含んではなりません。 1 つのファイルシステムに対するマウントポイントを複数指定することが可能であり、 それぞれ異ったホストとエクスポートオプションの組を指定することができます。

行の 2 番目の部分には、そのファイルシステムがホストの組にどのように エクスポートされているかを指定します。 オプションフラグは、 そのファイルシステムを読み取り専用でエクスポートしているのか それとも読み書き可でエクスポートしているのかを指定したり、 クライアントの UID がサーバ上のユーザ資格にどのように マップされているのかを指定します。

エクスポートオプションは以下のとおりです。

-maproot=user 指定されたユーザの資格を、root によるリモートアクセスに対して使用します。 その資格には、ローカルマシン上でユーザが属する全てのグループを含みます ( id(1) 参照)。ユーザは名前または数字です。

-maproot=user:group1:group2:... コロンによって区切られたリストは、 root によるリモートアクセスに対して使用する正確な資格を指定するために 使用します。 リストの要素は名前または数字です。 グループを含まない資格をユーザに関する完全な資格と区別するためには、 user: を使用すべきであることに注意してください。

-mapall=user または -mapall=user:group1:group2:... -maproot と同じ指定方法で、 (root を含む) 全てのクライアントの UID に対するマッピングを指定します。

-r オプションは -maproot と同じ意味です。 これは古い export ファイル形式と互換性を保つために用意されました。

-maproot および -mapall オプションのない場合には、 root によるリモートアクセスは -2:-2 という資格を用いることになります。 その他の全てのユーザはそれぞれのリモート資格にマップされます。 -maproot オプションを指定すると、root によるリモートアクセスは -2:-2 の代りに 指定した資格にマップされます。 -mapall オプションを指定すると、root を含む全てのユーザはそれら自身の資格の代りに 指定した資格にマップされます。

-ro オプションは、ファイルシステムが読み取り専用としてエクスポートされることを 指定します (デフォルトは読み書き可)。 -o オプションは -ro と同じ意味です。 これは古い export ファイル形式と互換性を保つために用意されました。

仕様 (RFC 2054 と RFC 2055) に厳密に従う WebNFS エクスポートは -public フラグにて実現されます。 しかしながら、このフラグ自身は、ファイルシステム中の全ファイルに対して 読み書きアクセスを与えますが、予約ポートを必要としませんし、 uid のマッピングも行いません。 これは仕様を満すためだけに提供されており、通常は使用すべきではありません。 WebNFS エクスポートのためには、 -webnfs フラグを使用します。これは -public, -mapall=nobody, -ro を意味します。 サーバ上では 1 つのファイルシステムしか WebNFS エクスポートできないことに注意してください。

-index=file オプションを使用して、パブリックファイルハンドル (WebNFS) を使用してディレクトリが検索された時にハンドルが返される ファイルを指定できます。 これは URL の動作のまねをします。 -index オプションが指定されないと、通常通りディレクトリファイルハンドルが返されます。 -index オプションは -public または -webnfs フラグと組み合わせたときのみ意味があります。

-quiet オプションを指定すると、 /etc/exports 中の変な行に関する syslog への診断出力の一部を抑制します。 既知のあり得る問題による五月蝿いエラーメッセージを避けるのに有用です (後述の 使用例 参照)。

行の 3 番目の部分には、その行が適用されるホストの組を指定します。 この組は 3 つの方法で指定できます。 最初の方法はホスト名 (複数) を空白で区切って並べる方法です。 (名前の代りに、標準的なインターネット ``ドット'' アドレスを用いることも できます)。2 番目の方法はネットグループファイル ( netgroup(5) 参照) の中で定義した ``netgroup'' を指定する方法です。 3 番目の方法は、 1 つのネットワークとネットワークマスクを用いることにより、 1 つのインターネットサブネットワークを指定する方法です。 これは、 そのサブネットワーク内のアドレスを持つ全てのホストの組として定義されます。 この最後の方法はカーネルのオーバヘッドを低く押えられるため、 1 つの管理サブネット内の多くのクライアントを エクスポートの行が参照する場合に推奨されます。

最初の 2 つの指定方法では、単に空白で区切られた名前 (複数) を並べて指定します。 全ての名前は、まずそれらが ``netgroup'' 名であるかチェックされ、 そうでなければホスト名であると仮定されます。 ホスト名に完全ドメイン指定をすれば、 ネットグループと同じ名前を持つホストの問題を通常避けることができます。 3 番目の指定方法は、 -network=netname フラグとオプションの -mask=netmask フラグによって指定します。マスクが指定されないと、そのネットワーククラス (A, B, C のどれかです。 inet(4) を参照してください) に対するマスクとなります。 後述の 使用例 参照。

mountd(8) ユーティリティに exports ファイルを再度読み取らせるためには、 ハングアップシグナルを次のように送ります:

    kill -s HUP `cat /var/run/mountd.pid`

SIGHUP の送信後に syslogd(8) 出力を確認して、 exports ファイル中の解析エラーを mountd(8) が記録したかどうか見てください。

関連ファイル
/etc/exports
    デフォルトのリモートマウントポイントファイル

使用例

    /usr /usr/local -maproot=0:10 friends
    /usr -maproot=daemon grumpy.cis.uoguelph.ca 131.104.48.16
    /usr -ro -mapall=nobody
    /u -maproot=bin: -network 131.104.48 -mask 255.255.255.0
    /u2 -maproot=root friends
    /u2 -alldirs -network cis-net -mask cis-mask
    /cdrom -alldirs,quiet,ro -network 192.168.33.0 -mask 255.255.255.0

/usr, /u, /u2 がローカルファイルシステムマウントポイントとすると、上の例は以下を指定します:

/usr はネットグループファイルで指定されるホスト群 friends にエクスポートされ、 この際ユーザはそれぞれのリモート資格にマップされ、 root は UID 0 およびグループ 10 にマップされます。 このファイルシステムは読み書き可でエクスポートされ、 ``friends'' 内のホストは /usr と /usr/local のどちらもマウントできます。 このファイルシステムは 131.104.48.16 および grumpy.cis.uoguelph.ca にエクスポートされ、 この際ユーザはそれぞれのリモート資格にマップされ、 root は ``daemon'' に結び付けられたユーザおよびグループにマップされます。 このファイルシステムは残りの世界へ読み出しのみでエクスポートされ、 この際全てのユーザは ``nobody'' に結び付けられたユーザおよびグループに マップされます。

/u はサブネットワーク 131.104.48 上の全てのホストにエクスポートされ、 この際 root は ``bin'' の UID にマップされてグループアクセスを持ちません。

/u2 は ``friends'' 中のホストにエクスポートされ、 その際 root は ``root'' に結び付けられた UID とグループにマップされます。 このファイルシステムは ``cis-net'' ネットワーク上の全てのホストへ エクスポートされ、 この際 /u2 内のどんなディレクトリへもマウントを許します。

サブディレクトリを含む /cdrom を根とするファイルシステムが、 ネットワーク 192.168.33.0/24 へ読み取り専用でエクスポートされます。 /cdrom は CD-ROM デバイスの慣習的なマウントポイントですので、 現在 CD-ROM メディアがマウントされていないとこのエクスポートは失敗します。 何故なら、この行には -alldirs があるため、ルートファイルシステムのサブディレクトリがエクスポート されようとするのですが、これは許可されていないからです。 -quiet オプションは、通常は syslog に記録されてしまう この条件のエラーメッセージを抑制します。 CD-ROM がマウントされると、 mount(8) は mountd(8) にこの状況を通知し、 /cdrom ファイルシステムが意図通りにエクスポートされます。 -alldirs オプションを使用しないと、エクスポートは常に成功することに注意してください。 この場合、 /cdrom 下に CD-ROM メディアがマウントされていなくても、 ルートファイルシステム中の (通常は空の) ディレクトリ /cdrom をエクスポートします。

関連ファイル
/etc/exports
    デフォルトリモートマウントポイントファイル

関連項目
netgroup(5), mountd(8), nfsd(8), showmount(8)

バグ
エクスポートオプションは、 カーネル内ではローカルマウントポイントに結び付けられます。 ローカルサーバマウントポイントのサブディレクトリでエクスポートされたものに、 エクスポートオプションの矛盾があってはいけません。 同じファイルシステム内の全てのエクスポートされたディレクトリは、 木を下る順に隣り合った行で指定されることが推奨されます。 ネットグループ名と同じ名前のホスト名は指定できません。 完全ドメイン指定でホスト名を指定すれば通常は問題ありません。