NFS の管理

WebNFS の管理タスク

この節では、WebNFS システムを管理する方法を説明します。以下のタスクについて説明します。

WebNFS アクセスの計画

WebNFS の機能を使用するには、まずアプリケーションを実行して NFS URL (nfs://server/path など) を読み込む必要があります。次に、WebNFS アクセスのためにエクスポートするファイルシステムを選択します。アプリケーションが Web ブラウザの場合には、Web サーバの文書のルートがよく使われます。WebNFS アクセスのためにエクスポートするファイルシステムを選択するときには、考慮すべきことがいくつかあります。

  1. 各サーバには公共ファイルハンドルが 1 つずつあり、このハンドルはデフォルトではサーバのルートファイルシステムに結び付けられています。NFS URL に示されたパスは、この公共ファイルハンドルが結び付けられているディレクトリからの相対パスとして評価されます。その結果としてパスが示す先のファイルまたはディレクトリが、エクスポートされたファイルシステムの中にあると、サーバによってアクセスが実現されます。share コマンドの -public オプションを使うと、エクスポートされる特定のディレクトリにこの公開ファイルハンドルを結び付けることができます。このオプションを使うと、URL はサーバのルートファイルシステムではなく共有ファイルシステムからの相対パスになります。デフォルトでは公開ファイルハンドルはルートファイルシステムを示していますが、ルートファイルシステムを共有しないかぎりこのファイルハンドルでは Web アクセスはできません。

  2. WebNFS 環境では、すでにマウント権限を持っているユーザはファイルシステムが -public オプションを使ってエクスポートされているかどうかに関係なく、ブラウザからファイルにアクセスできます。ユーザは NFS の設定によってファイルに対するアクセス権を持っているため、ブラウザからのアクセスを許すことによって新たにセキュリティが損なわれるおそれはありません。 ファイルシステムをマウントできないユーザは、-public オプションを使ってファイルシステムを共有するだけで WebNFS アクセスを使えるようになります。

  3. FTP アーカイブの最上位ディレクトリや Web サイトの中心となる URL など、すでに公開されているファイルシステムは -public オプションを使用する対象の有力な候補です。

  4. share コマンドで -index オプションを使うと、NFS URL がアクセスされたときにディレクトリがリストされるのではなく HTML ファイルがロードされます。

    ファイルシステムを選択したらファイルを確認し、必要に応じてファイルやディレクトリの表示を制限するようにアクセス権を設定します。アクセス権は、共有される NFS ファイルシステムに合わせて設定します。多くのサイトでは、ディレクトリに対しては 755、ファイルに対しては 644 が適切なアクセスレベルです。

    1 つの Web サイトへのアクセスに NFS URL と HTTP URL の両方を使用する場合には、ほかにも考慮すべき要素があります。「Web ブラウザと比較した場合の WebNFS の制約」 を参照してください。

WebNFS アクセスを有効にする方法

バージョン 2.6 以降では、NFS マウントが可能なファイルシステムはすべてデフォルトで自動的に WebNFS アクセスでも利用できます。この手順を実行する必要があるのは、NFS マウントが許可されていないサーバで、公開ファイルハンドルをリセットすることで NFS URL を短くできるか -index オプションが必要な場合だけです。

  1. /etc/dfs/dfstab ファイルを編集します。

    自動的に共有したいファイルシステムに対応するエントリを 1 つ追加します。-index タグは省略可能です。


    share -F nfs -o ro,public,index=index.html /export/ftp
  2. NFS サービスがサーバで実行されていることを確認します。

    share コマンド、または share コマンドのセットを初めて実行する場合は、NFS デーモンが動作していないと考えられます。以下のコマンドでデーモンを削除し、再起動してください。


    # /etc/init.d/nfs.server stop
    # /etc/init.d/nfs.server start
    
  3. ファイルシステムを共有します。

    /etc/dfs/dfstab ファイルの中にエントリが存在していれば、システムをリブートするか shareall コマンドを実行することによってファイルシステムを共有できます。手順 2 で NFS デーモンを再起動した場合には、そのスクリプトによって shareall コマンドが実行されるため、改めて実行する必要はありません。


    # shareall
    
  4. 情報が正しいことを確認します。

    share コマンドを実行して、表示されるオプションが正しいか確認します。


    # share
    - /export/share/man ro ""
    - /usr/src rw=eng ""
    - /export/ftp ro,public,index=index.html ""

NFS URL を使ったブラウズ

WebNFS アクセスをサポート可能なブラウザは、次のような形式の NFS URL を使ってアクセスを実現します。


nfs://server<:port>/path

server はファイルサーバの名前、port はポート番号 (デフォルトは 2049)、path はファイルへのパスです。パスは、そのサーバの公開ファイルハンドルまたはルートファイルシステムからの相対パスで示します。


注 -

ほとんどのブラウザでは、URL サービスタイプ (nfshttp など) は別のサービスタイプの URL が読み込まれるまで次のトランザクションに引き継がれます。NFS URL を使用しているときに HTTP URL への参照が読み込まれると、それ以降のページは次に URL で NFS URL が指定されるまで、NFS プロトコルではなく HTTP プロトコルを使って読み込まれます。


ファイアウォール経由で WebNFS を使用する方法

ローカルのサブネットに属していないクライアントに対して WebNFS アクセスを有効にするには、ポート 2049 での TCP 接続を許可するようにファイアウォールを設定します。httpd に対してアクセスを許可するだけでは、NFS URL が使えるようにはなりません。