日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.2-RELEASE-K, 8.0-RELEASE-K は、全翻訳済み)
6.4-STABLE-K, 7.2-STABLE-K, 8.0-STABLE-K は現在、 作成中で日々更新されています。 最新の snapshots を元に作成しています。
FTPD(8) FreeBSD システム管理者マニュアル FTPD(8)
名称
ftpd - インターネットファイル転送プロトコルサーバ
書式
ftpd [-46ADdEhMmOoRrSUvW] [-l [-l]] [-a address] [-P port] [-p file]
[-T maxtimeout] [-t timeout] [-u umask]
解説
ftpd ユーティリティは、インターネットファイル転送プロトコルサーバプロセス
です。このサーバは TCP プロトコルを用いて、 -P オプションで指定されたポー
トもしくは ``ftp'' サービスに割り当てられたポートを listen() します。
``ftp'' サービスについては、 services(5) を参照して下さい。
利用可能なオプションは以下の通りです:
-4 -D が指定されている場合、IPv4 接続を AF_INET4 ソケット経由で受け
付けます。
-6 -D が指定されている場合、AF_INET6 ソケット経由の接続を受け付けま
す。
-A 匿名 ftp アクセスのみ許可します。
-a -D オプションが指定されている場合、 address で指定されたアドレス
に対する接続のみを許可します。
-D このオプションがセットされると、 ftpd は制御端末を切り離してデー
モンとなり、 FTP ポートへの接続要求を待ち、子プロセスを生成して接
続要求に対応します。この方式は ftpd を inetd(8) から起動するより
オーバヘッドが少ないため、処理量の多いサーバで負荷を低減するのに
役立ちます。
-d syslog の LOG_FTP のファシリティ (facility) を用いてデバッグ情報
を出力します。
-E EPSV コマンドを無効化します。古いファイアウォールの後ろにサーバが
ある場合に有用です。
-h サーバソフトウェアバージョンやホスト名といったホスト固有情報を
サーバメッセージ中に表示しないようにします。
-l ftp(1) セッションそれぞれの結果を、成功も失敗もともども syslog の
LOG_FTP のファシリティを用いてログに残します。このオプションが 2
回指定されると、 retrieve (get), store (put), append, delete,
make directory, remove directory, rename の各操作およびそれらの引
数で指定されたファイル名も記録されます。デフォルトでは、
syslogd(8) はこれらを /var/log/xferlog に記録します。
-M 匿名ユーザによるディレクトリ作成を禁止します。
-m ファイルシステムのパーミッションが許す限りにおいて、匿名ユーザに
よる既存のファイルの上書きや修正を許します。デフォルトでは、匿名
ユーザは既存のファイルを修正できず、特に、アップロードされるファ
イルは一意な名前で作成されます。
-O 匿名ユーザのみに対し、サーバを書き込み専用モードにします。匿名
ユーザに対しては、RETR が無効化され、匿名ダウンロードを禁止しま
す。本オプションは、 -o も設定されている場合には、効果がありませ
ん。
-o サーバを書き込み専用モードにします。 RETR が無効化され、ダウン
ロードを禁止します。
-P -D 指定時には、デフォルトの ``ftp'' ポートの代りに、数値または
サービス名で指定される port での接続を受け付けます。
-p -D オプションが指定されている場合、デーモンのプロセス ID を file
に書き出します。
-R このオプションがセットされると、 ftpd は、ユーザ操作のセキュリ
ティチェックや PORT 要求の制限に関して古き良き時代の振る舞いに戻
ります。現在では、 ftpd はリモートユーザのホストの非特権ポートに
向けられた PORT コマンドだけを用います (これは FTP プロトコルの仕
様に違反していますが、いくつかのセキュリティホールを閉じることが
できます)。
-r サーバを、読み取り専用モードにします。ローカルファイルを修正し得
る全コマンドは、無効化されます。
-S このオプションがセットされると、 ftpd は匿名 (anonymous) による
ファイルダウンロードの全てについてのログを、ファイル
/var/log/ftpd が存在する場合に限り、このファイルに残します。
-T クライアントは異なったタイムアウト秒数を要求することもできます。
-T オプションにより、 タイムアウトまでの最大待ち時間を設定できま
す。デフォルトは 2 時間です。
-t 何も操作しないで放置した場合のタイムアウト時間を timeout 秒に設定
します (デフォルトは 15 分)。
-U IP_PORTRANGE_HIGH の範囲の代りに IP_PORTRANGE_DEFAULT の範囲の
データポートを使用するよう、ftpd に指示します。更なる情報について
は ip(4) を参照してください。
FreeBSD 5.0 以上では、実際はなにもしないことに注意してください。
なぜなら、どちらのポート範囲もデフォルトで等価だからです。
-u デフォルトのファイル生成マスクを umask にします。この数値は 8 進
数値であることを期待されます。詳細は umask(2) を参照してくださ
い。このオプションに対し、 login.conf(5) の設定が優先します。
-v -d と同じ意味です。
-W FTP セッションを /var/log/wtmp に記録しません。
ファイル /var/run/nologin は、ftp アクセスを拒否するのに使うことができま
す。このファイルが存在する場合、 ftpd はそのファイルの内容を表示して終了
します。 /etc/ftpwelcome ファイルが存在する場合、 ftpd は ``ready'' メッ
セージを表示する前にその内容を表示します。もし /etc/ftpmotd ファイルが存
在する場合、ログイン成功後に ftpd はその内容を出力します。使用される motd
ファイルはログイン環境に対して相対であることに注意してください。つまり、
匿名ユーザの場合には、 ~ftp/etc に存在することを意味じます。
この ftp サーバは、現在、以下の ftp リクエストをサポートしています。リク
エストの文字の大文字小文字の区別は無視されます。印 [RW] が付いているリク
エストは、 -r が指定されると無効化されます。
リクエスト 説明
ABOR abort previous command
ACCT specify account (ignored)
ALLO allocate storage (vacuously)
APPE append to a file [RW]
CDUP change to parent of current working directory
CWD change working directory
DELE delete a file [RW]
EPRT specify data connection port, multiprotocol
EPSV prepare for server-to-server transfer, multiprotocol
HELP give help information
LIST give list files in a directory (``ls -lgA'')
LPRT specify data connection port, multiprotocol
LPSV prepare for server-to-server transfer, multiprotocol
MDTM show last modification time of file
MKD make a directory
MODE specify data transfer mode
NLST give name list of files in directory
NOOP do nothing
PASS specify password
PASV prepare for server-to-server transfer
PORT specify data connection port
PWD print the current working directory
QUIT terminate session
REST restart incomplete transfer
RETR retrieve a file
RMD remove a directory [RW]
RNFR specify rename-from file name [RW]
RNTO specify rename-to file name [RW]
SITE non-standard commands (see next section)
SIZE return size of file
STAT return status of server
STOR store a file [RW]
STOU store a file with a unique name [RW]
STRU specify data transfer structure
SYST show operating system type of server system
TYPE specify data transfer type
USER specify user name
XCUP change to parent of current working directory
(deprecated)
XCWD change working directory (deprecated)
XMKD make a directory (deprecated) [RW]
XPWD print the current working directory (deprecated)
XRMD remove a directory (deprecated) [RW]
以下に示した非標準コマンドあるいは UNIX に特有のコマンドが、SITE リクエス
トでサポートされています。
リクエスト 説明
UMASK change umask, e.g. ``SITE UMASK 002''
IDLE set idle-timer, e.g. ``SITE IDLE 60''
CHMOD change mode of a file [RW], e.g. ``SITE CHMOD 755
filename''
MD5 report the files MD5 checksum, e.g. ``SITE MD5
filename''
HELP give help information.
注: 匿名ログインの場合、SITE リクエストは無効化されています。
Internet RFC 959 で規定されている ftp リクエストのうちの、これ以外のもの
は解釈はされますがインプリメントされていません。 MDTM および SIZE は RFC
959 では規定されていませんが、次に改訂される FTP RFC には登場するでしょ
う。サービス拒否攻撃の可能性を除去するために、現在の転送タイプが ASCII の
場合には、 10240 バイトより大きなファイルに対する SIZE リクエストは拒否さ
れます。
ftp サーバがアクティブなファイル転送を中断するのは、ABOR コマンドの前に、
Telnet "Interrupt Process" (IP) シグナルと Telnet "Synch" シグナルが Tel
net ストリーム内にある場合だけです。これは Internet RFC 959 に記述されて
います。もし、データの転送中に STAT コマンドを受けとり、その前に Telnet
IP と Synch があった場合、転送ステータスが返されます。
ftpd ユーティリティは、 csh(1) で使われているファイル名展開を解釈します。
これにより、ユーザはメタキャラクタ ``*?[]{}~'' を利用できます。
ftpd ユーティリティは、6 つのルールに従ってユーザの認証を行います。
1. ログイン名はパスワードデータベースになければならず、空のパス
ワードであってはいけません。この場合、あらゆるファイルの操作に
先だって、クライアント側からパスワードが提供されていなければな
りません。ユーザが S/Key のキーを持っている場合は、 USER コマ
ンドが成功した際の応答には S/Key チャレンジを含めて送られま
す。クライアントは、それに対して PASS コマンドを使って応答する
際に、通常のパスワードか S/Key のワンタイムパスワードのどちら
をつけて応答するかを選択できます。サーバはどちらのパスワードを
受け取ったかを自動的に判定し、それに応じて認証を試みま
す。S/Key の認証に関する詳細は key(1) を参照して下さい。S/Key
は Bellcore 社の商標です。
2. ログイン名はファイル /etc/ftpusers に載っていてはいけません。
3. ログイン名はファイル /etc/ftpusers で指定されているグループの
メンバであってはいけません。このファイルでグループ名として解釈
されるエントリの先頭にはアットマーク `@' が付きます。
4. ユーザは getusershell(3) が返す標準のシェルを持っていなければ
なりません。
5. ユーザ名がファイル /etc/ftpchroot に載っているか、そのファイル
にあるグループエントリ (つまり `@' で始まるエントリ) のメンバ
である場合、アカウント ``anonymous'' や ``ftp'' と同様、
chroot(2) によって、そのセッションのルートディレクトリがこの
ファイルによって指定されるディレクトリかユーザのログインディレ
クトリに変ります (次の項目を参照して下さい)。このファイルの書
式の詳細は ftpchroot(5) を参照してください。この機能は、
login.conf(5) でブール型フラグ "ftp-chroot" をオンにしても有効
になります。しかし、ユーザは依然、パスワードを与える必要があり
ます。この特徴は、完全に匿名 (anonymous) なアカウントと完全な
特権のあるアカウントの間での妥協的な利用のためのものです。この
アカウントは匿名アカウントで設定するのと同様に設定されていなけ
ればなりません。
6. もしユーザ名が ``anonymous'' または ``ftp'' の場合は、匿名の
ftp アカウントがパスワードファイル (ユーザ ``ftp'' ) で提供さ
れていなければなりません。この場合、ユーザはどのようなパスワー
ドでもログインを許可されます (慣習としてはユーザの email アド
レスをパスワードとして用いることになっています)。 -S オプショ
ンがセットされていると、全ての転送操作も記録されます。
最後のケースの場合、 ftpd は特別な手段でクライアントのアクセス権を制限し
ます。サーバは ``ftp'' ユーザのホームディレクトリへ chroot(2) します。
``ftp'' ユーザのホームディレクトリパスに /./ セパレータが含まれる特殊な場
合、左側を chroot(2) 先のディレクトリ名、右側を以降のカレントディレクトリ
として ftpd は使用します。典型的な使用例は /usr/local/ftp/./pub です。シ
ステムのセキュリティが侵害されないために、 ``ftp'' サブツリーは、以下の規
則に従って慎重に構築することを推奨します。
~ftp ホームディレクトリは ``root'' の所有とし、誰も書き込みで
きないようにします。
~ftp/etc このディレクトリは ``root'' の所有とし、誰も書き込みでき
ないようにします (モード 555)。 ls(1) が所有者を数字でな
く名前で表示できるようにするために、ファイル pwd.db
(passwd(5) 参照) 及び group(5) が必要です。ファイル
passwd(5) 中のパスワードは使用されませんので、本当のパス
ワードを入れてはいけません。ファイル ftpmotd が存在する
と、ログイン成功後、その内容が表示されます。このファイル
のモードは 444 とすべきです。
~ftp/pub 本ディレクトリおよびそれ以下のサブディレクトリは、ここに
ファイルを置くことに対して責任のあるユーザおよびグループ
により所有されるべきであり、彼等によってのみ書き込み可能
であるべきです (モード 755 または 775)。 ``ftp'' またはそ
のグループが所有したり書き込み可能であるべきではありませ
ん。そのようにしてしまうと、ゲストユーザが、望まないファ
イルでディスクを一杯にできてしまいます。
システムに複数の IP アドレスがある場合、 ftpd は仮想ホストの概念をサポー
トします。仮想ホストは、複数の匿名 ftp 領域それぞれを別々のインターネット
アドレスに割り当てる機能を提供します。ファイル /etc/ftphosts は各仮想ホス
トに関連した情報を保持します。各ホストはそれぞれの行で定義され、各行は空
白で区切ったいくつかのフィールドからなります:
hostname 仮想ホストのホスト名あるいは IP アドレス。
user システムのパスワードファイル中のユーザレコードを含みま
す。普通の匿名 ftp と同様に、このユーザのアクセス UID,
GID およびグループによって匿名 ftp 領域のファイルアクセス
権が決まります。匿名 ftp 領域 (ログイン時にユーザが
chroot するディレクトリ) は、そのアカウントに対するホーム
ディレクトリとして決定されます。他の ftp アカウントのユー
ザ ID およびグループも、標準 ftp ユーザと同じであって構い
ません。
statfile 全てのファイル転送のログが記録されるファイル。デフォルト
では /var/log/ftpd です。
welcome サーバがプロンプトを出す前に表示される welcome メッセー
ジ。デフォルトでは /etc/ftpwelcome です。
motd このファイル内容はユーザがログインした後に表示されます。
デフォルトでは /etc/ftpmotd です。
文字 '#' で開始する行は無視されますので、コメントを含むことが可能です。
プライマリ IP アドレスあるいはホスト名に対する仮想ホストを定義すると、そ
のアドレスへの ftp ログインのデフォルト値が変更されます。 'user', 'stat
file', 'welcome', 'motd' の各フィールドはデフォルト値を用いる場合、ブラン
クのままもしくはハイフン一つ '-' としても構いません。
いかなる匿名ログインの設定についても言えることですが、設定と保守には十分
に注意を払い、セキュリティ上の問題をきたさないよう防御しなければなりませ
ん。
ftpd ユーティリティは、リモートからのファイル一覧表示要求に対応するための
内部サポートを持ち、 chroot された環境でもそれ以外でも /bin/ls を実行しな
くなります。 ~/bin/ls の実行形式ファイルは chroot されたディレクトリにな
くてよく、 ~/bin ディレクトリも存在する必要はありません。
関連ファイル
/etc/ftpusers 歓迎されない/制限を受けるユーザのリスト。
/etc/ftpchroot chroot される一般ユーザのリスト。
/etc/ftphosts 仮想ホストのための設定ファイル
/etc/ftpwelcome welcome メッセージ。
/etc/ftpmotd login 後の welcome メッセージ。
/var/run/nologin 内容を表示し、アクセスを拒否します。
/var/log/ftpd 匿名による転送のログファイル。
/var/log/xferlog セッションログのデフォルトの置場。
関連項目
ftp(1), key(1), umask(2), getusershell(3), ftpchroot(5), login.conf(5),
inetd(8), syslogd(8)
バグ
特権ポート番号を用いてソケットを作成するために、 ftpd はスーパユーザの権
限で実行させて下さい。サーバはログインユーザの実効ユーザ ID を保持してお
き、アドレスをソケットにバインドする場合にのみスーパユーザの権限を使いま
す。考えられるセキュリティホールについてはかなり詳細にわたって調べ込みを
おこないましたが、それでも不完全かもしれません。
歴史
ftpd ユーティリティは 4.2BSD から登場しました。 IPv6 サポートは WIDE
Hydrangea IPv6 スタックキットで追加されました。
FreeBSD 4.9 January 27, 2000 FreeBSD 4.9