FTPD(8) | System Manager's Manual | FTPD(8) |
ftpd
—
インターネットファイル転送プロトコルサーバ
ftpd
[-AdDhlMPSU
]
[-T
maxtimeout]
[-t
timeout]
[-u
mask]
ftpd
はインターネットファイル転送プロトコルサーバプロセスである。
このサーバは TCP
プロトコルを用いて、
“ftp”
サービスの仕様で指定されたポートを
listen する。 services(5)
を参照すること。
使用可能なオプションは以下の通りである:
-A
-d
-D
ftpd
は制御端末を切り離してデーモンとなり、FTP
ポートへの接続を受け付け、
接続を処理するために子プロセスを
fork する。 この方式は
ftpd
を inetd(8)
から起動するよりオーバーヘッドが少ないため、
処理量の多いサーバで負荷を低減するのに役立つ。-h
IPPORT_HIFIRSTAUTO
と IPPORT_HILASTAUTO
で定義される。
OpenBSD
では、この値はそれぞれ
49152 と 65535
に設定される。-l
-M
-p
-P
-S
ftpd
は、ファイル
/var/log/ftpd
がある場合、このファイルに全ての匿名ファイル転送についてログを記録する。-U
-T
-T
オプションを使って
timeout
秒に設定することができる。
デフォルトのタイムアウト時間は
2 時間である。-t
-u
ファイル
/etc/nologin は ftp
アクセスを不可にするために使われる。
このファイルが存在すると、
ftpd
はそのファイル内容を表示して終了する。
ファイル /etc/ftpwelcome
が存在する場合、
ftpd
は “ready”
メッセージを表示する前に、
そのファイルの内容を表示する。
/etc/motd
が存在する場合、
ftpd
はログインが成功した後、そのファイルの内容を表示する。
ディレクトリに
.message
ファイルが存在する場合、
ftpd
そのディレクトリに入ったときに、このファイルの内容を表示する。
ftp サーバは現在のところ以下の ftp リクエストをサポートしている。 リクエストの文字の大文字小文字は無視される。
リクエスト | 説明 |
ABOR | 直前のコマンドを中断 (abort) する |
ACCT | アカウントを指定する (無視される) |
ALLO | (空の) ストレージを確保する |
APPE | ファイルを追加する |
CDUP | カレントワーキングディレクトリの親ディレクトリを変更する |
CWD | ワーキングディレクトリを変更する |
DELE | ファイルを削除する |
HELP | ヘルプ情報を表示する |
LIST | ディレクトリ中のファイルのリストを表示する
(“ls -lgA ”) |
MKD | ディレクトリを作成する |
MDTM | ファイルの最終修正時刻を表示する |
MODE | データ転送モードを mode に指定する |
NLST | ディレクトリ中のファイル名リストを表示する |
NOOP | 何もしない |
PASS | パスワードを指定する |
PASV | サーバからサーバへの転送の準備をする |
PORT | データ接続ポートを指定する |
PWD | カレントワーキングディレクトリの名前を表示する |
QUIT | セッションを終了する |
REST | 不完全だった転送を再開する |
RETR | ファイルを取得する |
RMD | ディレクトリを削除する |
RNFR | 名前変更前のファイル名を指定する |
RNTO | 名前変更後のファイル名を指定する |
SITE | 標準でないコマンド (次のセクションを参照すること) |
SIZE | ファイルのサイズを返す |
STAT | サーバのステータスを返す |
STOR | ファイルを格納する |
STOU | ファイルを他のものと重複のない名前で格納する |
STRU | データ転送構造を structure に指定する |
SYST | サーバシステムのオペレーティングシステムのタイプを表示する |
TYPE | データ転送タイプを type に指定する |
USER | ユーザー名を指定する |
XCUP | カレントワーキングディレクトリの親ディレクトリを変更する (反対される) |
XCWD | ワーキングディレクトリを変更する (反対される) |
XMKD | ディレクトリを作成する (反対される) |
XPWD | カレントワーキングディレクトリの名前を表示する (反対される) |
XRMD | ディレクトリを削除する (反対される) |
以下の標準でないコマンドや UNIX 特有のコマンドは、 SITE リクエストを使うことでサポートされる。
リクエスト | 説明 |
UMASK | umask を変更する。例 ``SITE UMASK 002'' |
IDLE | アイドルタイマを設定する。例 ``SITE IDLE 60'' |
CHMOD | ファイルのモードを指定する。例 ``SITE CHMOD 755 filename'' |
HELP | ヘルプ情報を表示する。 |
インターネット RFC 959 で規定されている 他の ftp リクエストも認識されるが、 今のところ実装されてはいない。 MDTM と SIZE は RFC 959 で規定されていないが、 次に改訂される FTP RFC には登場するだろう。
ftp サーバがアクティブなファイル転送プロセスを中断 (abort) するのは、 ABOR コマンドの前に、 Telnet "Interrupt Process" (IP) シグナルや Telnet "Synch" シグナルが Telnet ストリーム内にある場合だけである。 これはインターネット RFC 959 に記述されている。 データ転送中に STAT コマンドを受け取り、 その前に Telnet IP や Synch があった場合、 転送ステータスが返される。
ftpd
は、
csh(1)
で使われている
“ファイル名展開”
による変換に基づいて、ファイル名を解釈する。
これにより、ユーザーはメタキャラクタ
“*?[]{}~
”
を利用できる。
ftpd
は 5
つのルールに従ってユーザーの認証をする。
最後のケースでは、
ftpd
は、クライアントのアクセス権を制限するために、特別な評価を行う。
サーバは “ftp”
ユーザのホームディレクトリに対して
chroot(2) を実行する。
システムのセキュリティが侵害されないためには、
“ftp”
サブツリーを以下の規則に従って慎重に構築することを推奨する:
ftp(1), skey(1), who(1), getusershell(3), ftpusers(5), syslogd(8)
特権ポート番号を用いてソケットを作成するために、 サーバはスーパーユーザーとして実行しなければならない。 サーバーはログインしたユーザーの実行ユーザー ID を管理する (使う)。 そして、アドレスをソケットにバインドする場合にのみ、 スーパーユーザーに戻る (その権限を使う)。 考えられるセキュリティホールについては、かなり綿密に調べたが、 それでも不完全かもしれない。
ftpd
コマンドは 4.2BSD
で登場した。
この man ページの翻訳にあたり、 FreeBSD jpman project <http://www.jp.freebsd.org/man-jp/> による翻訳を参考にさせていただいた。
September 14, 1999 | Linux NetKit (0.17) |