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 |
共有する資源の完全パス名。パス名はルート (/) から始まる |
rw と ro を引数なしで指定できません。また、rw= リストと ro= リストで同じクライアントを指定することもできません。読み取り/書き込みオプションを指定しなければ、デフォルトではすべてのクライアントの読み取り/書き込みとなります。
他のホストに root アクセスを与えると、セキュリティが低下します。root= オプションを指定する際は注意してください。
ファイルとファイルシステムを共有する方法については、第 28 章「ファイルシステムのマウントとマウント解除の手順」を参照してください。NFS の詳細は、『NFS の管理』を参照してください。
クライアントまたはホストのリストを指定できる引数 (ro=、rw=、root=) は、UDP 上では確実に機能しますが、他のトランスポートプロトコル上では機能しないことがあります。
NFS 上では、サーバーはそれ自体が所有する資源を共有するので、クライアントはその資源をマウントできます。ただし、クライアント側でスーパーユーザーになったユーザーは、マウントされているリモート資源にスーパーユーザーとしてアクセスしようとしても拒否されます。あるホスト上でスーパーユーザーとしてログインしたユーザーが NFS を通じて共有されるリモートファイルへのアクセスを要求すると、そのユーザー ID は 0 からユーザー名 nobody のユーザー ID に変更されます。ユーザー nobody のアクセス権は、特定のファイルに関して公共に与えられるものと同じです。たとえば、公共がファイルの実行権しか持っていなければ、ユーザー nobody はそのファイルの実行しかできません。