next up previous contents
Next: 6.4.1.3 shareの取消 Up: 6.4.1 サーバ側の設定 Previous: 6.4.1.1 関連するプロセス

6.4.1.2 shareコマンド

NFSサーバの側では、自分のシステムが備えているローカルなファイルシステ ムを他のシステムに対して公開するための設定を行なうことになります。 このことをファイルシステムのエクスポート、あるいはシェアと言います。そ して、このために 使用されるコマンドが、BSD系の場合はexportfs、System V系の場合はshare (/usr/sbin/share)ということになります。本講座では使用するOSはSolaris 2.5を想定しますので、shareコマンドの利用法について述べます。

shareコマンドのシンタックス

share [ -F ファイルシステムタイプ ]  [ -o ファイルシステム固有オプション ]
[ -d コメント ] [ 公開するディレクトリ ]
「ファイルシステムタイプ」は指定しなければNFSのことになります。実際、 NFS以外はこのコマンドを使用する意味はありませんから、このオプション自 体指定することはほとんどないでしょう。

「ファイルシステム固有オプション」は、したがって事実上NFSで有効なオプ ションのことになります。Solaris 2.5で有効なオプションには以下のような ものがあり、これらをコンマで区切って指定します。他のUNIXでこれらのオプ ションがすべて有効とは限りません。

rw
このディレクトリをクライアントから読み書き可能に設定します。 何も指定がない場合、このオプションが設定されているものとみなされます。
rw=クライアント1[:クライアント2
...] 指定されたクライアントに 対してのみ、読み書き可能でこのディレクトリを公開します。
ro
このディレクトリを読み取り専用で公開します。
ro=クライアント1[:クライアント2
...] 指定されたクライアントに 対してのみ、読み取り専用でこのディレクトリを公開します。
anon=ユーザID
認証されないユーザ(後述)がこのサーバのファイルシ ステムにアクセスした場合、ここで指定したユーザIDを持つものとして扱われ ます。このユーザIDを-1に設定すると、認証されないユーザのアクセスは拒否 されます。
root=クライアント1[:クライアント2
...] 指定したクライアントか らのrootによるディレクトリへのアクセスを許可します。これを指定しない 場合のrootの扱いは以下を見て下さい。
secure
クライアントの認証に、RPCのAUTH_DES認証方式を使用します。 認証されなかったユーザは、上記のanon=で指定されたUIDを持つものとして扱 われます。
kerberos
クライアントの認証に、RPCのAUTH_KERB認証方式を使用します。 認証されなかったユーザは、上記のanon=で指定されたUIDを持つものとして扱 われます。なお、secure、kerberosのオプションを指定しない場合、クライア ントの認証は AUTH_UNIX認証方式で行なわれます。つまり、基本的にUIDとGID に基づいてアクセスが許可されますが、rootは上記のanon=で指定されたUIDを 持つものとして扱われます。
nosuid
クライアント側からのSUID、SGIDビットの設定を無効にします。
aclok
NFSバージョン2のクライアント(Solaris2.4以前)に対するアクセ スコントロールを有効にします。指定しないほうが良いでしょう。

ディレクトリ名を指定せずにshareコマンドを使用した場合、 現在このサーバでshareされているファイルシステムに関する情報が表示されます。 このとき上の「コメント」も表示されます。

shareコマンドを使用する場合、気をつけなければいけないのは、公開したい ディレクトリが複数のローカルファイルシステムにまたがっている場合、その ファイルシステムごとにshareを行なわなければいけないという点です。 例えば、あるマシン上で、/usr が /dev/dsk/c0t3d0s6 というデバイス上、 /usr/wwwというディレクトリが /dev/dsk/c0t2d0s5 というデバイス上にある 場合、もし/usr 以下を /usr/wwwも含めてshareしたければ、/usr だけを share /usrとしたのでは不十分で、これと合わせてshare /usr/wwwも実行する必要があるということです。

逆に、単一のファイルシステムの中で、あるディレクトリがすでにshareされ た状態で、そのサブディレクトリをさらにshareすることはできません。つま り、/usrを読み書き可能、/usr/texを読み取り専用でshareというようなこと は、両者が同一のファイルシステムにある場合はできません。 ただファイルシステムの全てのディレクトリごとに shareを行うことはできます(例えば/usr/local, /usr/texというように)。 しかし、その場合1つディレクトリが増えるごとにshareをかけ直さなければならず 管理が面倒になると思われます。それぞれのケースで最適な方法を選んで下さい。



Noriyo Kanayama