exportfs コマンド

目的

ディレクトリーを NFS クライアントにエクスポートおよびアンエクスポートします。

構文

/usr/sbin/exportfs [ -a ] [ -v ] [ -u ] [ -i ] [ -fFile ] [ -F ] [ -oOption [ ,Option ... ] ] [ -V Exported Version] [ Directory ]

説明

exportfs コマンドは、ネットワーク・ファイルシステム (NFS) のクライアントがローカル・ディレクトリーをマウントできるようにします。 このコマンドは、通常、システム始動時に /etc/rc.nfs ファイルによって起動され、/etc/exports ファイル内の情報を使用して、1 つ以上のディレクトリー (必ず絶対パス名で指定) をエクスポートします。

/etc/xtab ファイルには、現在エクスポート中のディレクトリーのリストが入っています。 このファイルを表示するには、フラグまたは引数を指定しないで exportfs コマンドを実行します。 ファイルの変更、または、そのファイルのディレクトリーの特性変更を行うために、root ユーザーは /etc/exports ファイルを編集して、exportfs コマンドを実行できます。この操作は常時行えます。 /etc/xtab ファイルを直接編集することは、絶対に避けてください。

注:
  1. 現在エクスポートされているディレクトリーと同一のファイルシステム内に 存在し、かつ、そのディレクトリーの親ディレクトリーまたは サブディレクトリーのいずれかであるディレクトリーは、 エクスポートできません。
  2. NFS バージョン 2 および 3 では、ディレクトリーもファイルもエクスポートできます。 NFS バージョン 4 のアクセスでは、ディレクトリーだけがエクスポートできます。
  3. /etc/exports ファイル内に、異なるバージョン 2 (または 3) と 4 を持つ同一ディレクトリーに対して 2 つのエントリーが存在する場合、exportfs コマンドは両方のエントリーをエクスポートします。
  4. NFS バージョン 2 (または 3) と 4 のオプションが 1 つのディレクトリーに対して同一である場合、-vers=3:4 を指定する /etc/exports ファイルに存在するエントリーは 1 つとなります。

フラグ

項目 説明
-a エクスポート・ファイルにリストされているすべてのディレクトリーをエクスポートします。
-v エクスポートまたはアンエクスポートされる各ディレクトリーの名前を出力します。
-u 指定したディレクトリーをアンエクスポートします。 -a フラグと併用すると、エクスポートされたすべての ディレクトリーがアンエクスポートされます。 -a および -f のフラグと一緒に使用すると、指定のエクスポート・ファイル 内のすべてのディレクトリーがアンエクスポートされます。
-i エクスポート・ファイルに指定されていないディレクトリーをエクスポートできるようにするか、あるいはエクスポート・ファイルに記述されているオプションを無視します。 -f フラグを使用して代替ファイルを指定する場合を除き、 exportfs コマンドは通常、エクスポートされたディレクトリーに 関連付けられているオプションについて、/etc/exports ファイルを調べます。
-f File /etc/exports ファイルの代わりに、エクスポート可能なディレクトリーのリストが入っているエクスポート・ファイルを指定します。 このファイルは、/etc/exports ファイルと同じフォーマットにしてください。注 : この代替ファイルは、システムと NFS の始動時にディレクトリーを自動的にエクスポートするために使用されることはありません。 /etc/exports ファイルは、システムの始動時にエクスポートするディレクトリーを指定するためにサポートされる唯一のファイルです。
-F 強制アンエクスポート の実行を指定します。このフラグ は、-u フラグを指定する 場合のみ、一緒に使用します。このフラグは、V2/V3 エクスポートの アンエクスポート時には効果がありません。 V4 のアンエクスポートでは、関連する状態のために失敗するおそれがあります。 このフラグは、V4 エクスポートに関連する任意の状態を強制的に解除します。
-oOptions エクスポートされるディレクトリーにオプションの特性を指定します。 コンマで区切れば、複数の変数を入力できます。Client パラメーターをとるオプションの場合は、Client でホスト名、ドット付きの IP アドレス、 ネットワーク名、またはサブネット指定子を指定することができます。 サブネット指定子は @ host /mask の形式をとります。 ここで、host はホスト名またはドット付き IP アドレスのどちらかであり、mask はアクセスをチェックする際に使用するビットの数を指定します。 mask が指定されていない場合は、全マスクが使用されます。 例えば、指定子 @client.group.company.com/16 は、company.com サブネット上にあるすべてのクライアントと一致します。 指定子 @client.group.company.com/24 は、group.company.com サブネット上のクライアントとのみ一致します。 次のオプションから選択します。
ro
ディレクトリーを読み取り専用許可でエクスポートします。指定されていない場合は、 ディレクトリーは読み取り/書き込み許可でエクスポートされます。
ro=Client[:Client]
ディレクトリーを読み取り専用許可で指定のクライアントにエクスポートします。 ディレクトリーを読み取り/書き込み許可でリストに指定されていないクライアントにエクスポートします。 読み取り/書き込みリストが指定されている場合は、読み取り専用リストは指定できません。
rw
ディレクトリーを読み取り/書き込み許可ですべてのクライアントにエクスポートします。
rw=Client [:Client]
ディレクトリーを読み取り/書き込み許可で指定されたクライアントにエクスポートします。 ディレクトリーを読み取り専用でリストにないクライアントにエクスポートします。 読み取り専用リストが指定されている場合は、読み取り/書き込みリストは指定できません。
anon =UID
root ユーザーから要求があれば、実効ユーザー ID として UID 値を使用します。

