Solaris のシステム管理

サーバーからファイルを共有する

NFS は、さまざまなオペレーティングシステムを実行するコンピュータを「連結」して使用できる分散ファイルシステムです。たとえば、DOS を実行するシステムは、UNIX を実行するシステムとファイルを共有できます。

NFS は、ファイルシステムの実際の物理的な位置についてユーザーが意識しなくてすむようにします。NFS を使用すると、位置に関係なくすべての関連ファイルの位置をユーザーに表示させることができます。共通に使用されるファイルのコピーをシステムごとに配置しなくても、NFS により、あるシステムのディスク上にコピーを 1 つ配置し、他のすべてのシステムをそのコピーにネットワーク経由でアクセスさせることができます。NFS では、リモートファイルシステムは、実際にはローカルシステムと区別がつきません。

システムは、ネットワーク上に共有またはエクスポートするファイルシステムがあると、NFS サーバーになります。サーバーは、現在エクスポートされているファイルシステムとアクセス制限 (読み取り/書き込みや読み取り専用など) のリストを管理します。

あるシステムのファイル、ディレクトリ、またはデバイスなどの資源を、ネットワーク上で他のシステム (通常はサーバー) と共有できます。 たとえば、Sun 以外のアプリケーションやソースファイルを他のシステム上のユーザーと共有できます。

資源を共有する場合は、リモートシステムにマウントできるように、その資源を使用可能にします。

資源を共有するには、次の方法があります。

次のデフォルトの /etc/dfs/dfstab ファイルには、エントリの構文と例が入っています。

$ more /etc/dfs/dfstab
#       Place share(1M) commands here for automatic execution
#       on entering init state 3.
#
#       Issue the command '/etc/init.d/nfs.server start' to run the NFS
#       daemon processes and the share commands, after adding the very
#       first entry to this file.
#
#       share [-F fstype] [ -o options] [-d ""]  [resource]
#       .e.g,
#       share  -F nfs  -o rw=engineering  -d "home dirs"  /export/home2
share -F nfs /var/mail
$

自動的に共有させたい資源ごとに 1 つずつ、エントリを /etc/dfs/dfstab に追加します。各エントリは、次の構文を使用して別の行に入力しなければなりません。

share [-F nfs] [-o specific-options] [-d "description"] pathname

表 26-4 にこれらの変数を示します。

表 26-4 /etc/dfstab エントリの変数

オプション 

説明 

-F nfs

ファイルシステムのタイプが NFS であることを示す。分散ファイルシステムのパッケージを 1 つしかインストールしていない場合は nfs がデフォルトであり、-F オプションは省略可能

-o specific-options

資源の共有方法を指定する。-o フラグに続けて、次のいずれかのオプションをコンマで区切って指定できる。 

rw - ro= で指定したものを除き、すべてのクライアントに pathname で指定する資源の読み取り/書き込み権を共有させる (デフォルト)。

ro - rw= で指定したものを除き、すべてのクライアントに pathname で指定する資源の読み取り専用権を共有させる。

ro=client[:client] - 列挙したクライアントマシンまたはネットグループ名に pathname で指定する資源の読み取り専用権を共有させる (rw を無効にする)。

rw=client[:client] - 列挙したクライアントマシンまたはネットグループ名に pathname で指定する資源の読み取り/書き込み権を共有させる (ro を無効にする)。

anon=uid - pathname で指定する資源にアクセスするときに「anonymous」ユーザー、つまり uid が 0 ( Solaris システム上のルートの UID ) であるユーザー用に別の uid を指定できる。デフォルトでは、anonymous ユーザーは UID_NOBODY を持つユーザー nobody に対応付けられる。ユーザー nobody は、root 特権ではなく通常のユーザー特権を持つ。

root=host[:host] - ホスト host から、uid が 0 のユーザーがルートとして pathname で指定する資源にアクセスできるようにする。他のすべてのホストからのユーザーは anon になる。このオプションを指定しなければ、どのホストからのユーザーにも、pathname で指定する資源への root アクセス権は与えられない。

secure - ユーザー認証を追加要求して資源を共有させる。(詳細は『NFS の管理』を参照)

kerberos - Kerberos 認証を使用して資源を共有させる。(詳細は、「Kerberos Version 4 認証の管理」を参照)

-d description

共有する資源を説明するコメント。-d オプションを使用すると、説明は sharetab ファイルに格納される。ただし、クライアントが dfshares コマンドを使用して、そのシステム上で共有される資源を表示しても、この説明は表示されない

pathname 

共有する資源の完全パス名。パス名はルート (/) から始まる

rwro を引数なしで指定できません。また、rw= リストと ro= リストで同じクライアントを指定することもできません。読み取り/書き込みオプションを指定しなければ、デフォルトではすべてのクライアントの読み取り/書き込みとなります。


注意 - 注意 -

他のホストに root アクセスを与えると、セキュリティが低下します。root= オプションを指定する際は注意してください。


ファイルとファイルシステムを共有する方法については、第 28 章「ファイルシステムのマウントとマウント解除の手順」を参照してください。NFS の詳細は、『NFS の管理』を参照してください。


注 -

クライアントまたはホストのリストを指定できる引数 (ro=rw=root=) は、UDP 上では確実に機能しますが、他のトランスポートプロトコル上では機能しないことがあります。


NFS 上では、サーバーはそれ自体が所有する資源を共有するので、クライアントはその資源をマウントできます。ただし、クライアント側でスーパーユーザーになったユーザーは、マウントされているリモート資源にスーパーユーザーとしてアクセスしようとしても拒否されます。あるホスト上でスーパーユーザーとしてログインしたユーザーが NFS を通じて共有されるリモートファイルへのアクセスを要求すると、そのユーザー ID は 0 からユーザー名 nobody のユーザー ID に変更されます。ユーザー nobody のアクセス権は、特定のファイルに関して公共に与えられるものと同じです。たとえば、公共がファイルの実行権しか持っていなければ、ユーザー nobody はそのファイルの実行しかできません。