MOUNTD(8)

名前
mountd - NFS マウントデーモン

書式
/usr/sbin/rpc.mountd [ -f exports-file ] [ -d facility ] [ -P port ] [ -Dhnprv ] [ --debug facility ] [ --exports-file=file ] [ --help ] [ --allow-non-root ] [ --re-export ] [ --no-spoof-trace ] [ --version ]

説明
mountd プログラムは NFS のマウントデーモンである。 mountd は NFS クライアントから MOUNT リクエストを受け取ると、 エクスポートファイル /etc/exports のリストを参照し、そのリクエストが正当なものかどうかをチェックする。 クライアントがそのファイルシステムのマウントを許可されている場合には、 mountd は要求されたディレクトリのファイルハンドルを作成し、 そのエントリを /etc/rmtab に追加する。 UMOUNT リクエストを受け取ると、 mountd はクライアントのエントリを rmtab から削除する。 ただし UMOUNT リクエストの後でも、 クライアントは依然ファイルハンドルを扱うことが可能であることに注意すること (例えばクライアントが同じリモートファイルシステムを 別々のマウントポイントにマウントしている場合など)。 またクライアントが mountd に知らせずにリブートすると、 rmtab に古いエントリが残ってしまうことにも注意すること。

  inetd からの起動
mountd は通常システムのブート時に起動するが、 inetd から起動することもできる。以下の 2 行を /etc/inetd.conf に追加すればよい:

mount/1-2 dgram  rpc/udp wait  root  /usr/sbin/rpc.mountd rpc.mountd
mount/1-2 stream rpc/tcp wait  root  /usr/sbin/rpc.mountd rpc.mountd

inetd から起動した場合には、適当な期間に動作要求がないと mountd は終了する。

オプション

-f または \--exports-file
    このオプションはエクスポートファイルを指定する。 エクスポートファイルには、このサーバーがサービスを提供するクライアントと、 それぞれのマウントに対して適用されるパラメータがリストされている (exports(5) を見よ)。 デフォルトのエクスポートファイルは /etc/exports である。

-d facility または --debug facility
    それぞれのトランザクションに対する詳細な内容を、 標準エラー出力にログ表示する。 facility に指定できるのは、 call (すべてのコールを記録)、 auth (クライアントの認証)、 fhcache (ファイルハンドルのキャッシュ操作)、 rmtab (/etc/rmtab の操作) である。 デフォルトでは、デーモンがフォアグラウンドで実行されなければ、 ログ出力は syslogd に送られる。

-F または --foreground
    通常 mountd は端末から分離 (detach) するが、このオプションが与えられると分離しない。 debug 情報は標準エラー出力に表示される。

-h または --help
    ヘルプの短い要約を表示する。

-n または --allow-non-root
    IP の特権ポート以外から来たマウント要求も許可する。 NFS クライアントの古い実装では、この指定が必要な場合がある。 逆に新しい実装には、特権ポートのチェックを信頼しないものがある。

-P portnum または --port portnum
    mountd に portnum ポートを監視させる。 デフォルトでは、 mountd は /etc/services で指定されている mount/udp ポートを監視する (あるいはこれが指定されていないと 1024 以下の任意のポートを監視する)。

-p または --promiscuous
    サーバを「無制限 (promiscuous)」モードにする。 ネットワーク上のすべてのホストに対してサービスを提供する。

-r または --re-export
    インポートした NFS や SMB ファイルシステムの再エクスポートを許す。 これにより、マシンは NFS/SMB の中継器となる。 ループバックマウントを再エクスポートするときには特に注意すること。 マウントポイントに再入すると、クライアントファイルシステムのコードと サーバーはデッドロックしてしまう。

-t または --no-spoof-trace
    デフォルトでは、 mountd は権限のないクライアントからの全てのアクセスをログに記録する。 このオプションを使うと、 exports ファイルに明示的にリストされている全てのホストについて、 このような成りすまし行為をログに記録しない。

-v または --version
    プログラムの現在のバージョン番号を表示する。

  アクセス制御
セキュリティを強化するため、 mountd へのアクセスは TCP wrapper ライブラリで制限することができる。 同ライブラリは Wietse Venema の tcp_wrappers パッケージの一部である。 このオプションをサポートするかどうかはコンパイル時に指定できる。 ローカルなネットワーク (例として 192.168.1.0 としよう) だけに アクセスを許可したい場合は、以下のような行を /etc/hosts.allow ファイルに追加すればよい:

rpc.mountd : 192.168.1. : allow
rpc.mountd : ALL        : deny

この例は、TCP wrapper ライブラリが オプションをサポートしてコンパイルされた場合に有効である (筆者はオプションのサポートを強くすすめる)。 オプションをサポートしないようにコンパイルされた場合は、 以下の 2 行を /etc/hosts.allow と /etc/hosts.deny とにそれぞれ追加する必要がある:

# hosts.allow:
rpc.mountd : 192.168.1
# hosts.deny
rpc.mountd : ALL

ここの情報を変更したら、変更を有効にするには mountd を再起動する必要がある。一度 kill して再起動するか、 HUP シグナルを送れば良い。

バグ
/etc/mtab の情報は不正確であることのほうが多い。

シグナル
SIGHUP を受け取ると、 mountd は exports ファイルと、 /etc/hosts.allow および /etc/hosts.deny ファイルで定義されているすべてのアクセス制限を読みなおす。 エクスポートの変更を有効にするには、 nfsd にも SIGHUP を送る必要があることに注意せよ。

ファイル
/etc/exports
/etc/rmtab

関連項目
exports(5), nfsd(8), ugidd(8C), showmount(8)