File: nfsd.8

package info (click to toggle)
manpages-ja 0.5.0.0.20180315%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 28,516 kB
  • sloc: perl: 161; makefile: 101
file content (335 lines) | stat: -rw-r--r-- 13,914 bytes parent folder | download | duplicates (6)
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 マッピングとその他いくつかの機能を追加した。