1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335
|
.\"
.\" Original manual page is a part of nfs-server package.
.\" Following is a exerpt from README of version 2.2beta47.
.\"
.\" 7. Copyright
.\"
.\" Much of the code in this package was originally written by
.\" Mark Shand, and is placed under the following copyright:
.\"
.\" This software may be used for any purpose provided
.\" the above copyright notice is retained. It is
.\" supplied as is, with no warranties expressed or
.\" implied.
.\"
.\" Other code, especially that written by Rick Sladkey and some
.\" replacement routines included from the GNU libc, are covered
.\" by the GNU General Public License, version 2, or (at your
.\" option) any later version.
.\"
.\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved.
.\" Translated Wed 11 Nov 1998 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
.\" Updated & Modified Sun Jan 27 17:30:35 JST 2002
.\" by Yuichi SATO <ysato@h4.dion.ne.jp>
.\" Modified Tue Feb 19 19:06:53 JST 2002 by Yuichi SATO
.\"
.TH NFSD 8 "11 August 1997"
.SH 名前
nfsd \- NFS サービスデーモン
.SH 書式
.ad l
.B /usr/sbin/rpc.nfsd
.B "[\ \-f\ exports-file\ ]"
.B "[\ \-d\ facility\ ]"
.B "[\ \-P\ port\ ]"
.B "[\ \-R\ dirname\ ]"
.B "[\ \-Fhlnprstv\ ]"
.B "[\ \-\-debug\ facility\ ]"
.B "[\ \-\-exports\-file=file\ ]"
.B "[\ \-\-foreground\ ]"
.B "[\ \-\-help\ ]"
.B "[\ \-\-allow\-non\-root\ ]"
.B "[\ \-\-re\-export\ ]"
.B "[\ \-\-public\-root\ dirname\ ]"
.\".B "[\ \-\-synchronous\-writes\ ]"
.B "[\ \-\-no\-spoof\-trace\ ]"
.B "[\ \-\-port\ port\ ]"
.B "[\ \-\-log-transfers\ ]"
.B "[\ \-\-version\ ]"
.\" TN.B "[ numservers ]"
.B "[ numcopies ]"
.ad b
.SH 説明
.I nfsd
プログラムは NFS サービスデーモンであり、クライアントからの
ファイルシステム要求を取り扱う。
他のシステムと異なり、この
.I nfsd
は普通のユーザーレベルプロセスとして動作する。
またこのサーバーは、ファイルシステムの物理的な境界に制限されず、
ファイル階層すべてをマウントさせる点でも、他のシステムとは異なっている。
この実装では、サーバーマシンのファイルシステム階層に対して、
クライアントによる read-only アクセス、read-write アクセスのいずれも
行えるようになっている。
.LP
.I mountd
プログラムは、補助的な役割をするユーザーレベルの
mount デーモンを起動する。
.LP
.SS "inetd からの起動"
通常
.I nfsd
はシステムのブート時に起動されるが、
.I inetd
から起動することもできる。
それには以下の 2 行を
.I /etc/inetd.conf
に追加する。
.PP
.nf
.ta +3i
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
.fi
.PP
.I ientd
から起動した場合には、適当な期間に動作要求がないと
.I nfsd
は終了する。
.SH オプション
.TP
.BR \-f " または " \-\-exports\-file
このオプションはエクスポートファイルを指定する。
エクスポートファイルには、このサーバーがサービスを提供するクライアント
と、それぞれのマウントに対して適用されるパラメータがリストされている
(exports (5) を見よ)。
デフォルトのエクスポートファイルは
.I /etc/exports
である。
.TP
.BR "\-d facility" " または " "\-\-debug facility"
それぞれのトランザクションに対する詳細な内容を標準エラー出力にログ表示する。
\fIfacility\fP に指定できるのは、
.I call
(すべてのコールを記録)、
.I auth
(クライアントの認証)、
.I fhcache
(ファイルハンドルのキャッシュ操作)、
.I rmtab
.RI ( /etc/rmtab
の操作) である。
デフォルトでは、デーモンがフォアグラウンドで実行されなければ、
ログ出力は syslogd に送られる。
.TP
.BR \-F " または " \-\-foreground
通常
.I nfsd
は端末から分離 (detach) するが、このオプションが与えられると分離しない。
このとき debug 情報は標準エラー出力に表示される。
.TP
.BR \-h " または " \-\-help
ヘルプの短い要約を表示する。
.TP
.BR \-l " または " \-\-log-transfers
NFS サーバーから取り出されたファイル、あるいはサーバへ書き込まれた
ファイルをすべてログに書き込もうとする。
これは主として anonymous NFS エクスポートに有用で、
ある種の FTP デーモンによってサポートしている
.B xferlog
をまねするためのものである。
ファイルが書き込み・取り出しされるたび、
syslog デーモンに一行の情報が送られ、
そこにはクライアントの IP アドレスとファイル名が書き込まれる。
この転送記録のログレベルは
.B daemon.info
である。
.TP
.BR \-n " または " \-\-allow\-non\-root
IP の特権ポート以外から来たマウント要求も許可する。
NFS クライアントの古い実装では、この指定が必要な場合がある。
逆に新しい実装には、特権ポートのチェックを信頼しないものがある。
このチェックはホスト単位で外すこともできる。
.I /etc/exports
のエクスポートオプションに
.I insecure
を指定すればよい。
.TP
.BR "\-P portnum" " または " "\-\-port portnum"
.B nfsd
に
.B portnum
ポートを監視するようにさせる。
デフォルトでは、
.I mountd
は
.I /etc/services
で指定されている nfs/udp ポートを監視する
(あるいはこれが指定されていないと 2049 番のポートを監視する)。
.TP
.BR \-p " または " \-\-promiscuous
サーバを「無制限 (promiscuous)」モードにする。
ネットワーク上のすべてのホストに対してサービスを提供する。
.TP
.BR \-r " または " \-\-re\-export
インポートしたファイルシステムの再エクスポートを許す。
これにより、マシンは NFS や Novel サーバの中継器となる。
ループバックマウントを再エクスポートするときには特に注意すること。
マウントポイントに再入すると、クライアントファイルシステムのコードと
サーバーはデッドロックしてしまう。
.IP
(Linux では) 以下も注意しておきたい。
.I nfsd
はファイルシステムのメジャーデバイス番号を見て、
それがリモートのボリュームであるかどうかを判別する。
もしメジャー番号が 0 でなければ、
.I nfsd
はファイルシステムがローカルなものであると判断する。
しかし、リモートファイル以外にもメジャー番号 0 を利用するものがある。
procfs である。
NFS ファイルシステムを再エクスポートすることにした場合、
ファイルシステムの root をエクスポートした場合には
.I /proc
も含まれてしまうことに注意すること。
これはセキュリティ上の問題となることがある。
できればこのような状況は避けるべきである。
.\".TP
.\".BR \-s " または " \-\-synchronous\-writes
.\"NFS プロトコルの仕様では、サーバーに対する全ての書き込み操作は
.\"呼び出しが返る前に完了しなければならない。
.\"デフォルトでは
.\".I nfsd
.\"はこのように動作しない。
.\"このオプションは同期書き込みを有効にする。
.\"-- なぜ、みんなが同期書き込みを無効にしたがるのだろう?
.TP
.BR \-t " または " \-\-no\-spoof\-trace
デフォルトでは、
.I nfsd
は権限のないクライアントからの全てのアクセスをログに記録する。
このオプションを使うと、
.I exports
ファイルに明示的にリストされている全てのホストについて、
このような成りすまし行為をログに記録しない。
.TP
.BR \-R " または " \-\-public\-root
ディレクトリを public なファイルハンドルと関連づける。
以下の WebNFS のセクションを参照のこと。
.TP
.BR \-v " または " \-\-version
プログラムの現在のバージョン番号を表示する。
.TP
.BR numcopies
これは実験的な機能であり、
.I nfsd
のいくつかのインスタンスを並行動作させるものである。
.B numcopies
に 1 以上の値を与えると、
.I nfsd
は指定した値の回数だけ fork する。
しかし、サーバーはファイルハンドルキャッシュを共有しないので、
ある種のファイル操作は不可能となる。
.IP
このため、
.I nfsd
はこのオプションと共に起動されると、すべての書き込み操作を拒否する。
この制限は大きなものではあるが、
それでも公開 FTP 領域や Usenet News のスプールをエクスポートする場合には、
この機能は依然有用であろう。
.SS "WebNFS のサポート"
WebNFS は Sun によって開発された通常の NFS プロトコルを拡張したもので、
インターネットを通してのファイル取得に特に適している。
また、特に Web ブラウザを通しての利用を意図して作成された。
.P
このコンセプトの中心にあるのは、
「public なファイルハンドル」と呼ばれるものである。
これは特殊な NFS ファイルハンドルで、
これを用いると NFS クライアント (つまりブラウザ) は
MOUNT プロトコルを利用せずにファイルを取得できるようになる。
このファイルハンドルはサーバーマシンのディレクトリに
関連づけられていなければならず、
またこのファイルハンドルによるファイル名の評価は、
そのディレクトリからの相対パスとして行われることになる。
これが
.I "public root ディレクトリ"
であり、
.B \-\-public\-root
オプションを用いて指定できる。
例えば Web サーバなら、ドキュメントの root (例えば \fB/home/httpd/\fP) を
この public root にすると良いだろう。
URL
.B nfs://foo.bar.edu/zappa.html
を要求した Web ブラウザは、ファイル
.B /home/httpd/zappa.html
を与えられることになる。
メンテナンスを容易にするため、public root ディレクトリの指定は、
.I exports
で特殊なエントリを用いることによっても可能になっている (詳細は
.IR exports (5)
を参照のこと)。
.P
public root を指定しても、これが自動的にエクスポートされるわけでは\fIない\fP。
このディレクトリを実際にアクセス可能にするためには、依然
.B /etc/exports
で明示する必要がある。
WebNFS クライアントにデータをエクスポートする際に有用なオプションのセットは、
.B ro,all_squash,insecure
である。
これらのフラグの詳細については
.BR exports (5)
を参照してほしい。
.P
WebNFS クライアントは、
public root ディレクトリ下に置かれていないファイルに関しても、
それが自分むけにエクスポートされていれば
アクセスできてしまうことにも注意してほしい。
特に
.B /home/ftp
を Web サーバのホームディレクトリと共に外界にエクスポートしてしまうと、
Web クライアントは FTP ファイルに
.B nfs://foo.bar.edu/../ftp/README
のようにアクセスできてしまう。
もちろんエクスポートされていないクライアントに関しては、
これはあてはまらない。
.SH シグナル
.I nfsd
は以下のシグナルを認識する:
.TP
.I SIGHUP
このシグナルを受けると、
.I nfsd
は export ファイルを再読み込みし、
ファイルハンドルのキャッシュをフラッシュする。
public root が指定されていると、このシグナルによって
public ディレクトリ名に関連づけられたファイルハンドルが再生成される
(リムーバブルなファイルシステムをエクスポートする場合に便利)。
.TP
.I SIGUSR1
デバッグオプションを指定して
.I nfsd
起動した場合、このシグナルを与えると
デバッグ情報の生成をオン・オフできる。
.TP
.I SIGIOT
\-DCALL_PROFILING オプションを指定してコンパイルした場合、
SIGIOT を
.I nfsd
に送ると一回の NFS 操作あたりの平均実行時間が
.I /tmp/nfsd.profile
にダンプされる。
.SH バグ
.I nfsd
は、ディレクトリのファイル名が問い合わされたときに
.B index.html
ファイルを提供する機能をサポートしていない。
これは RFC の要求にはないので、実際にはバグではなく機能の欠如である。
.P
.B \-\-log\-transfers
オプションは必ずしも正しいログを残さない。
なぜなら UNIX ファイルシステムの
.BR open() " および " close()
コールに対応するものが NFS プロトコルには存在しないからである。
代わりに
.I nfsd
は、READ または WRITE 要求のオフセット 0 に遭遇するたびに転送記録を書き出す。
.SH 関連項目
exports(5), mountd(8), ugidd(8C)
.SH 著者
Mark Shand がオリジナルの unfsd を書いた。
Don Becker は unfsd を拡張し、認証機能と read-write 機能を
サポートして、これを hnfs と名づけた。
Rick Sladkey はホストマッチ、showmount \-e のサポート、
mountd の認証、inetd のサポート、移植性の向上や設定に
必要なコードなどを追加した。
Olaf Kirch は一つ二つのセキュリティホールと、その他のバグを
修正し、uid マッピングとその他いくつかの機能を追加した。
|