-V オプションは著作権とバージョン情報を出力し、終了する。
-d もしくは -v オプションを指定した場合、 syslog にデバッグ情報を記述する。
-l オプションを指定した場合、 各々の ftp セションが syslog に記録される。
ftp サーバは接続してから 15 分後に動作していないセションをタイムアウトにする。 -t オプションを指定した場合、 動作していない時のタイムアウト期間を timeout 秒で設定する。 クライアントは違うタイムアウト期間をも要求することができる。 最大期間は -t オプションで指定した場合、 timeout 秒を設定することを許可する。 デフォルト制限は 2 時間である。
-a オプションが指定された場合、 ftpaccess(5) の設定ファイルの使用が可能である。
-A オプションが指定された場合、 ftpaccess(5) の設定ファイルの使用は不可能である。 これはデフォルトである。
-L オプションが指定された場合、 ftpd(8) サーバに送信されたコマンドは syslog に記録される。 -L オプションは ftpaccess(5) ファイルの設定より優先される。 -L フラグが使用されると、ftp サーバが起動すると同時に コマンドのログへの記録はデフォルトの設定になる。 これはすべてのユーザコマンドを記録し、 ユーザが偶然にもコマンドにユーザ名の かわりにパスワードを入力した場合、 syslog を経由してパスワードが記録される。
-i オプションが指定された場合、 ftpd(8) サーバにより受信したファイルを xferlog(5) に記録する。 -i オプションは ftpaccess(5) ファイルの使用よりも優先する。
-I オプションはクライアントのユーザ名を決定しようとするための RFC931 (AUTH/ident) の使用を無効にする。
-o オプションが指定された場合、 ftpd(8) サーバが送信したファイルは xferlog(5) に記録される。 -o オプションは ftpaccess(5) ファイルの使用より優先させる。 -X オプションが指定された場合、 -i 及び -o オプションで作成された出力は xferlog ではなく、syslog を経由して記録される、 そこで、いくつかのホストからの出力をひとつの中央ログホストに 集約することができる。
-u オプションが指定された場合、デフォルト umask は umask に設定される。
-W オプションが指定された場合、ユーザのログインが wtmp ファイルに記録されなくなる。デフォルト はすべてのログインとログアウトを記録する。
-s 及び -S オプションはスタンドアローンオペレーションモードで デーモンを位置付ける。 -S オプションはバックグラウンドでデーモンを実行し、 システムの初期化中 (例 rc.local) の起動スクリプトで役立つ。 -s オプションはデーモンをフォアグラウンドに出して init から実行させる時に役立つ。(例、/etc/inittab)
-p 及び -P オプションはデーモンが使用するポート番号を受け付ける。 通常、デーモンは /etc/services から "ftp" と "ftp-data" を探すことにより ポート番号を決定する。 もし "ftp-data" が /etc/services になくて、 -P オプションが指定されなかった場合、 デーモンは制御接続ポートのちょうど前のポートを使用する。 -p オプションはデーモンをスタンドアローンとして実行する場合のみ 使用可能である。
-q 及び -Q オプションはデーモンが PID ファイルを使用するかどうかを決定する。 これらのファイルはそれぞれのアクセスクラスで現在のユーザの数を 決定するための指示的な制限により要求される。 PID ファイルの使用を無効にすると、ユーザ制限が無効になる。デフォルトは (-q) PID ファイルを使用する。 アクセス許可が PID の使用を妨げるときに一般ユーザとしてサーバでテストする時に -Q を指定する。同時ユーザ数の制限を強いられるのを望まない、大きく、 ビジーなサイトをも PID ファイルを無効にすることを検討可能である。 -r オプションはデーモンに対し指定されたルートディレクトリへロードされると すぐに chroot(2) するように指示する。 これはデーモンを経由して不正進入された場合、破壊される可能性のあるファイルを制限することにより システムのセキュリティを向上させる。設定は anonymous FTP とほぼ同様に、 システムにより異なる、必要とされる追加ファイルがある。
ftp サーバは現在次の ftp 要求をサポートしている。 大文字と小文字の区別はしない。
リクエスト 説明 ABOR 前のコマンドを中止する 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 idle-timer を設定する。例 SITE IDLE 60 CHMOD ファイルのモードを変更する。例 SITE CHMOD 755 filename HELP ヘルプ情報を出力する。例 SITE HELP NEWER 特定の日付より新しいファイルをリストする。 MINFO SITE NEWER に似ているが、追加情報を出力する。 GROUP 特定のグループのアクセスを要求する。例 SITE GROUP foo GPASS 特定のグループのアクセスパスワードを出力する。例 SITE GPASS bar EXEC プログラムを実行する。例 SITE EXEC program params
インターネット RFC 959 で指定された残りの ftp 要求は認識されるが、 実装はされていない。 MDTM 及び SIZE は RFC 959 では指定されないが、次に更新される FTP RFC には あらわれるだろう。
FTP サーバは ABOR コマンドがインターネット RFC 959 に記述されるように コマンド Telnet ストリームの Telnet "Synch" シグナル及び Telnet "割り込みプロセス" (IP) シグナルによって前置きされる時にのみ 実行中のファイル転送を中断する。 Telnet IP と Synch の前置きの後に STAT コマンドが データ転送中に受信した場合、転送状態が返される。
ftpd は csh(1) によって使用される ``globbing'' 規則に従ってファイル名を解釈する。 これはユーザがメタ文字 ``*?[]{}~'' を利用することを許可する。
Ftpd は 4 つの規則によりユーザを認証する。
最後の場合では、 ftpd はクライアントのアクセス特権を制限するために特別な評価をする。 サーバは chroot(2) コマンドを ``ftp'' ユーザのホームディレクトリに実行する。 システムセキュリティが侵害されないようにするために、 ``ftp'' サブツリーは注意して構築することを推奨する; 次の規則が推奨される。
ユーザがファイル名 (RETRIEVE コマンドを使用するとき) を指定する場合の FTP サーバへのいくつかの拡張がある:
実ファイル名 指定ファイル名 動作 ------------- ------------------ ----------------------------------- <filename>.Z <filename> 転送前にファイルを解凍する <filename> <filename>.Z 転送前に<filename>を圧縮する <filename> <filename>.tar 転送前に<filename>を tar する <filename> <filename>.tar.Z 転送前に<filename>を tar して圧縮する
また、FTP サーバは正式な電子メールアドレスをチェックし、 チェックが通らなかったらユーザに警告する。 ユーザの FTP クライアントが「長い応答文」(つまり、複数行の応答)で 応答しなくなってしまう場合は、パスワードの最初の文字にダッシュを 使用するとサーバの lreply() 関数を無効にする。 FTP サーバはすべてのファイルの送信と受信を記録することもでき、 各々のファイル転送で発生する次の情報を保持する。
Mon Dec 3 18:52:41 1990 1 wuarchive.wustl.edu 568881 /files.lst.Z a _ o a chris@wugate.wustl.edu ftp 0 * %.24s %d %s %d %s %c %s %c %c %s %s %d %s 1 2 3 4 5 6 7 8 9 10 11 12 13 1 DDD MMM dd hh:mm:ss YYYY 形式の現在時刻 2 秒単位の転送時間 3 リモートホスト名 4 バイト単位のファイルサイズ 5 ファイル名 6 転送の種類 (a>scii, b>inary) 7 特別の動作のフラグ (必要に応じて連結する): C ファイルは圧縮された U ファイルは解凍された T ファイルは tar された _ なにもされなかった 8 ファイルはユーザに送信された (o>utgoing), またはユーザから受信した (i>ncoming) 9 匿名でアクセスされた (r>eal, a>nonymous, g>uest) -- 主に FTP のため 10 ローカルユーザ名または、ゲストであれば、与えられた ID 文字列 (anonymous FTP password) 11 サービス名 ('ftp', その他) 12 認証メソッド (bitmask) 0 なし 1 RFC931 認証 13 認証されたユーザ ID (可能な場合、そうでなければ '*')
サーバは特権のあるポート番号でソケットを作成するために スーパーユーザとして実行しなければならない。アドレスを ソケットにバインドする時にのみスーパーユーザに復帰し、 ログインした有効なユーザ ID を保持する。可能性のある セキュリティホールは可能な限り調査したが、完全でない可能性 がある。
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]