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_INET ソケット経由で受け付 けます。 −6 −A −a −D −d −E −h −l −M −m −O −o −P −p −R −r −S −T −t −U FreeBSD 5.0 以上では、実際はなにもしないことに注意してください。 なぜなら、どちらのポート範囲もデフォルトで等価だからです。 −u −v −W ファイル /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 [RW] |
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 リクエス トでサポートされています。 |
リクエスト 説明 注: 匿名ログインの場合、SITE リクエストは無効化されています。 Internet RFC 959 で規定されている ftp リクエストのうちの、これ以外のもの は解釈はされますがインプリメントされていません。 MDTM および SIZE は RFC 959 では規定されていませんが、次に改訂される FTP RFC には登場するでしょ う。サービス拒否攻撃の可能性を除去するために、現在の転送タイプが ASCII の 場合には、 10240 バイトより大きなファイルに対する SIZE リクエストは拒否さ れます。 ftp サーバがアクティブなファイル転送を中断するのは、ABOR コマンドの前に、 Telnet "Interrupt Process" (IP) シグナルと Telnet "Synch" シグナルが Telnet ストリーム内にある場合だけです。これは Internet RFC 959 に記述され ています。もし、データの転送中に STAT コマンドを受けとり、その前に Telnet IP と Synch があった場合、転送ステータスが返されます。 ftpd ユーティリティは、 csh(1) で使われている ‘‘ファイル名置換’’ ( globbing ) を解釈します。これにより、ユーザはメタキャラクタ ‘‘*?[]{}~’’ を利用できます。 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 ~ftp/etc ~ftp/pub システムに複数の IP アドレスがある場合、 ftpd は仮想ホストの概念をサポー トします。仮想ホストは、複数の匿名 ftp 領域それぞれを別々のインターネット アドレスに割り当てる機能を提供します。ファイル /etc/ftphosts は各仮想ホス トに関連した情報を保持します。各ホストはそれぞれの行で定義され、各行は空 白で区切ったいくつかのフィールドからなります: hostname user statfile welcome motd 文字 ’#’ で開始する行は無視されますので、コメントを含むことが可能です。 プライマリ IP アドレスあるいはホスト名に対する仮想ホストを定義すると、そ のアドレスへの ftp ログインのデフォルト値が変更されます。 ’user’, ’statfile’, ’welcome’, ’motd’ の各フィールドはデフォルト値を用いる場合、 ブランクのままもしくはハイフン一つ ’-’ としても構いません。 いかなる匿名ログインの設定についても言えることですが、設定と保守には十分 に注意を払い、セキュリティ上の問題をきたさないよう防御しなければなりませ ん。 ftpd ユーティリティは、リモートからのファイル一覧表示要求に対応するための 内部サポートを持ち、 chroot された環境でもそれ以外でも /bin/ls を実行しな くなります。 ~/bin/ls の実行形式ファイルは chroot されたディレクトリにな くてよく、 ~/bin ディレクトリも存在する必要はありません。 関連ファイル |
/etc/ftpusers
歓迎されない/制限を受けるユーザのリスト。 関連項目 |
ftp(1), key(1), umask(2), getusershell(3), ftpchroot(5), login.conf(5), inetd(8), syslogd(8) |
歴史
ftpd ユーティリティは 4.2BSD から登場しました。 IPv6 サポートは WIDE Hydrangea IPv6 スタックキットで追加されました。 |
バグ
特権ポート番号を用いてソケットを作成するために、 ftpd はスーパユーザの権 限で実行させて下さい。サーバはログインユーザの実効ユーザ ID を保持してお き、アドレスをソケットにバインドする場合にのみスーパユーザの権限を使いま す。考えられるセキュリティホールについてはかなり詳細にわたって調べ込みを おこないましたが、それでも不完全かもしれません。 FreeBSD 10.0 January 27, 2000 FreeBSD 10.0 |