このオプションのデフォルト値は -2 です。 NFS バージョン 2 および NFS バージョン 3 では、anon オプションの値を -1 に設定すると、匿名アクセスが使用不可になります。 したがって、デフォルトでは、保護されている NFS は無保護の要求を無名として受け入れます。高レベルの保護を望むユーザーは、anon を -1 に設定することで、この機能を使用不可にできます。

root=Client[:Client]
リスト内の特定のクライアントからの root アクセスを可能にします。root リスト内にホストを入れても、他のオプションの意味体系は変更されません。 例えば、このオプションは、root リスト内にはあるが、アクセス・リスト内にはないホストからのマウント・アクセスを拒否します。
access=Client[:Client,...]
登録された各クライアントにマウント・アクセス権を与えます。クライアントには、ホスト名またはネットグループ名を使用できます。 /etc/netgroup データベースのリスト内の個々のクライアントが最初に検査され、次に /etc/hosts データベースのリスト内の個々のクライアントが検査されます。 デフォルト値の場合は、どのコンピューターにでも、指定されたディレクトリーをマウントできます。
secure
クライアントに対し、ディレクトリーにアクセスする際により安全なプロトコルの使用を要求します。
-o Options (続き)
sec=flavor[:flavor...]

このオプションは、エクスポートされるディレクトリーの下のファイルに アクセスするために使用できるセキュリティー・メソッドのリストを指定するために 使用されます。ほとんどの exportfs オプションは、sec オプション を使用してクラスター化することができます。 sec オプションに続くオプションは、その前の sec オプションに属すものと見なされます。 sec スタンザは任意の数だけ指定できますが、各セキュリティー・メソッドはそれぞれ 1 回しか指定できません。各 sec スタンザ内で は、rorwroot および access オプションは一度だけ指定できます。 publicanon および vers オプションだけは、 エクスポートに関してグローバルなオプションであると考えられます。 いずれかのセキュリティー・メソッドを指定するために sec オプションを使用する場合は、すべてのセキュリティー・メソッドの指定 にこのオプションを使用する必要があります。 sec オプションの指定がない場合は、すべての種類の認証が許可されます。

