名前 | 形式 | 機能説明 | オプション | オペランド | 終了ステータス | Trusted Solars での変更点 | ファイル | 属性 | 関連項目 | 注意事項
share ユーティリティは、ローカルのファイルシステムをリモートシステムからマウントできるようにします。
引数を指定しないと、share ユーティリティは、NFS ファイルシステムや、他の分散ファイルシステムパッケージを通して共有されたファイルシステムなど、現在共有されているすべてのファイルシステムを表示します。
共有するファイルシステムを説明するコメントを指定します。
NFS ファイルシステムタイプを共有します。
ファイルシステムタイプ固有のコマンドで解釈されるキーワードとその属性値をコンマで区切って指定します。specific_options を指定しないと、デフォルトですべてのクライアントにも共有に対する読み取り/書き込み権が与えられます。
specific_options には、次のキーワードの任意の組み合せを指定できます。
NFS サーバーが NFS Version 2 クライアント (SunOS 2.4 以前) のアクセス制御を行えるようにします。サーバーに aclok が設定されていると、最大限のアクセス権がすべてのクライアントに与えられます。たとえば、aclok が設定されている場合、1 人が読み取り権をもっていれば、すべてのクライアントに読み取り権が与えられます。aclok が設定されていないと、最小限のアクセス権がすべてのクライアントに与えられます。
uid に未知のユーザーの実効ユーザー ID を設定します。デフォルトでは、未知のユーザーの実効ユーザー ID として UID_NOBODY が割り当てられます。uid に -1 を設定すると、アクセスは拒否されます。
ディレクトリが NFS URL から参照された場合、このファイルを含むディレクトリのリストではなく file をロードします。
このオプションは廃止されました。代わりに sec=krb4 オプションを使用してください。
共有ディレクトリのサブディレクトリをクライアントからマウントできないようにします。たとえば、サーバー fooey の /export を nosub オプションで共有する場合には、NFS クライアントで次のように指定することはできません。
mount -F nfs fooey:/export/home/mnt |
デフォルトでは、クライアントは setuid や setgid モードを有効にすれば共有ファイルシステムにファイルを作成できます。nosuid を指定すると、サーバーのファイルシステムは、 setuid や setgid モードビットを有効にする要求があっても黙って無視します。
デフォルトでは、クライアントは共有ファイルシステムにブロック型特殊デバイスや文字型特殊デバイスを作成できます。nodevices を指定すると、サーバーのファイルシステムはこのようなデバイスの作成を許可しません。
デフォルトでは、クライアントは共有ファイルシステムのファイルに対し強制された特権を設定できます。nopriv を指定すると、サーバーのファイルシステムは強制された特権の設定を許可しません。
Web NFS 対応のブラウザによるファイルシステムの NFS ブラウズを可能にします。このオプションを使用できるのは、サーバーごとに 1 つのファイルシステムだけです。このオプションには、-ro=list と -rw=list オプションを指定できます。
すべてのクライアント共有に対する読み取り専用権が与えられます。
access_list に指定されているクライアントに共有に対する読み取り専用権が与えられます。指定されているクライアントの rw サブオプションより優先されます。下記の access_list を参照してください。
access_list に指定されているホストの root ユーザーだけに root アクセス権が与えられます。下記の access_list を参照してください。デフォルトでは root アクセス権をもつホストはないため、root ユーザーには匿名ユーザー ID が割り当てられます (上記の anon=uid オプションを参照)。共有されているファイルシステムが UNIX 認証 (AUTH_SYS) を使用している場合は、ネットグループを使用できます。
すべてのクライアントに共有に対する読み取り/書き込み権が与えられます。
access_list に指定されているクライアントに共有に対しする読み取り権/書き込み権が与えられます。指定されているクライアントの ro サブオプションより優先されます。下記の access_list を参照してください。
共有に対し、指定されているセキュリティモードの 1 つまたはそれ以上が使用されます。sec=mode オプションの mode は、クライアントでサポートされているノード名でなければなりません。sec= オプションを指定しないと、デフォルトのセキュリティモードとして AUTH_SYS が使用されます。コマンド行には複数の sec= オプションを指定できますが、同じモードを指定することはできません。セキュリティモードは nfssec(5) に定義されています。
sec= オプションは、このオプションから次の sec= オプションまでの間に指定される window=、rw、ro、rw=、ro=、root= オプションに適用されるモードを指定します。新しい sec= オプションを指定するたびに、セキュリティモードコンテキストがリセットされます。したがって、追加モードごとに window=、rw、ro、rw=、ro=、root= オプションをさらに指定できます。
クライアントが AUTH_NONE を使用しているときにオプション sec=none を指定するか、ファイルシステムの共有に使われているものとは異なるセキュリティモードをクライアントが使用すると、各 NFS 要求の資格は非認証として扱われます。非認証の要求がどのように扱われるかについては、anon=uid オプションを参照してください。
このオプションは廃止されました。代わりに sec=dh を使用してください。
sec=dh か sec=krb4 で共有する場合、認証ヘッダーにある RPC 要求の資格に対し NFS サーバーが許す最大存続時間を秒数で設定します。NFS サーバーは、受信した資格の存続時間が許可されたものより大きいと、その要求を拒否します。デフォルト値は 30000 秒 (8.3 時間) です。
access_list 引数には、次の構成要素をコロンで区切って指定します。
ホスト名。nsswitch の「hosts」エントリでサーバーが DNS ネームサービスを使用するように構成されている場合、ホスト名は完全指定の DNS 名でなければなりません。
ネットグループにはいくつかのホスト名が含まれています。nsswitch の「hosts」エントリでサーバーが DNS ネームサービスを使用するように構成されている場合、ネットグループのホスト名は完全指定の DNS 名でなければなりません。
ドメインメンバーシップを使用する場合には、サーバーが DNS を使ってホスト名を IP アドレスに変換する必要があります。つまり、/etc/nsswitch.conf の「hosts」エントリに「nis」や「nisplus」より前に「dns」が指定されていなければなりません。ホストの完全なドメイン名を返すのは DNS だけだからです。NIS や NIS+ など、他のネームサービスは IP アドレスをホスト名にマップするときにドメイン情報を返さないため、このサーバーでこれらのネームサービスを使ってホスト名を知ることはできません。この例を次に示します。
129.144.45.9 --> "myhost"
129.144.45.9 --> "myhost.mydomain.mycompany.com"
DNS 接尾辞とホスト名やネットグループとは、次のようにドットを接頭辞として付けて区別します。
rw=.mydomain.mycompany.com
次のように 1 つのドットを指定すると、接尾辞のないホスト名と合致します。
rw=.
この例では「mydomain」とは合致しますが、「mydomain.mycompany.com」とは合致しません。この機能は、DNS よりも NIS や NIS+ を使用して解決されたホストを探すときに使用できます。
ネットワークやサブネット構成要素には、その前に単価記号 (@) を付けます。指定は名前でもドット付きアドレスでもかまいません。名前を指定すると、getnetbyname(3N) を使ってドット付きアドレスに変換されます。たとえば、次の指定は
=@mynet
次のように指定するのと同じことです。
=@129.144 または =@129.144.0.0
ネットワーク接頭辞を使用すると、下位 8 ビットが 0 の値を持つアドレスから判定される 8 ビット境界のネットマスクとみなされます。ネットワーク接頭辞がバイト境界にない場合は、次のように、スラッシュ (/) の後にマスクの長さを明示的に指定できます。
=@mynet/17 または rw=@129.144.132/17
この場合、マスクは IP アドレスの左端から始まる連続する有効ビット数です。
access_list の構成要素の前にマイナス符号 (-) を付けると、その構成要素へのアクセス権が拒否されます。アクセス権が許可または拒否される構成要素が見つかるか、構成要素の終りに達するまで順に探索されます。たとえば、ホスト「terra」が「engineering」ネットグループにある場合、次のように指定すると、
rw=-terra:engineering |
terra へのアクセス権は拒否されますが、次のように指定すると、
rw=engineering:-terra |
terra へのアクセス権は許可されます。
nodevices と nopriv オプションが追加されています。
オプションを全く指定しないか、オプション -F FSType を指定して share_nfs コマンドを実行すると、共有しているファイルシステムの一覧が表示されます。これ以外の方法でコマンドを実行する場合は、実効 UID 0 で実行する必要があります。共有ファイルシステムのタイプが NFS の場合は、sys_nfs
特権がさらに必要です。このコマンドは、ファイル /etc/dfs/sharetab が存在していないと、それを作成します。したがって、このコマンドは、機密ラベル ADMIN_LOW
で実行する必要があります。ファイル /etc/dfs/sharetab が存在している場合は、file_mac_write
特権があれば、このコマンドをどの機密ラベルででも実行できます。このコマンドがどのような場合にも正常に実行されるためには、file_mac_read
と file_mac_search
特権が必要です。
次の属性の説明については、attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
---|---|
使用条件 | SUNWcsu |
sec= オプションを 1 つでも指定する場合は、window=、rw、ro、rw=、ro=、root= オプションは最初の sec= オプションより後で使用しなければなりません。sec= オプションを指定しないと、sec=sys が使用されます。
1 つまたは複数の sec= オプションを明示的に指定する場合は、オプションモードリストのどれかに sys を指定しないと、AUTH_SYS セキュリティモードを使ったアクセスは許可されません。たとえば、次のように指定すると
share -F nfs /var share -F nfs -o sec=sys /var |
share -F nfs -o sec=dh /var |
share_nfs(1M) は以前の実装方法とは異なり、window=、rw、ro、rw=、ro= オプションのアクセス権検査は、マウント要求ごとではなく、NFS 要求ごとに行われます。
ro= や rw= オプションを使って弱い方のセキュリティモードへのアクセス権を制御する場合に、複数のセキュリティモードを組み合せるとセキュリティホールの原因となります。次の例では、
share -F nfs -o sec=dh,rw,sec=sys,rw=hosta /var |
share -F nfs -o sec=dh,rw,sec=sys,ro /var |
rw= と ro= オプションが同じ sec= 節に指定され、クライアントが両方のリストに含まれている場合には、クライアントが取得するアクセス権は 2 つのオプションが現れる順序で決まります。次の例ではクライアント hosta がネットグループ group1 と group2 に属しているため、クライアントは読み取り専用権を取得します。
share -F nfs -o ro=group1,rw=group2 /var |
share -F nfs -o rw=group2,ro=group1 /var |
sec= 節に ro と rw= オプションが指定されている場合は、互換性を保つためにオプション順序の規則は適用されません。読み取り/書き込みリストに指定されているホストを除き、すべてのホストが読み取り専用権を取得します。これと同じように、ro= と rw オプションが指定されている場合は、読み取り専用リストに指定されているホストを除き、すべてのホストが読み取り/書き込み権を取得します。
ro= と rw= オプションはすべてのトランスポートプロバイダでは正しく機能しますが、他のトランスポートプロバイダでも正しく機能するとは限りません。
AUTH_SYS の場合、root= オプションは UDP と TCP では正しく機能しますが、他のトランスポートプロバイダでも正しく機能するとは限りません。
AUTH_DES と AUTH_KERB の場合、root= オプションはすべてのトランスポートプロバイダで必ず正しく機能します。
root= オプションと、rw、ro、rw=、ro= オプションとの間には、相互関係はありません。root リストにホストを指定しても、他のオプションの意味は変わりません。ホストが取得するアクセス権は root= オプションがないときと同じです。たとえば、次の share コマンドでは hostb へのアクセス権を拒否します。
share -F nfs -o ro=hosta,root=hostb /var |
share -F nfs -o ro=hostb,root=hostb /var |
share -F nfs -o ro=hosta,rw=hostb,root=hostb /var |
共有しているファイルシステムが有効なパス名へのシンボリックリンクの場合は、標準的なパス (シンボリックリンクがたどるパス) が共有されます。たとえば、/export/foo が /export/bar へのシンボリックリンクの場合 (/export/foo -> /export/bar)、次の share コマンドでは、共有パス名は (/export/foo ではなく) /export/bar になります。
example# share -F nfs /export/foo |
/etc/dfs/dfstab ファイルに次の行を指定すると、ブート時に /disk ファイルシステムが読み取り専用で共有されます。
share -F nfs -o ro /disk |
名前 | 形式 | 機能説明 | オプション | オペランド | 終了ステータス | Trusted Solars での変更点 | ファイル | 属性 | 関連項目 | 注意事項