exportfs コマンド

目的

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

構文

/usr/sbin/exportfs [ -a ] [ -v ] [ -u ] [ -i ] [ -fFile ] [ -F ] [ -oオプション [,オプション ...]] [ -V エクスポートされたバージョン] [ 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 のオプションがディレクトリーで同じである場合、 /etc/exports ファイルには、以下を指定するエントリーが 1 つ存在する可能性があります。-vers=3:4.

フラグ

項目 説明
-a エクスポート・ファイルにリストされているすべてのディレクトリーをエクスポートします。
-v エクスポートまたはアンエクスポートされる各ディレクトリーの名前を出力します。
-u 指定したディレクトリーをアンエクスポートします。 -a フラグと併用すると、エクスポートされたすべての ディレクトリーがアンエクスポートされます。 -a および -f のフラグと一緒に使用すると、指定のエクスポート・ファイル 内のすべてのディレクトリーがアンエクスポートされます。
-i エクスポート・ファイルに指定されていないディレクトリーをエクスポートできるようにするか、あるいはエクスポート・ファイルに記述されているオプションを無視します。 -f フラグを使用して代替ファイルを指定する場合を除き、 exportfs コマンドは通常、エクスポートされたディレクトリーに 関連付けられているオプションについて、/etc/exports ファイルを調べます。
-f ファイル /etc/exports ファイルの代わりに、エクスポート可能なディレクトリーのリストが入っているエクスポート・ファイルを指定します。 このファイルは、/etc/exports ファイルと同じフォーマットにしてください。 注 : この代替ファイルは、システムと NFS の始動時にディレクトリーを自動的にエクスポートするために使用されることはありません。 /etc/exports ファイルは、システムの始動時にエクスポートするディレクトリーを指定するためにサポートされる唯一のファイルです。
-F 強制アンエクスポート の実行を指定します。 このフラグは、 -ウー フラグと一緒にのみ使用してください。 このフラグは、V2/V3 エクスポートの アンエクスポート時には効果がありません。 V4 のアンエクスポートでは、関連する状態のために失敗するおそれがあります。 このフラグは、V4 エクスポートに関連する任意の状態を強制的に解除します。
-オプション エクスポートされるディレクトリーにオプションの特性を指定します。 コンマで区切れば、複数の変数を入力できます。 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]
ディレクトリーを読み取り専用許可で指定のクライアントにエクスポートします。 ディレクトリーを読み取り/書き込み許可でリストに指定されていないクライアントにエクスポートします。 読み取り/書き込みリストが指定されている場合は、読み取り専用リストは指定できません。
rw
ディレクトリーを読み取り/書き込み許可ですべてのクライアントにエクスポートします。
作業指示 =クライアント [:Client]
ディレクトリーを読み取り/書き込み許可で指定されたクライアントにエクスポートします。 ディレクトリーを読み取り専用でリストにないクライアントにエクスポートします。 読み取り専用リストが指定されている場合は、読み取り/書き込みリストは指定できません。
アノン =UID
root ユーザーから要求があれば、実効ユーザー ID として UID 値を使用します。

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

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

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

許容されるフレーバー値は次のとおりです。
sys
UNIX 認証。 これがデフォルトのメソッドです。
dh
DES 認証。
なし
マウント要求がエクスポートで指定されていない認証フレーバーを 使用している場合、マウント要求を無名のクリデンシャルで進行することを許可します。
krb5
Kerberos. 認証専用。
krb5i
Kerberos. 認証と保全性。
krb5p
Kerberos. 認証、保全性、およびプライバシー。
secure オプションは指定できますが、 sec オプションと一緒に指定することはできません。 secure オプションは非推奨になっており、除去される可能性があります。 代わりに sec=dh を使用してください。
バージョン =バージョン番号 [:version_number ...]
エクスポートされるディレクトリーにアクセスすることが許可される NFS のバージョンを指定します。 有効なバージョンは 2、3 および 4 です。 バージョン 2 と 3 は、どちらか片方だけを選択することはできません。 バージョン 2 またはバージョン 3 を指定すると、NFS バージョン 2 と NFS バージョン 3 の両方によるアクセスが許可されます。 バージョン 4 は排他的に選択することができます。 デフォルトでは、NFS プロトコルのバージョン 2 と 3 を使用したアクセスが許可されます。
例 =外部名
指定された外部名によってディレクトリーをエクスポートします。 外部名は、 nfsroot 名で始まらなければなりません。 nfsroot 名の説明については、 /etc/exports ファイルの説明を参照してください。 このオプションは、NFS バージョン 4 プロトコルによるアクセス用にエクスポートされるディレクトリーにだけ使用できます。
deleg={yes | no}
指定されたエクスポートのファイル委任を使用可能または使用不可にします。 このオプションは、このエクスポートのシステム全体の委任使用可能化をオーバーライドします。 システム全体の使用可能化は nfso を通じて行われます。
-o Options (続き)
refer=rootpath@host[+host] [:rootpath@host[+host]]
ネームスペース委託は、指定されたパスで作成されます。 この委託は、操作を続行できる指定された代替ロケーションにクライアントを経路指定します。 委託は特殊なオブジェクトです。 非委託オブジェクトが指定されたパスに存在する場合は、エクスポートは不許可となり、エラー・メッセージが表示されます。 指定されたパスに何も存在しない場合は、オブジェクトに至るパス名ディレクトリーを含む委託オブジェクトが作成されます。 複数の委託を 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 つの許容値があります。
フル
代替ロケーションの組み合わせを形成するために、すべてのサーバーが分散されます。
partial
すべての組み合わせの最初のロケーションが、refer または replicas オプションで指定された最初のサーバーに固定されます。 残りのロケーションと最初のロケーションは、以下を使用して分散されるかのように分散されます。scatter=fullメソッド。
なし
分散は使用されません。 この値は、使用可能になっている分散を使用不可にすることもできます。

クライアントの属性が変わったときは、 そのクライアントをパラメーターとして含むすべてのエクスポート・エントリー は、再びエクスポートしてください。 クライアントの属性を変更する可能性のある イベントとしては、ネットグループの変更またはクライアントの 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ディレクトリーがエクスポートされます。
    注: このコマンドを機能させるには、 /home/notes ディレクトリーを /etc/exports ファイルに指定する必要があります。
  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ディレクトリーがエクスポートされ、以下のユーザーを許可するcowboysおよびoilersホスト・マシンにアクセスできます。

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

    この例では、/directoryディレクトリーがエクスポートされ、root ユーザーによるアクセスが許可されます。zorroおよびsilverホスト・マシン ( /etc/exports ファイルに指定されているアクセス許可に関係なく)。

  8. Kerberos 認証を使用するクライアントには書き込み権限を持つが、 UNIX 認証を使用するクライアントには読み取り専用権限を持つ /common/docs ディレクトリーをエクスポートするには、次のテキストを /etc/exports ファイルに追加します。
    /common/docs -sec=krb5,rw,sec=sys,ro

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

  9. /usr/info でホスト infoserver上の /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. 指定されたホストの /common/docs ディレクトリーの参照を指定するには、以下のようにします。s1,s2およびs3それらを完全に分散させるには、以下の行を /etc/exports ファイルに追加してから、 /common/docs ディレクトリーをエクスポートします。
    /common/docs -vers=4,refer=/common/docs@s1:/common/docs@s2:/common/docs@s3,scatter=full
  16. 次の名前のホストで /common/docs ディレクトリのレプリカを指定するには、次のようにします。s1,s2,s3およびs4部分的に分散させることができます (最初のフェイルオーバー・サーバーは,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 デーモンの始動スクリプトが入っています。