使用できるフレーバー値には、次の ものがあります。
sys
UNIX 認証。 これはデフォルトのメソッドです。
dh
DES 認証。
none
マウント要求がエクスポートで指定されていない認証フレーバーを 使用している場合、マウント要求を無名のクリデンシャルで進行することを許可します。
krb5
Kerberos。認証専用。
krb5i
Kerberos。認証と保全性。
krb5p
Kerberos。認証、保全性、およびプライバシー。
secure オプションは指定できますが、sec オプションと 一緒には指定できません。secure オプションの使用は推奨できません。 これは除かれる可能性があります。代わりに sec=dh を使用してください。
vers=version_number[:version_number...]
エクスポートされるディレクトリーにアクセスすることが許可される NFS のバージョンを指定します。有効なバージョンは 2、3 および 4 です。 バージョン 2 と 3 は、どちらか片方だけを選択することはできません。 バージョン 2 またはバージョン 3 を指定すると、NFS バージョン 2 と NFS バージョン 3 の両方によるアクセスが許可されます。 バージョン 4 は排他的に選択することができます。 デフォルトでは、NFS プロトコルのバージョン 2 と 3 を使用したアクセスが許可されます。
exname=external-name
指定された外部名によってディレクトリーをエクスポートします。 外部名は、nfsroot 名から始まらなければなりません。 nfsroot 名の説明については、/etc/exports ファイルの記述を参照してください。 このオプションは、NFS バージョン 4 プロトコルによるアクセス用にエクスポートされるディレクトリーにだけ使用できます。
deleg={yes | no}
指定されたエクスポートに対して、ファイル委任を使用可能または使用不可にします。 このオプションは、このエクスポートについてシステム全体にわたる委任有効化を指定変更します。 システム全体にわたる有効化は、nfso によって行われます。
-o Options (続き)
refer=rootpath@host[+host][:rootpath@host[+host]]
ネームスペース委託は、指定されたパスで作成されます。 この委託は、操作を続行可能な指定された代替ロケーションにクライアントを経路指定します。委託は特殊なオブジェクトです。委託以外のオブジェクトが指定のパスに存在する場合は、エクスポートは不許可となり、エラー・メッセージが表示されます。指定のパスに何も存在しない場合は、1 つの委託オブジェクト (このオブジェクトに至るパス名ディレクトリーを含む) がその指定のパス上に作成されます。複数の委託を 1 つのファイルシステム内で作成することができます。 委託を nfsroot に対して指定することはできません。名前 localhosthostname として使用することはできません。refer オプションは、バージョン 4 のエクスポートにのみ使用できます。 エクスポート指定によりバージョン 2 またはバージョン 3 のアクセスが許可される場合は、エラー・メッセージが表示され、エクスポートは不許可になります。委託オブジェクトのアンエクスポートは、委託オブジェクトから委託ロケーション情報を除去する効果があります。 このオブジェクト自体は、アンエクスポートによって除去されません。このオブジェクトを除去するには、 rm を使用してください。管理者は、適切なデータが委託サーバーで使用可能となるようにする必要があります。 このオプションは、AIX 5L バージョン 5.3 (5300-03 推奨メンテナンス・パッケージ適用) 以降でのみ使用できます。
注: 委託エクスポートは、複製がサーバー上で使用可能な場合にのみ作成することができます。 複製を使用可能にするには、chnfs -R on を使用します。
-o Options (続き)
replicas=rootpath@host[+host][:rootpath@host[+host]]
レプリカ・ロケーション情報は、エクスポート・パスに関連付けられます。 現行サーバーが使用不可になった場合には、NFS バージョン 4 のクライアントが 、このレプリカ情報を使用して、指定された代替ロケーションに操作をリダイレクトできます。 管理者は、適切なデータがレプリカ・サーバーで使用可能となるようにする必要があります。 レプリカ情報はファイルシステム全体に適用されるため、指定されたパスはファイルシステムのルートでなければなりません。 パスがファイルシステムのルートでない場合は、エクスポートは不許可となり、エラー・メッセージが表示されます。 名前 localhosthostname として使用することはできません。この replicas オプションは、バージョン 4 のエクスポートにのみ使用できます。 このオプションがバージョン 2 またはバージョン 3 のアクセスを許可するエクスポートで 使用される場合は、操作は許可されますが、レプリカ情報はバージョン 2 および バージョン 3 のサーバーによって無視されます。 エクスポートしようとするディレクトリーがレプリカ・リスト内にない場合は、 エントリー exported directory@current host は、最初のレプリカ・ ロケーションとして追加されることになります。 このオプションは、AIX® 5.3 (5300-03 適用) 以降でのみ使用できます。 レプリカ・エクスポートを作成可能なのは、複製がサー バー上で使用可能な場合にのみです。 デフォルトでは、複製は使用不可にされます。レプリカ・エクスポートをシステムのブート時に 作成することになる場合は、chnfs -R on コマンドを使用して複製を使 用可能にする必要があります。レプリカ・ロケーションを nfsroot に対しても指定することができます。 この指定は、chnfs -R host[+host] によってのみ行うことができます。 現在のホストがリスト内に指定されていない場合は、このホストは最初のレプリカ・ホストとして追加されます。 nfsroot は指定されたホストの nfsroots に対してのみ複製される ため、この場合の rootpath は不要または不許可となります。 chnfs プログラムを使用して、複製を使用可能または使用不可にすることができます。NFS バージョン 4 のエクスポートがすべてアクティブでない場合は、複製モードの変更を実施できるだけです。 サーバーの複製モードを変更した場合は、前の複製モード時にサーバーが発行したファイル・ハンドルを、サーバーは受け入れません。 これにより、旧ファイル・ハンドルを保持するクライアントでアプリケーション・エラーが生じる可能性があります。 サーバーの複製モードを変更する際は、注意してください。 可能であれば、サーバーへのマウントがあるすべてのクライアントは、サ ーバーの複製モードが変更される前に、それらをアンマウントする必要があります。 ディレクトリーに関連付けられたレプリカ・ロケーション情報は、レプリカ・ リストの変更およびディレクトリーの再エクスポートにより変更できます。 新規レプリカ情報が旧レプリカ情報と置き換わります。NFS クライアント は、レプリカ情報を定期的にリフレッシュすることを求められます。 サーバーがエクスポート用のレプリカ情報を変更する場合は、クライアントが認識するのに時間がかかる可能性があります。 このことは、新規レプリカ・ロケーションの追加時には、大した問題 ではありません。その理由は、これは、古い情報を保持するクライアン トが引き続き正しい (たとえ不完全でも) レプリカ情報をもっているためです。 レプリカ情報を除去すると、問題が生じる可能性があります。これは、クライアントが 一定期間、誤ったレプリカ情報を保持することになる可能性があるためです。 クライアントが新規情報を検出するのを援助するために、exportfs は 複製されたディレクトリーへのタッチを試みます。これにより、ディレクトリーの タイム・スタンプが変更されるため、クライアントがディレクトリーの属性を再フェッチするようになります。 ただし、複製されたファイルシステムが読み取り専用の場合には、この操作が不可 能な場合があります。 あるディレクトリー用のレプリカ情報の変更時は、情報の変更と新規情報 に対するクライアントの認識との間に若干の待ち時間が生じる可能性があることに注意してください。
-o Options (続き)
noauto
レプリカの指定を現状のまま受け入れます。レプリカ・ロケーションの 1 つと して 1 次ホスト名を自動挿入しません (指定されていない場合)。
scatter
refer または replicas オプションで指定されたサーバーから代替ロケーション・リストをどのように生成するかを定義します。noauto オプションを使用しない場合、代替ロケーション・リストにはレプリカ・ロケーションの 1 つとして 1 次ホスト名も含まれます。scatter オプションは、NFS バージョン 4 プロトコルによるアクセス用にエクスポートされるディレクトリーにのみ適用されます。 scatter オプションには次の 3 つの許容値があります。
full
代替ロケーションの組み合わせを形成するために、すべてのサーバーが分散されます。
partial
すべての組み合わせの最初のロケーションが、refer または replicas オプションで指定された最初のサーバーに固定されます。残りのロケーションと最初のロケーションは分散され、scatter=full 方式を使用して分散されたようになります。
none
分散は使用されません。この値は、使用可能になっている分散を使用不可にすることもできます。

