NFSD(8) NFSD(8) 名前 nfsd - NFS サービスデーモン 書式 /usr/sbin/rpc.nfsd [ -f exports-file ] [ -d facility ] [ -P port ] [ -R dirname ] [ -Fhlnprstv ] [ --debug facility ] [ --exports-file=file ] [ --foreground ] [ --help ] [ --allow-non-root ] [ --re-export ] [ --public-root dirname ] [ --no-spoof-trace ] [ --port port ] [ --log-transfers ] [ --version ] [ numcopies ] 説明 nfsd プログラムは NFS サービスデーモンであり、クライアントからのファ イ ル システム要求を取り扱う。他のシステムと異なり、この nfsd は普通のユー ザーレベルプロセスとして動作する。またこのサーバーは、ファイルシステ ム の 物理的な境界に制限されず、ファイル階層すべてをマウントさせる点でも、 他のシステムとは異なっている。この実装では、サーバーマシンのファイル シ ス テ ム階層に対して、クライアントによる read-only アクセス、read-write アクセスのいずれも行えるようになっている。 mountd プログラムは、補助的な役割をするユーザーレベルの mount デーモ ン を起動する。 inetd からの起動 通常 nfsd はシステムのブート時に起動されるが、 inetd から起動することも できる。それには以下の 2 行を /etc/inetd.conf に追加する。 nfs/2 dgram rpc/udp wait root /usr/sbin/rpc.nfsd rpc.nfsd nfs/2 stream rpc/tcp wait root /usr/sbin/rpc.nfsd rpc.nfsd ientd から起動した場合には、適当な期間に動作要求がないと nfsd は終了 す る。 オプション -f または --exports-file このオプションはエクスポートファイルを指定する。エクスポートファ イルには、このサーバーがサービスを提供するクライアントと、それぞ れ の マ ウ ン ト に対して適用されるパラメータがリストされている (exports (5) を見よ)。デフォルトのエクス ポ ー ト フ ァ イ ル は /etc/exports である。 -d facility または --debug facility それぞれのトランザクションに対する詳細な内容を標準エラー出力にロ グ表示する。 facility に指定できるのは、 call (すべてのコール を 記 録)、 auth (クライアントの認証)、 fhcache (ファイルハンドルの キャッシュ操作)、 rmtab (/etc/rmtab の操作) である。デフォルトで は 、 デ ー モンがフォアグラウンドで実行されなければ、ログ出力は syslogd に送られる。 -F または --foreground 通常 nfsd は端末から分離 (detach) するが、このオプションが与えら れ ると分離しない。このとき debug 情報は標準エラー出力に表示され る。 -h または --help ヘルプの短い要約を表示する。 -l または --log-transfers NFS サーバーから取り出されたファイル、あるいはサーバへ書き込まれ た ファイルをすべてログに書き込もうとする。これは主として anony- mous NFS エクスポートに有用で、ある種の FTP デーモンによってサポ ー トしている xferlog をまねするためのものである。ファイルが書き 込み・取り出しされるたび、 syslog デーモンに一行の情報が送られ、 そこにはクライアントの IP アドレスとファイル名が書き込まれる。こ の転送記録のログレベルは daemon.info である。 -n または --allow-non-root IP の特権ポート以外から来たマウント要求も許可する。 NFS クライア ントの古い実装では、この指定が必要な場合がある。逆に新しい実装に は、特権ポートのチェックを信頼しないものがある。このチェックはホ スト単位で外すこともできる。 /etc/exports のエクスポートオプショ ンに insecure を指定すればよい。 -P portnum または --port portnum nfsd に portnum ポートを監視するようにさせる。デフォルトで は 、 mountd は /etc/services で指定されている nfs/udp ポートを監視す る (あるいはこれが指定されていないと 2049 番のポートを監視す る) 。 -p または --promiscuous サーバを「無制限 (promiscuous)」モードにする。ネットワーク上のす べてのホストに対してサービスを提供する。 -r または --re-export インポートしたファイルシステムの再エクスポートを許す。これにより 、マシンは NFS や Novel サーバの中継器となる。ループバックマウン トを再エクスポートするときには特に注意すること。マウントポイント に再入すると、クライアントファイルシステムのコードとサーバーはデ ッドロックしてしまう。 (Linux では) 以下も注意しておきたい。 nfsd はファイルシステム の メジャーデバイス番号を見て、それがリモートのボリュームであるかど うかを判別する。もしメジャー番号が 0 でなければ、 nfsd はファ イ ルシステムがローカルなものであると判断する。しかし、リモートファ イル以外にもメジャー番号 0 を利用するものがある。 procfs であ る 。 NFS ファイルシステムを再エクスポートすることにした場合、ファ イルシステムの root をエクスポートした場合には /proc も含まれ て しまうことに注意すること。これはセキュリティ上の問題となることが ある。できればこのような状況は避けるべきである。 -t または --no-spoof-trace デフォルトでは、 nfsd は権限のないクライアントからの全てのアクセ ス をログに記録する。このオプションを使うと、 exports ファイルに 明示的にリストされている全てのホストについて、このような成りすま し行為をログに記録しない。 -R または --public-root デ ィ レ ク トリを public なファイルハンドルと関連づける。以下の WebNFS のセクションを参照のこと。 -v または --version プログラムの現在のバージョン番号を表示する。 numcopies これは実験的な機能であり、 nfsd のいくつかのインスタンスを並行動 作させるものである。 numcopies に 1 以上の値を与えると、 nfsd は 指定した値の回数だけ fork する。しかし、サーバーはファイルハンド ルキャッシュを共有しないので、ある種のファイル操作は不可能となる 。 このため、 nfsd はこのオプションと共に起動されると、すべての書き 込み操作を拒否する。この制限は大きなものではあるが、それでも公開 FTP 領域や Usenet News のスプールをエクスポートする場合には、 こ の機能は依然有用であろう。 WebNFS のサポート WebNFS は Sun によって開発された通常の NFS プロトコルを拡張したもので、 インターネットを通してのファイル取得に特に適している。また、特に Web ブ ラウザを通しての利用を意図して作成された。 このコンセプトの中心にあるのは、「public なファイルハンドル」と呼ばれる ものである。これは特殊な NFS ファイルハンドルで、これを用いると NFS ク ライアント (つまりブラウザ) は MOUNT プロトコルを利用せずにファイルを取 得できるようになる。このファイルハンドルはサーバーマシンのディレクト リ に 関連づけられていなければならず、またこのファイルハンドルによるファイ ル名の評価は、そのディレクトリからの相対パスとして行われることになる 。 こ れが public root ディレクトリであり、 --public-root オプションを用い て指定できる。例えば Web サーバなら、ドキュメン ト の root ( 例 え ば /home/httpd/) を こ の public root に す る と 良 い だろう。 URL nfs://foo.bar.edu/zappa.html を要求した Web ブラウ ザ は 、 フ ァ イ ル /home/httpd/zappa.html を与えられることになる。メンテナンスを容易にする ため、public root ディレクトリの指定は、 exports で特殊なエントリを用い ることによっても可能になっている (詳細は exports(5) を参照のこと)。 public root を指定しても、これが自動的にエクスポートされるわけではない 。このディレクトリを実際にアクセス可能にするためには、依然 /etc/exports で 明示する必要がある。 WebNFS クライアントにデータをエクスポートする際 に有用なオプションのセットは、 ro,all_squash,insecure である。これら の フラグの詳細については exports(5) を参照してほしい。 WebNFS クライアントは、 public root ディレクトリ下に置かれていないファ イルに関しても、それが自分むけにエクスポートされていればアクセスでき て し まうことにも注意してほしい。特に /home/ftp を Web サーバのホームディ レクトリと共に外界にエクスポートしてしまうと、 Web クライアント は FTP ファイルに nfs://foo.bar.edu/../ftp/README のようにアクセスできてしまう 。もちろんエクスポートされていないクライアントに関しては、これはあて は まらない。 シグナル nfsd は以下のシグナルを認識する: SIGHUP このシグナルを受けると、 nfsd は export ファイルを再読み込みし、 ファイルハンドルのキャッシュをフラッシュする。 public root が 指 定されていると、このシグナルによって public ディレクトリ名に関連 づけられたファイルハンドルが再生成される (リムーバブルなファイル システムをエクスポートする場合に便利)。 SIGUSR1 デバッグオプションを指定して nfsd 起動した場合、このシグナルを与 えるとデバッグ情報の生成をオン・オフできる。 SIGIOT -DCALL_PROFILING オプションを指定してコンパイルした場合、 SIGIOT を nfsd に 送 る と 一 回 の NFS 操作あたりの平均実行時間が /tmp/nfsd.profile にダンプされる。 バグ nfsd は、ディレクトリのファイル名が問い合わされたときに index.html ファ イルを提供する機能をサポートしていない。これは RFC の要求にはないので、 実際にはバグではなく機能の欠如である。 --log-transfers オプションは必ずしも正しいログを残さない。なぜなら UNIX フ ァイルシステムの open() および close() コールに対応するものが NFS プ ロトコルには存在しないからである。代わりに nfsd は、READ また は WRITE 要求のオフセット 0 に遭遇するたびに転送記録を書き出す。 関連項目 exports(5), mountd(8), ugidd(8C) 著者 Mark Shand がオリジナルの unfsd を書いた。 Don Becker は unfsd を拡張し 、認証機能と read-write 機能をサポートして、これを hnfs と名づ け た 。 Rick Sladkey はホストマッチ、showmount -e のサポート、 mountd の認証 、inetd のサポート、移植性の向上や設定に必要なコードなどを追加 し た 。 Olaf Kirch は一つ二つのセキュリティホールと、その他のバグを修正し、uid マッピングとその他いくつかの機能を追加した。 11 August 1997 NFSD(8)
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa