EN JA
EXPORTS(5)
EXPORTS(5) FreeBSD File Formats Manual EXPORTS(5)

名称

exportsNFS マウント要求に対するリモートマウントポイントを定義する

書式

exports

解説

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

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

マウントエントリ内の最初の欄 (複数) には、対応するクライアント (複数) がマウント可能であるサーバファイルシステム内ディレクトリパス (複数) を指定します。この指定には、3 つの形式があります。最初の指定形式は、全マウントポイントのリストであり、絶対ディレクトリパスを空白で区切ったものです。ディレクトリパスのこのリストは、カーネルではなく、 mountd(8) デーモンによってのみ強制されるので、“administrative control” (運営管理制御) であると見なされるべきです。そのようなものとして、NFSv2 と NFSv3 マウントとマウントプロトコルのクライアントの使用に関してのみ適用します。 2 番目の形式は、そのファイルシステムのルートパス名に続いて -alldirs フラグを指定するものです。この形式は、そのファイルシステム内の任意の点をホスト (複数) がマウントすることを可能にします。 mountd(8)-r オプションを用いれば、任意の点には通常ファイルを含むことができます。 NFSv4 は、マウントプロトコルを使用しないので、“administrative controls” (運営管理制御) は、適用されません。したがって、すべての上記のエクスポート (複数の) 行は、たとえ行がフラグなしで指定されても、 -alldirs フラグがあると見なされるべきです。 3 番目の形式には、NFSv4 ツリーのルートを指定するために、単一の絶対パス名が続く、文字列 ``V4:'' があります。この行は、どんなファイルシステムでもエクスポートされませんが、サーバのディレクトリツリーのルートが NFSv4 クライアントのためであるところで単にマークされます。 NFSv4 のエクスポートされるファイルシステムは、 NFSv2 と NFSv3 と同様に exports ファイルの他の行で指定されます。パス名中には、シンボリックリンクを含んではなりませんし、また“ .”または“ ..”を含んではなりません。 1 つのファイルシステムに対するマウントポイントを複数指定することが可能であり、それぞれ異ったホストとエクスポートオプションの組を指定することができます。

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

エクスポートオプションは、次のように指定されます:

-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 を含む全てのユーザは、それら自身の資格の代りに指定した資格にマップされます。

-sec=flavor1:flavor2... は、リモートアクセスのために使用される受け付け可能なセキュリティフレーバ (security flavor) のコロンで区切られたリストを指定します。サポートされたセキュリティフレーバは、sys、krb5、krb5i と krb5p です。複数のフレーバがリストされているなら、それらは、最初に、最も優先されるフレーバで順序付けられるべきです。このオプションが提示さないなら、単に sys のデフォルトのセキュリティフレーバリストが使用されます。

-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 ファイル ( netgroup(5) 参照) の中で定義した“netgroup”を指定する方法です。 3 番目の方法は、1 つのネットワークとネットワークマスクを用いることにより、 1 つのインターネットサブネットワークを指定する方法です。これは、そのサブネットワーク内のアドレスを持つ全てのホストの組として定義されます。この最後の方法は、カーネルのオーバヘッドを低く押えられるため、 1 つの管理サブネット内の多くのクライアントをエクスポートの行が参照する場合に推奨されます。

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

スコープ IPv6 アドレスは、 inet6(4) に文書化されているようにスコープ識別子を持っていなければなりません。例えば、“ fe80::%re2/10”は、 re2 インタフェースの fe80::/10 を指定するために使用されます。

NFSv4 ツリーのルートを指定する 3 番目の形式として、ディレクトリパスは、 NFSv4 ツリーのルートであるサーバのファイルシステムツリー内の位置を指定します。この形式のすべてのエントリは、同じディレクトリパスを指定しなければなりません。 ZFS 以外のファイルシステムについて、この位置は、あらゆるディレクトリを指定することができ、エクスポートされるファイルシステム内にある必要はありません。それがエクスポートしているファイルシステムにないなら、 NFSv4 クライアントがエクスポートしているファイルシステムへのツリーを横断できるように、操作の非常に制限されたセットは、許可されています。 NFSv4 ツリーの部分をエクスポートすることができませんが、全体の NFSv4 ツリーは、NFS を通してエクスポートすることができるローカルファイルシステムから成らなければなりません。 NFSv4 ツリー以下のサブツリーのすべての ZFS ファイルシステムは、エクスポートされなければなりません。 NFSv4 は、マウントプロトコルを使用せず、クライアントがサーバのマウントポイント境界を交差することを可能にしますが、すべてのクライアントが、マウントポイントを交差できるというわけではありません。

これらの (複数の) 行での -sec オプションは、どのようなセキュリティの特色がファイルハンドルを使用しない NFSv4 操作に使用されるかを指定します。これらの操作 (SetClientID、SetClientIDConfirm、Renew、DelegPurge、と ReleaseLockOnwer) は、サーバで状態を割り当てるか、または変更するので、このオプションを通して、krb5[ip] セキュリティの特色の使用をいくつかのクライアントに制限することができます。下記の 「使用例」 のセクションを参照してください。この 3 番目の形式は、NFSv2 と NFSv3 で無意味であり、それらでは、無視されます。

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

/etc/rc.d/mountd reload

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 
/a -network 192.168.0/24 
/a -network 3ffe:1ce1:1:fe80::/64 
/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 
/private -sec=krb5i 
/secret -sec=krb5p 
V4: / -sec=krb5:krb5i:krb5p -network 131.104.48 -mask 255.255.255.0 
V4: / -sec=sys:krb5:krb5i:krb5p grumpy.cis.uoguelph.ca

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

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

/u をルートとするファイルシステムは、サブネットワーク 131.104.48 上の全てのホストにエクスポートされ、この際 root は、“bin”の UID にマップされてグループアクセスを持ちません。

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

/a をルートとするファイルシステムは、255.255.255.0 のネットマスクで、ネットワーク 192.168.0.0 にエクスポートされます。しかしながら、 /a のためのエントリでネットマスクの長さは、 -mask オプションを通して指定できませんが、 /prefix 表記法でできます。

また、 /a をルートとするファイルシステムは、接頭辞として上位の 64 ビットを使用し、IPv6 ネットワーク 3ffe:1ce1:1:fe80:: アドレスにエクスポートされます。 IPv4 ネットワークアドレスと異なって、指定されたネットワークアドレスは、完全でなければならなくて、上位のビットを含まないことに注意してください。 IPv6 アドレスと共に、 -mask オプションを使用してはいけません。

すべてのサブディレクトリを含む /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 をエクスポートします。

/private がルートとなるファイルシステムは、Kerberos 5 認証を使用してエクスポートされ、すべてのアクセスのための整合性保護されたメッセージを必要とします。 /secret がルートとなるファイルシステムは、Kerberos 5 認証を使用してエクスポートされ、それをアクセスするために使用されるすべてのメッセージは、暗号化されます。

実験的なサーバに関して、NFSv4 ツリーは、``/'' にルートが置かれ、 131.104.48 サブネット内の任意のクライアントは、有効な Kerberos 資格証明が提供される限り、サーバで NFSv4 状態操作を実行することが許可されています。マシン grumpy.cis.uoguelph.ca は、Kerberos のものと同様に、 AUTH_SYS 資格証明を使用するサーバで NFSv4 状態操作を実行することが許可されています。

バグ

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