日本語 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.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
FTPD(8) FreeBSD システム管理者マニュアル FTPD(8) 名称 ftpd -- インターネットファイル転送プロトコルサーバ 書式 ftpd [-468ABDdEhMmOoRrSUvW] [-l [-l]] [-a address] [-P port] [-p file] [-T maxtimeout] [-t timeout] [-u umask] 解説 ftpd ユーティリティは、インターネットファイル転送プロトコルのサーバプロセ スです。サーバは、TCP プロトコルを使用し、-P オプションで指定された、また は ``ftp'' サービス指定のポートを listen (接続を受け付け) します。 services(5) を参照してください。 利用可能なオプションは、次の通りです: -4 -D が指定されている場合、IPv4 接続を AF_INET ソケット経由で受け付 けます。 -6 -D が指定されている場合、AF_INET6 ソケット経由の接続を受け付けま す。 -8 トランスペアレント UTF-8 モードを有効にします。RFC 2640 準拠のク ライアンドは、サーバによって使用される文字のエンコードが、オプ ションで唯一の影響がある、UTF-8 であると伝えられます。オプション のただ 1 つの影響である、UTF-8 であると伝えられます。 このオプションは、サーバファイル名のためのあらゆるエンコード変換 を有効にしません。代わりに、サーバのファイルの名前が UTF-8 でエン コードされていることを意味します。FTP によってアップロードされた ファイルに関して、それらの名前をクライアントのローカルエンコード から UTF-8 に変換することは、RFC 2640 準拠のクライアントの義務で す。FTP コマンド名とそれ自体の ftpd メッセージは、UTF-8 のサブ セットである、ASCII に常にエンコードされます。したがって、全く サーバ側の変換の必要は、ありません。 -A 匿名 ftp アクセスのみ許可します。 -a -D オプションが指定されている場合、address で指定されたアドレスに 対する接続のみを許可します。 -B このオプションの設定で、ftpd は、認証の成功と失敗のメッセージを blacklistd(8) デーモンに送信します。このオプションが指定されない なら、blacklistd(8) デーモンがある通信は、試みられません。 -D このオプションがセットされると、ftpd は、制御端末を切り離してデー モンとなり、FTP ポートへの接続要求を待ち、子プロセスを生成して接 続要求に対応します。この方式は、ftpd を inetd(8) から起動するより オーバヘッドが少ないため、処理量の多いサーバで負荷を低減するのに 役立ちます。 -d syslog の LOG_FTP のファシリティ (facility) を用いてデバッグ情報 を出力します。 -E EPSV コマンドを無効化します。古いファイアウォールの後ろにサーバが ある場合に有用です。 -h サーバソフトウェアバージョンやホスト名といったホスト固有情報を サーバメッセージ中に表示しないようにします。 -l ftp(1) セッションの成功と失敗は、LOG_FTP の機能で syslog を使用し てログ記録されます。このオプションが 2 度指定されるなら、検索 (取 得)、格納 (置く)、追加、削除、ディレクトリの作成、ディレクトリの 削除、と名前の変更の操作、およびそれらのファイル名の引数もまたロ グ記録されます。デフォルトでは、syslogd(8) は、これらを /var/log/xferlog にログ記録します。 -M 匿名ユーザによるディレクトリ作成を禁止します。 -m ファイルシステムのパーミッションが許す限りにおいて、匿名ユーザに よる既存のファイルの上書きや修正を許します。デフォルトでは、匿名 ユーザは、既存のファイルを修正できず、特に、アップロードされる ファイルは、一意な名前で作成されます。 -O 匿名ユーザのみに対し、サーバを書き込み専用モードにします。匿名 ユーザに対しては、RETR が無効化され、匿名ダウンロードを禁止しま す。本オプションは、-o も設定されている場合には、効果がありませ ん。 -o サーバを書き込み専用モードにします。RETR が無効化され、ダウンロー ドを禁止します。 -P -D 指定時には、デフォルトの ``ftp'' ポートの代りに、数値または サービス名で指定される port での接続を受け付けます。 -p -D が指定されるとき、デーモンのプロセス ID をデフォルト pid ファ イル、/var/run/ftpd.pid の代わりに 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/run/nologin は、ftp アクセスを拒否するのに使うことができま す。このファイルが存在する場合、ftpd は、そのファイルの内容を表示して終了 します。/etc/ftpwelcome ファイルが存在する場合、ftpd は、``ready'' メッ セージを表示する前にその内容を表示します。もし /etc/ftpmotd ファイルが存 在する場合、ログイン成功後に ftpd は、その内容を出力します。使用される motd ファイルは、ログイン環境に対して相対であることに注意してください。つ まり、匿名ユーザの場合には、~ftp/etc に存在することを意味します。 この ftp サーバは、現在、以下の ftp リクエストをサポートしています。リク エストの文字の大文字小文字の区別は、無視されます。印 [RW] が付いているリ クエストは、-r が指定されると無効化されます。 リクエスト 説明 ABOR 前のコマンドを中断します ACCT (無視される) アカウントを指定します ALLO (空の) 記憶域を割り付けます APPE ファイルに追加します [RW] CDUP 現在の作業ディレクトリの親に変更します CWD 作業ディレクトリを変更します DELE ファイルを削除します [RW] EPRT データ接続ポートを指定します, マルチプロトコル EPSV サーバからサーバへの転送の準備をします, マルチプロトコル FEAT サーバの拡張機能で情報を取得します HELP help 情報を与えます LIST ディレクトリのリストされたファイルを与えます (``ls -lA'') LPRT データ接続ポートを指定します, マルチプロトコル LPSV サーバからサーバへの転送の準備をします, マルチプロトコル MDTM ファイルの最後の更新時刻を表示します MKD ディレクトリを作成します [RW] MODE データ転送モードを指定します NLST ディレクトリのファイルの名前リストを与えます NOOP 何もしません PASS パスワードを指定します PASV サーバからサーバへの転送の準備をします PORT データ接続ポートを指定します PWD 現在の作業ディレクトリを印刷 (表示) します QUIT セッションを終了します REST 不完全な転送を再開します RETR ファイルを検索して取り出します RMD ディレクトリを削除します [RW] RNFR 名前を変更する元のファイル名を指定します [RW] RNTO 名前を変更した後のファイル名を指定します [RW] SITE 非標準コマンド (次のセクション参照) SIZE ファイルのサイズを返します STAT サーバの状態を返します STOR ファイルを格納します [RW] STOU ユニークな名前でファイルを格納します [RW] STRU データ転送構造体を指定します SYST サーバシステムのオペレーティングシステムのタイプを表示し ます TYPE データ転送タイプを指定します USER ユーザ名を指定します XCUP 現在の作業ディレクトリの親に変更します (非推奨) XCWD 作業ディレクトリを変更します (非推奨) XMKD ディレクトリを作成します (非推奨) [RW] XPWD 現在の作業ディレクトリを印刷 (表示) します (非推奨) XRMD ディレクトリを削除します (非推奨) [RW] 次の非標準または UNIX 特有のコマンドは、SITE 要求によってサポートされてい ます。 リクエスト 説明 UMASK umask を変更します、例えば、``SITE UMASK 002'' IDLE アイドルタイマを設定します、例えば、``SITE IDLE 60'' CHMOD ファイルのモードを変更します [RW]、例えば、``SITE CHMOD 755 filename'' MD5 ファイルの MD5 チェックサムを報告します、例えば、``SITE MD5 filename'' HELP help 情報を与えます 注: 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) で使われている ``ファイル名置換'' (glob bing) を解釈します。これにより、ユーザは、メタキャラクタ ``*?[]{}~'' を利 用できます。 ftpd ユーティリティは、6 つのルールに従ってユーザの認証を行います。 1. ログイン名は、パスワードデータベースになければならず、空のパス ワードであってはいけません。この場合、あらゆるファイルの操作に 先だって、クライアント側からパスワードが提供されていなければな りません。ユーザが OPIE のキーを持っているなら、USER コマンド が成功した際の応答には、OPIE チャレンジを含めて送られます。ク ライアントは、それに対して PASS コマンドを使って応答する際に、 通常のパスワードか OPIE のワンタイムパスワードのどちらをつけて 応答するかを選択できます。サーバは、どちらのパスワードを受け 取ったかを自動的に判定し、それに応じて認証を試みます。OPIE の 認証に関する詳細は、opie(4) を参照してください。 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 ログイン後の welcome 通知。 /var/run/ftpd.pid デーモンモードのためのデフォルトの pid ファイル。 /var/run/nologin 拒否されたアクセスを表示する。 /var/log/ftpd 匿名の転送のためのログファイル。 /var/log/xferlog セッションログのためのデフォルトの場所。 関連項目 ftp(1), umask(2), getusershell(3), opie(4), ftpchroot(5), login.conf(5), inetd(8), syslogd(8) 歴史 ftpd ユーティリティは、4.2BSD で登場しました。IPv6 のサポートは、WIDE Hydrangea IPv6 スタックキットで追加されました。 バグ 特権ポート番号を用いてソケットを作成するために、ftpd は、スーパユーザの権 限で実行させて下さい。サーバは、ログインユーザの実効ユーザ ID を保持して おき、アドレスをソケットにバインドする場合にのみスーパユーザの権限を使い ます。考えられるセキュリティホールについては、かなり詳細にわたって調べ込 みをおこないましたが、それのでも不完全かもしれません。 FreeBSD 11.2 January 21, 2010 FreeBSD 11.2