File: ftpd.8

package info (click to toggle)
manpages-ja 0.5.0.0.20120606-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 25,964 kB
  • sloc: perl: 161; makefile: 116
file content (436 lines) | stat: -rw-r--r-- 17,590 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
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
.\"
.\" Copyright (c) 1985, 1988, 1991, 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)ftpd.8	8.2 (Berkeley) 4/19/94
.\"	NetBSD: ftpd.8,v 1.8 1996/01/14 20:55:23 thorpej Exp
.\"	OpenBSD: ftpd.8,v 1.9 1996/12/03 03:07:16 deraadt Exp
.\"	OpenBSD: ftpd.8,v 1.12 1997/05/01 14:45:36 deraadt Exp
.\"	OpenBSD: ftpd.8,v 1.22 1999/07/09 13:35:50 aaron Exp
.\"     $Id: ftpd.8,v 1.1.1.1 2000/10/19 08:22:16 ysato Exp $
.\"
.\" Japanese Version Copyright (c) 2000 Yuichi SATO
.\"         all rights reserved.
.\" Translated Mon Dec 11 04:32:48 JST 2000
.\"         by Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
.\"
.\"WORD:	anonymous	匿名
.\"WORD:	transfer	転送
.\"WORD:	Trademark	商標
.\"
.Dd September 14, 1999
.Dt FTPD 8
.Os "Linux NetKit (0.17)"
.Sh 名前
.Nm ftpd
.Nd
インターネットファイル転送プロトコルサーバ
.Sh 書式
.Nm ftpd
.Op Fl AdDhlMPSU
.Op Fl T Ar maxtimeout
.Op Fl t Ar timeout
.Op Fl u Ar mask
.Sh 説明
.Nm ftpd
はインターネットファイル転送プロトコルサーバプロセスである。
このサーバは
.Tn TCP
プロトコルを用いて、
.Dq ftp
サービスの仕様で指定されたポートを listen する。
.Xr services 5
を参照すること。
.Pp
使用可能なオプションは以下の通りである:
.Bl -tag -width Ds
.It Fl A
匿名 ftp 接続、または
.Pa /etc/ftpchroot
にリストされたアカウントによる接続のみを許可する。
他の接続は拒否される。
.It Fl d
デバッグ情報が LOG_FTP を使って syslog に書き込まれる。
.It Fl D
このオプションが設定されると、
.Nm ftpd
は制御端末を切り離してデーモンとなり、FTP ポートへの接続を受け付け、
接続を処理するために子プロセスを fork する。
この方式は
.Nm ftpd
.Xr inetd 8
から起動するよりオーバーヘッドが少ないため、
処理量の多いサーバで負荷を低減するのに役立つ。
.It Fl h
サーバがパッシブ接続のために大きい番号の範囲にあるデータポートを使う。
この範囲は <netinet/in.h> にある
.Ev IPPORT_HIFIRSTAUTO
.Ev IPPORT_HILASTAUTO
で定義される。
.Ox
では、この値はそれぞれ 49152 と 65535 に設定される。
.It Fl l
成功または失敗した各
.Xr ftp 1
セッションを syslog の LOG_FTP ファシリティ (facility) を用いてログに記録する。
このオプションを 2 つ指定すると、
retrieve (get), store (put), append,
delete, make directory, remove directory, rename の各操作、 
およびそれらの引き数として指定されたファイル名についてもログに記録する。
.It Fl M
複数ホームモードを有効にする。
匿名ファイル転送のために単に
.Pa ~ftp
を使うのではなく、接続されたクライアントの IP アドレスから
完全なドメイン名付きのホスト名にマッチする
.Pa ~ftp
内部にあるディレクトリを使う。
.It Fl p
パッシブモード ftp 接続を無効にする。
大きな番号のポートでの接続を拒否する
ファイアーウォールの後ろにいる場合に役立つ。
多くの ftp クライアントは始めにパッシブモードを試み、
クライアントが接続するのに指定したポートへの接続を拒否する
サーバに対して常にうまく対応する訳ではない。
.It Fl P
正式なポート番号や接続を初期化する PORT コマンドの
正式なアドレスの使用を許可する。
デフォルトでは、
.Xr ftpd 8
は RFC を守っていないので、
PORT コマンドを予約されていないポート番号で行わせたり、
接続元のアドレスが同じアドレスである必要がある。
これにより、ローカルマシンと他のローカルマシンに対して
"FTP バウンス攻撃" を防止することができる。
.It Fl S
このオプションが設定されると、
.Nm ftpd
は、ファイル
.Pa /var/log/ftpd
がある場合、このファイルに全ての匿名ファイル転送についてログを記録する。
.It Fl U
同時に起こる各
.Xr ftp 1
セッションは、ファイル
.Pa /var/run/utmp
にログが記録され、
.Xr who 1
のようなコマンドに見えるようにされる。
このオプションは現在のところサポートされておらず、
常に何も表示せずに失敗する。
.It Fl T
クライアントが他のタイムアウト時間をリクエストできる。
タイムアウトの最長時間は、
.Fl T
オプションを使って
.Ar timeout
秒に設定することができる。
デフォルトのタイムアウト時間は 2 時間である。
.It Fl t
無活動タイムアウト時間を
.Ar timeout
秒に設定する
(デフォルトは 15 分である)。
.It Fl u
デフォルトの umask を 027 から
.Ar mask
に変更する。
.El
.Pp
ファイル
.Pa /etc/nologin
は ftp アクセスを不可にするために使われる。
このファイルが存在すると、
.Nm
はそのファイル内容を表示して終了する。
ファイル
.Pa /etc/ftpwelcome
が存在する場合、
.Nm
.Dq ready
メッセージを表示する前に、
そのファイルの内容を表示する。
.Pa /etc/motd
が存在する場合、
.Nm
はログインが成功した後、そのファイルの内容を表示する。
ディレクトリに
.Pa .message
ファイルが存在する場合、
.Nm
そのディレクトリに入ったときに、このファイルの内容を表示する。
.Pp
ftp サーバは現在のところ以下の ftp リクエストをサポートしている。
リクエストの文字の大文字小文字は無視される。
.Bl -column "リクエスト" -offset indent
.It リクエスト Ta "説明"
.It ABOR Ta "直前のコマンドを中断 (abort) する"
.It ACCT Ta "アカウントを指定する (無視される)"
.It ALLO Ta "(空の) ストレージを確保する"
.It APPE Ta "ファイルを追加する"
.It CDUP Ta "カレントワーキングディレクトリの親ディレクトリを変更する"
.It CWD Ta "ワーキングディレクトリを変更する"
.It DELE Ta "ファイルを削除する"
.It HELP Ta "ヘルプ情報を表示する"
.It LIST Ta "ディレクトリ中のファイルのリストを表示する" Pq Dq Li "ls -lgA"
.It MKD Ta "ディレクトリを作成する"
.It MDTM Ta "ファイルの最終修正時刻を表示する"
.It MODE Ta "データ転送モードを" Em mode "に指定する"
.It NLST Ta "ディレクトリ中のファイル名リストを表示する"
.It NOOP Ta "何もしない"
.It PASS Ta "パスワードを指定する"
.It PASV Ta "サーバからサーバへの転送の準備をする"
.It PORT Ta "データ接続ポートを指定する"
.It PWD Ta "カレントワーキングディレクトリの名前を表示する"
.It QUIT Ta "セッションを終了する"
.It REST Ta "不完全だった転送を再開する"
.It RETR Ta "ファイルを取得する"
.It RMD Ta "ディレクトリを削除する"
.It RNFR Ta "名前変更前のファイル名を指定する"
.It RNTO Ta "名前変更後のファイル名を指定する"
.It SITE Ta "標準でないコマンド (次のセクションを参照すること)"
.It SIZE Ta "ファイルのサイズを返す"
.It STAT Ta "サーバのステータスを返す"
.It STOR Ta "ファイルを格納する"
.It STOU Ta "ファイルを他のものと重複のない名前で格納する"
.It STRU Ta "データ転送構造を" Em structure "に指定する"
.It SYST Ta "サーバシステムのオペレーティングシステムのタイプを表示する"
.It TYPE Ta "データ転送タイプを" Em type "に指定する"
.It USER Ta "ユーザー名を指定する"
.It XCUP Ta "カレントワーキングディレクトリの親ディレクトリを変更する (反対される)"
.It XCWD Ta "ワーキングディレクトリを変更する (反対される)"
.It XMKD Ta "ディレクトリを作成する (反対される)"
.It XPWD Ta "カレントワーキングディレクトリの名前を表示する (反対される)"
.It XRMD Ta "ディレクトリを削除する (反対される)"
.El
.Pp
以下の標準でないコマンドや
.Tn UNIX
特有のコマンドは、
SITE リクエストを使うことでサポートされる。
.Pp
.Bl -column リクエスト -offset indent
.It Sy リクエスト Ta Sy 説明
.It UMASK Ta umask を変更する。例 ``SITE UMASK 002''
.It IDLE Ta アイドルタイマを設定する。例 ``SITE IDLE 60''
.It CHMOD Ta ファイルのモードを指定する。例 ``SITE CHMOD 755 filename''
.It HELP Ta ヘルプ情報を表示する。
.El
.Pp
インターネット RFC 959 で規定されている
他の ftp リクエストも認識されるが、
今のところ実装されてはいない。
MDTM と SIZE は RFC 959 で規定されていないが、
次に改訂される FTP RFC には登場するだろう。
.Pp
ftp サーバがアクティブなファイル転送プロセスを中断 (abort) するのは、
ABOR コマンドの前に、
Telnet "Interrupt Process" (IP) シグナルや
Telnet "Synch" シグナルが
Telnet  ストリーム内にある場合だけである。
これはインターネット RFC 959 に記述されている。
データ転送中に STAT コマンドを受け取り、
その前に Telnet IP や Synch があった場合、
転送ステータスが返される。
.Pp
.Nm ftpd
は、
.Xr csh 1
で使われている
.Dq ファイル名展開
による変換に基づいて、ファイル名を解釈する。
これにより、ユーザーはメタキャラクタ
.Dq Li \&*?[]{}~
を利用できる。
.Pp
.Nm ftpd
は 5 つのルールに従ってユーザーの認証をする。
.Pp
.Bl -enum -offset indent
.It
ログイン名はパスワードデータベース
.\" .Pa /etc/pwd.db ,
.Pa /etc/passwd
になければならず、
空のパスワードであってはならない。
この場合、あらゆるファイル転送に先だって、
クライアントからパスワードが提供されなければならない。
ユーザーが S/Key のキーを持っている場合、
USER コマンドが成功した際の応答が S/Key チャレンジに含めて送られる。
クライアントは、それに対して PASS コマンドを使って応答する際に、
通常のパスワードと S/Key のワンタイムパスワードの
どちらをつけて応答するかを選択できる。
サーバはどちらのタイプのパスワードを受け取ったかを自動的に判定し、
それに応じて認証を試みる。
S/Key 認証についての詳細は
.Xr skey 1
を参照すること。
S/Key は Bellcore 社の商標である。
.It
ログイン名はファイル
.Pa /etc/ftpusers
にあってはならない。
.It
ユーザーは
.Xr getusershell 3
が返す標準のシェルを持っていなければならない。
.It
ユーザー名がファイル
.Pa /etc/ftpchroot
にある場合、
.Dq anonymous
アカウントや
.Dq ftp
アカウントの場合 (次の項目を参照) と同様に、
セッションのルートディレクトリは
.Xr chroot 2
によってユーザーのログインディレクトリに変更される。
しかし、この場合でもユーザーはパスワードを与える必要がある。
この特徴は、完全に匿名なアカウントと完全な特権のあるアカウントの
妥協的な利用を意図している。
このアカウントは匿名アカウントとして設定されていなければならない。
.It
ユーザー名が
.Dq anonymous
または
.Dq ftp
である場合、
匿名 ftp アカウントがパスワードファイルで (ユーザー
.Dq ftp
として) 提供されていなければならない。
この場合、ユーザーはどのようなパスワードを指定してもログインが許可される
(慣例として、ユーザーの email アドレスがパスワードとして使われる)。
.El
.Pp
最後のケースでは、
.Nm ftpd
は、クライアントのアクセス権を制限するために、特別な評価を行う。
サーバは
.Dq ftp
ユーザのホームディレクトリに対して
.Xr chroot 2
を実行する。
システムのセキュリティが侵害されないためには、
.Dq ftp
サブツリーを以下の規則に従って慎重に構築することを推奨する:
.Bl -tag -width "~ftp/pub" -offset indent
.It Pa ~ftp
ホームディレクトリを
.Dq root
の所有とし、誰も書き込みできないように (モードを 555 に) すること。
.It Pa ~ftp/bin
このディレクトリを
.Dq root
の所有とし、誰も書き込みできないように (モードを 511 に) すること。
.\"匿名 ftp ユーザーに実行させたいコマンドがない限り、
.\"このディレクトリはなくても構わない
.\".Ns ( Xr ls 1
.\"コマンドは組み込みコマンドとして存在する)。
.\"  -- 組み込みの ls コマンドは Linux 版にはない (まだなかったかな?)
このディレクトリは必要で、
少なくとも静的にリンクされた
.Xr ls 1
のコピーがなければならない。
このディレクトリにあるプログラムのモードは、
111 (実行属性のみ) でなければならない。
.It Pa ~ftp/etc
このディレクトリを
.Dq root
の所有とし、誰も書き込みできないように (モードを 511 に) すること。
.Xr ls
コマンドが所有者を数字ではなく名前で表示できるようにするために、
ファイル
.\" pwd.db
.\" .Ns ( Xr pwd_mkdb 8
.\" を参照)
.Xr passwd 5
.Xr group 5
が必要である。
.\" .Xr pwd.db
.Pa passwd
のパスワードフィールドは使用されないので、
実際のパスワードを入れてはならない。
ファイル
.Pa motd
が存在すると、ログイン成功後、その内容が表示される。
このファイルはモードが 444 でなければならない。
.It Pa ~ftp/pub
このディレクトリのモードを 555 とし、
.Dq root
の所有とすること。
このディレクトリには、伝統的に、ダウンロードのための
公開アクセス可能なファイルが格納される。
.El
.Sh ファイル
.Bl -tag -width /etc/ftpwelcome -compact
.It Pa /etc/ftpusers
歓迎されない/制限を受けるユーザーのリスト。
.It Pa /etc/ftpchroot
chroot しなければならない一般ユーザーのリスト。
.It Pa /etc/ftpwelcome
歓迎のメッセージ。
.It Pa /etc/motd
ログイン後の歓迎のメッセージ。
.It Pa /etc/nologin
表示されて、アクセスが拒否される。
.It Pa /var/run/utmp
システム上のユーザーのリスト。
.It Pa /var/log/ftpd
匿名ファイル転送のログファイル。
.El
.Sh 関連項目
.Xr ftp 1 ,
.Xr skey 1 ,
.Xr who 1 ,
.Xr getusershell 3 ,
.Xr ftpusers 5 ,
.Xr syslogd 8
.Sh バグ
特権ポート番号を用いてソケットを作成するために、
サーバはスーパーユーザーとして実行しなければならない。
サーバーはログインしたユーザーの実行ユーザー ID を管理する (使う)。
そして、アドレスをソケットにバインドする場合にのみ、
スーパーユーザーに戻る (その権限を使う)。
考えられるセキュリティホールについては、かなり綿密に調べたが、
それでも不完全かもしれない。
.Sh 履歴
.Nm
コマンドは
.Bx 4.2
で登場した。
.Sh 翻訳者謝辞
この man ページの翻訳にあたり、
FreeBSD jpman project <http://www.jp.freebsd.org/man-jp/>
による翻訳を参考にさせていただいた。