クライアントの属性が変わったときは、 そのクライアントをパラメーターとして含むすべてのエクスポート・エントリー は、再びエクスポートしてください。クライアントの属性を変更する可能性のある イベントとしては、ネットグループの変更またはクライアントの IP アドレスの変更などがあります。 この再エクスポートに失敗すると、サーバーは古いクライアント情報を 使用することになるおそれがあります。

-V Exported Version バージョン番号を指定します。有効なバージョン番号は 2、3 および 4 です。

Solaris の互換性

exportfs コマンド は、shareshareallunshare、 または unshareall として呼び出すことができます。 exportfs コマンドを share または shareall として呼び出す場合は、その機能性は それぞれ、exportfsexportfs -a と 同等ですが、セキュリティー・メソッドを指定するために sec オプションの使用が必要である点が異なります。 exportfs コマンドを unshare または unshareall として呼び出す場合は、その機能性は それぞれ、exportfs -uexportfs -u -a と同等です。

セキュリティー

RBAC ユーザーおよび Trusted AIX ユーザーへの注意: このコマンドは特権命令を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権についての詳細情報は、「セキュリティー」の『特権コマンド・データベース』を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

  1. /etc/exports ファイル内の、 すべてのディレクトリーをエクスポートするには、次のように入力します。
    exportfs -a 
  2. /etc/exports ファイルから、 ディレクトリーを 1 つエクスポートするには、次のように入力します。
    exportfs /home/notes
    この例では、/home/notes ディレクトリーがエクスポートされます。
    注: このコマンドを機能させるためには、/etc/exports ファイルで /home/notes ディレクトリーを指定する必要があります。
  3. ディレクトリーをアンエクスポートするには、次のように入力します。
    exportfs -u /home/notes

    この例では、/home/notes ディレクトリーのエクスポートが解除されます。

  4. 現在エクスポート中のディレクトリーの名前を表示するには、 次のように入力します。
    exportfs -v
  5. /etc/exports ファイルに指定されていないディレクトリーをエクスポートするには、 次のように入力します。
    exportfs -i /home/zeus

    この例では、/home/zeus ディレクトリーが無制限にエクスポートされます。

  6. ディレクトリーをエクスポートして、 ネットグループ・メンバーにこのディレクトリーへのアクセス権を与えるには、次のように入力します。
    exportfs access=cowboys:oilers /home/notes -o 

    この例では、/home/notes ディレクトリーがエクスポートされ、cowboysoilers というホスト・コンピューターのユーザーに、アクセス権が与えられます。

  7. /etc/exports ファイルから、 別のオプションを持つディレクトリーをエクスポートするには、次のように入力します。
    exportfs -i -o root=zorro:silver /directory

    この例では、/directory ディレクトリーが エクスポートされ、/etc/exports ファイルに指定した権限とは 無関係に、root ユーザーに zorro と、silver の 各ホスト・コンピューターへのアクセスが許可されます。

  8. /common/docs ディレクトリーを、Kerberos 認証を 使用しているクライアントには書き込み許可とともに、 また、UNIX 認証を使用しているクライアントには読み取り専用許可とともに エクスポートするためには、/etc/exports ファイルに 次のテキストを追加してください。
    /common/docs -sec=krb5,rw,sec=sys,ro

    次に、このエクスポートを実行するために exportfs /common/docs を入力します。

  9. ホスト infoserver 上の /usr/info ディレクトリーに対して /usr/info で委託を作成するには、次の行 を /etc/exports に追加してから、/usr/info をエクスポートします。
    /usr/info -vers=4,refer=/usr/info@infoserver
    
  10. ホスト backup1 および backup2/common/info ディレクトリー用のレプリカを指定するには、次の行を /etc/exports に 追加してから、/common/info をエクスポートします。
    /common/info -vers=4,replicas=/common/info@backup1:/common/info@backup2,<other options>
    
  11. /common/docs ディレクトリーをバージョン 3 とバージョン 4 の両方でエクスポートするには、次のコマンドを入力します。
    exportfs -V 3:4 /common/docs
  12. /etc/exports ファイルにあるバージョン 4 のエントリーをすべてエクスポートするには、次のコマンドを入力します。
    exportfs -a -V 4
  13. /common/docs ディレクトリーをバージョン 3 に対してのみアンエクスポートするには、次のコマンドを入力します。
    exportfs -u -V 3 /common/docs
  14. /etc/xtab ファイルにあるバージョン 3 のエントリーをすべてアンエクスポートするには、次のコマンドを入力します。
    exportfs -ua -V 3
  15. s1s2、および s3 という名前のホストで /common/docs ディレクトリーの委託を指定し、それらをすべて分散するには、次の行を /etc/exports ファイルに追加して、/common/docs ディレクトリーをエクスポートします。
    /common/docs -vers=4,refer=/common/docs@s1:/common/docs@s2:/common/docs@s3,scatter=full
  16. s1s2s3、および s4 という名前のホストで /common/docs ディレクトリーのレプリカを指定し、それらの一部を分散するには (最初のフェイルオーバー・サーバーはすべての組み合わせで s1 です)、次の行を /etc/exports ファイルに追加して、/common/docs ディレクトリーをエクスポートします。
    /common/docs -vers=4,noauto,replicas=/common/docs@s1:/common/docs@s2:/common/docs@s3:/common/docs@s4,scatter=partial

ファイル

項目 説明
/etc/exports サーバーがエクスポートできるディレクトリーのリストが入っています。
/etc/xtab 現在エクスポートされているディレクトリーのリストが入っています。
/etc/hosts ネットワーク上の各ホストのエントリーが入っています。
/etc/netgroup ネットワーク上の各ユーザー・グループについての情報が入っています。
/etc/rc.nfs NFS デーモンと NIS デーモンの起動スクリプトが入っています。