名称
exportfs ― NFS クライアントへのディレクトリのエクスポートおよびアンエクスポート
構文
/usr/sbin/exportfs [-auv]
/usr/sbin/exportfs [-uv]
[dir ...]
/usr/sbin/exportfs -i [-o options] [-v] [dir ...]
説明
exportfs コマンドは、NFS クライアントが、ローカルディレクトリまたはローカルファイルをネットワーク全体にマウントできるようにします
(これをエクスポートするといいます)。 exportfs コマンドで最初にエクスポートしておかないと、ディレクトリおよびファイルを NFS マウントすることはできません。
exportfs は通常、ブート時に /sbin/init.d/nfs.server スクリプトで起動されます。
そして、絶対パス名が指定される各 dir を /etc/exports ファイルから参照し、その情報を使用して ディレクトリまたはファイルシステム
をエクスポートします。
コマンド行にオプションまたは引き数を一切指定していない場合には、 exportfs は、現在エクスポートされているディレクトリおよびファイルのリストを標準出力に表示します。
スーパーユーザーは、 いつでも exportfs を実行し、エクスポートされたディレクトリおよびファイルのリストまたは特性を変更することができます。
オプション
exportfs には、以下のオプションがあります。
| -a | | /etc/exports 内にリストされているすべてのディレクトリをエクスポートします。あるいは、 -u を指定している場合には、現在エクスポートされているすべてのディレクトリをアンエクスポートします。 |
| -i | | /etc/exports 内のオプションを無視します。この場合には通常、 exportfs は /etc/exports 内のエクスポートされるディレクトリに対応したオプションのみ参照します。 |
| -u | | 指定されたディレクトリのエクスポートを解除 (アンエクスポート) します。 |
| -v | | 冗長。エクスポートまたはアンエクスポートするときに、それぞれのディレクトリまたはファイル名を出力します。 |
| -o options | | エクスポートされているディレクトリに対するオプションの特性のリストをカンマで区切って指定します。 options のリスト には、以下のものを含むことができます。 | async | | NFS Protocol Version 2 マウントはすべて非同期になります。このオプションは、NFS
PV3 では無視されます。 このオプションを使用する際の注意については、 exports(4) を参照してください。 | | ro | | ディレクトリを読み取り専用でエクスポートします。このオプションを指定しないと、ディレクトリは読み取り/書き込み用でエクスポートされます。 ro と rw オプションは、同じ exportfs コマンド行で同時に指定することはできません。 | | rw=hostname[:hostname]... | | | | ディレクトリを読み取り大半でエクスポートします。
読み取り大半とは、大半のマシンに対しては読み取り専用ですが、指定したマシンでは読み取り/書き込み用になるということです。 ro と rw のどちらも指定していなければ、ディレクトリはすべてのマシンに対して読み取り/書き込み用でエクスポートされます。 ro と rw オプションは、同じ exportfs コマンド行で同時に指定することはできません。
最大 256 個の hostname を指定することができます。 nsswitch の "hosts" エントリーで DNS
ネーミング用に構成されたサーバでは、ホスト名は完全修飾された DNS
名で表現しなければなりません。 現在、HP-UX は不完全修飾のホスト名も照合しています。
これは HP 独自の機能なので、HP-UX の将来のリリースでは廃止される予定です。 | | anon=uid | | 未登録ユーザーからの要求があった場合には、 uid を有効ユーザー ID として使用します。 ルートユーザー (ユーザー ID 0) は、次に説明する root オプションに指定しない限り、常に NFS サーバには unknown ユーザーとして扱われます。 クライアントが UNIX システムの場合には、 unknown ユーザーと考えられるのはルートユーザーだけです。他のすべてのユーザーは、 /etc/passwd 内に含まれていなくても認識されます。 uid のデフォルト値は、ユーザー nobody のユーザー ID です。
ユーザー nobody が存在しない場合には、-2 という値が使用されます。 anon の値を
-1 に設定すると、anonymous アクセスを不能にします。 | | root=hostname[:hostname]... | | | | 指定した hostname のルートユーザーだけにルートアクセスを許可します。デフォルトでは、どのホストにもルートアクセスが許可されません。256 個までの hostname を指定することができます。 このリストの hostname は、指定したファイルシステムを正常にマウントできるという保証はありません。
空でないアクセスリストを指定した場合は、 hostname は、 access= の access_list 基準のいずれかに合うか、 rw= リストにリストされていなければなりません。
nsswitch の "hosts" エントリーで DNS ネーミング用に構成されたサーバでは、ホスト名は完全修飾された
DNS 名で表現しなければなりません。 現在、HP-UX は不完全修飾のホスト名も照合しています。
これは HP 独自の機能なので、HP-UX の将来のリリースでは廃止される予定です。 | | access=[access_list][:access_list]... | | | | リストされている各 access_list にマウントアクセスを許可します。 以下の「access_list」の項を参照してください。 access= リストが空の場合、指定したマウントポイントのマウントがすべてのマシンに対して許可されます。
エクスポートされたファイルシステムを正常にマウントするには、 rw= リスト上の hostname は、アクセスリストに載っている必要はありません。 root= リスト上の hostname が、ファイルシステムを正常にマウントするには、 rw= リストと access= リストのいずれかに載っていなければなりません。 | access_list | | access_list 引き数は、コロンで区切られたリストであり、内容は次のいずれかになります。 | hostname | | ホスト名。 nsswitch の "hosts" エントリーで DNS ネーミング用に構成されたサーバでは、ホスト名は完全修飾された DNS
名で表現しなければなりません。 現在、HP-UX は不完全修飾のホスト名も照合しています。 これは
HP 独自の機能なので、HP-UX の将来のリリースでは廃止される予定です。 | | netgroup | | 多数のホスト名を含むネットグループ。 nsswitch の "hosts"
エントリーで DNS ネーミング用に構成されたサーバでは、ホスト名は完全修飾された DNS
名で表現しなければなりません。 | | DNS suffix | | ドメインのメンバーシップを使用するには、サーバは DNS
を用いてホスト名を IP アドレスに変換する必要があります。 すなわち、 /etc/nsswitch.conf ファイル内の "hosts"
エントリーでは、 "nis" や "nisplus" より前に "dns" を指定しなければなりません。これは、DNS だけがホストの完全なドメイン名を返すためです。
NIS や NIS+ など、他のネームサービスはサーバ上のホスト名を決定するためには使用できません。
IP アドレスをホスト名にマッピングする際に、ドメイン情報を返さないためです。
例えば、次のようになります。 NIS または NIS+ 129.144.45.9 --> "myhost" DNS 129.144.45.9 --> "myhost.myd.myc.com" DNS の接尾辞は、前に付いたドットにより、ホスト名およびネットグループと区別されます。 ドット単体は "myhost"
に一致しますが、"myhost.myd.mycy.com" には一致しません。 この単一ドットの機能は、DNS
ではなく NIS および NIS+ で解決されたホストに一致させるために使用できます。 | | network | | ネットワークまたはサブネットのコンポーネントには、前に
@ の記号が付きます。 これは、名前とドット付きアドレスのいずれかです。
名前の場合は、 getnetbyname によりドット付きアドレスに変換されます getnetent(3N) を参照)。 /etc/networks 内のエントリーは、4
つのオクテットすべてを含んでいなければ無効です。 ネットワーク接頭辞は、アドレスの低位部分の 0 オクテットから判断されるオクテットに整列された netmask
を想定しています。 ネットワーク接頭辞がバイトに整列されていない場合、構文ではマスク長をスラッシュ
(/) デリミタに続けて明示的に指定できます。 マスクは、対応する IP
アドレスの左端から連続する上位ビットの数です。 | | - | | マイナス記号 (-) が前に付いている場合、 access_list のそのコンポーネントへのアクセスは拒否されます。 リストは、アクセスの許可または拒否のいずれかが見つかるか、リストの末尾に到達するまでまで順番に検索されます。 このオプションは、ホスト名、ネットワークおよび DNS
接尾辞と組み合わせた場合のみ有効です。 ホスト名の前に付けるときに
DNS ネーミングが構成されている場合は、ホスト名を完全に修飾する必要があります。 |
|
|
|
診断
NFS マウントされたディレクトリが exportfs によってアンエクスポートされた場合には、クライアントがそのディレクトリへアクセスすると、 NFS
stale file handle (NFS 無効ファイル処理) エラーが発生します。
ただし、エクスポートされているディレクトリのアクセスリストからクライアントを削除するために、 exportfs を使用した場合には、クライアントがそのディレクトリへアクセスしても、 NFS
stale file handle エラーが発生することはありません。
例
次のように exportfs を起動すると、現在エクスポートされているディレクトリとファイルがリストされます。
/etc/exports 内のエントリーをエクスポートします。
エクスポートされているすべてのファイルおよびディレクトリをアンエクスポートします。
エクスポートされているすべてのファイルおよびディレクトリをアンエクスポートし、その際に、それぞれのディレクトリまたはファイル名を出力します。
/etc/exports 内のオプションを無視して /usr をすべてのマシンにエクスポートします。
または
exportfs -i -o access= /usr
/usr/bin と /var/adm を読み取り専用ですべてのマシンにエクスポートします。
exportfs -i -o ro /usr/bin /var/adm
ネームサービスとして DNS を使用している場合に、 /usr/bin を読み取り用でシステム polk と vanness にエクスポートします。
exportfs -i -o rw=polk.myd.myc.com:vanness.myd.myc.com /usr/bin
ネームサービスとして NIS または NIS+ を使用している場合に、 /usr/bin を読み取り/書き込み用で polk と vanness にエクスポートします。
exportfs -i -o rw=polk:vanness /usr/bin
ネームサービスとして DNS を使用している場合に、 /var/adm に対して、ルートアクセスを pine という名前のシステムだけに許可し、マウントアクセスを pine と geary に許可するエクスポートを行います。
exportfs -i -o \ root=pine.myd.myc.com,access=pine.myd.myc.com:geary.myd.myc.com \ /var/adm
myd.myc.com ドメイン内のすべてのホストに対して /var/adm へのアクセスをエクスポートします。
exportfs -i -o access=.myd.myc.com /var/adm
同じ NIS ドメインの内のすべてのホストに対して /var/adm へのアクセスをエクスポートしますが、
DNS ネームスペース内のすべてのホストからのアクセスを拒否します。
exportfs -i -o access=. /var/adm
ドット付きアドレスのネットワークサブマスクを用いて /var/adm へのアクセスをエクスポートします。
exportfs -i -o access=@192.144 /var/adm
または
exportfs -i -o access=@192.144.0.0 /var/adm
または、 /etc/networks 内で mynetwork が次のように定義されているときに、その名前を用います。
mynetwork 192.144.0.0
mount_144 #allow mounts using this mask
exportfs -i -o access=@mynetwork /var/adm
ネットワーク接頭辞がバイトに整列されていないときに、 /var/adm へのアクセスをエクスポートします。
exportfs -i -o access=@192.144.132/17 /var/adm
または
exportfs -i -o access=@mynetwork/17 /var/adm
ネットグループ engineering 内のホスト名 terra にアクセスを拒否して、 /var/adm へのアクセスをエクスポートします。
exportfs -i -o access=-terra:engineering /var/adm
/var/adm へのアクセスをエクスポートします。
ホスト名 terra はネットグループ engineering の一員なのでアクセスが許可されます。
exportfs -i -o access=engineering:-terra /var/adm
警告
現在エクスポートされたディレクトリと同一のファイルシステム内に存在し、
かつ、そのディレクトリの親ディレクトリまたはサブディレクトリのどちらかであるディレクトリは、エクスポートすることはできません。
例えば、 /usr および /usr/local が同一のディスクパーティション内に存在する場合には、両方をエクスポートすることはできません。
あるディレクトリをアンエクスポートし、あるクライアントをそのアクセスリストから削除し、その後、そのディレクトリを再度エクスポートした場合には、そのクライアントがそのディレクトリのマウントを外すまでは、そのディレクトリへのアクセスは可能です。クライアントを root または rw リストから削除した場合には、ただちにその指定が有効となります。
/etc/xtab は、現在エクスポートされているディレクトリおよびファイルのリストを持ったシステムファイルです。このファイルは、 exportfs によって保守されます。このファイルが現在のシステムデータ構造に常に同期しているようにするためには、手作業で /etc/xtab を編集しないでください。
ファイル
| /etc/exports | | 静的エクスポート情報 |
| /etc/hosts | | ホスト名のリスト |
| /etc/netgroup | | ネットワークグループのリスト |
| /etc/xtab | | エクスポートされたディレクトリの現在の情報 |
| /etc/networks | | ネットワーク情報 |
参照
showmount(1M), exports(4), hosts(4), netgroup(4), networks(4)