|
|
|
|
 |
5.5 制御コマンドと応答メッセージ
RFC 1123 の中で必須でサポートすることとしている FTP コマンドについて説明する。
ただし、実装していない場合や、別名のコマンドとなっている場合もあるので注意すること。
アクセス制御コマンド
FTPサーバにアクセスするためのコマンド。
|
表5.5.1 アクセス制御コマンド
|
| コマンド |
書式 |
説明 |
| USER |
USER [username] |
username に自分のアカウントを書く。そのサーバ上にアカウントがあればそのアカウント名を書き、anonymous FTP の場合は、anonymous 又は、ftp と入力する。 |
| PASS |
PASS [password] |
アカウント名と同様でサーバ上にアカウントがあればその時発行されたパスワードを書き、anonymous FTP の場合は、自分のメールアドレスを入力する。 |
| ACCT |
PASS [password] |
FTP サーバのリソースへのアクセスを認める前に、必要となる補足パスワードをFTP サーバに送信する。コマンドと一緒にパスワードを指定しなければ、パスワードを求めるプロンプトが表示される。このコマンドは、account となっている場合がある。 |
| CWD |
CWD [pathname] |
現在の作業ディレクトリから移動するときのコマンドである。実装する FTP によっては UNIX コマンドの cd が利用できる。 |
| CDUP |
CDUP |
ログインしたときのディレクトリが各ユーザのホームディレクトリとなるが、このコマンドを使うと移動先のディレクトリからホームディレクトリに移動できる。 |
| QUIT |
QUIT |
ファイル転送セッションを終了して FTP コマンドを終了する。BYE コマンドを実装している場合は QUIT と同じである。 |
|
FTP転送パラメータ
アクセス制御パラメータを変更するもので、コマンドに何らかのパラメータを示す引数が必要になる。
|
表5.5.2 FTP転送パラメータ
|
| コマンド |
書式 |
説明 |
| PORT |
PORT [host],[portnumber] |
使用するデータ転送ポートを送る。通常は 20 番ポートである。hostname には、IP アドレスを指定し、portnumber には、10 進数 2 桁でポート番号を指定する。実際の使用例としてPORT 192.168.1.13,4.18 を示す。この例の場合、4 を 2 進数に直すと 00000100 であり、18 を 2 進数に直すと 00010010 となる。これをつなげると 0000010000010010 となり、この数を 10 進数に直すと 1042 となる。つまり、1042 番ポートを使うことになる。 |
| PASV |
PASV |
アクティブモードとパッシブモードを切り替える。passive コマンドとして実装されていることが多い。 |
| TYPE |
TYPE [ransfer type] |
ファイル転送のタイプを指定する。タイプを指定しなければ現在設定されているファイル転送タイプを表示する。転送タイプとしては、ascii、binary が主だが、実装によっては、ebcdic、image、local M、tenex などがある。 |
| STRU |
STRU [structure code] |
ファイルのデータ構造を表す。引数としては、F(ファイル)、R(レコード)、P(ページ)の 3 種類があるが、実装によっては、ないものもある。引数を与えなければ現在のファイルのデータ構造を表示する。structure コマンドとして実装している場合が多い |
| MODE |
MODE [mode code] |
ファイルの転送モードを設定する。引数としては、S(ストリーム)、B(ブロック)、C(圧縮)の 3 種類があるが、ブロックや圧縮は実装していない場合もある。引数を与えなければ現在のファイル転送モードを表示する。 |
|
FTPサービスコマンド
実際の転送を行うためのコマンド。ファイルやディレクトリを指定するので、基本的に引数が必要となる。
|
表5.5.3 FTPサービスコマンド
|
| コマンド |
書式 |
説明 |
| RETR |
RETR [file name] |
指定したサーバのファイルをクライアントにコピーする。ほとんどの場合、GET コマンドして実装されている。また、複数のファイルを一度にコピーできる MGET コマンドを実装している場合もある。 |
| STOR |
STOR [file name] |
指定したクライアントのファイルをサーバにコピーする。ほとんどの場合、PUT コマンドとして実装されている。 |
| APPE |
APPE [file name] |
指定したクライアントのファイルをサーバにコピーする。同名ファイルが存在した場合、そのファイルに結合する。 |
| RNFR |
RNFR [path name] |
名前を変更したいファイルを指定する。 |
| RNTO |
RNTO [path name] |
RNFRで指定ファイルのファイル名を変更する。 |
| DELE |
DELE [file name] |
指定したサーバのファイルを消去する。 |
| RMD |
RMD [path name] |
指定したサーバのディレクトリを消去する。 |
| MKD |
MKD [path name] |
指定したサーバのディレクトリを作成する。 |
| PWD |
PWD |
サーバでの現在のディレクトリ位置を表示する。 |
| LIST |
LIST [path name] |
ファイルの一覧を表示する。 |
| NLST |
NLST [path name] |
ファイル名の一覧を表示する。 |
| STAT |
STAT [path name] |
サーバのFTPの状態を表示する。/td> |
| SYST |
SYST |
サーバのOSの状態を表示する。 |
| HELP |
HELP [command] |
コマンドの一覧を表示する。 |
| NOOP |
NOOP |
何もしない。 |
|
FTP 応答メッセージ
FTP サーバでは、クライアントから送られてきた FTP コマンドに対して何らかの応答メッセージをクライアントに返す。この FTP サーバからの応答メッセージは、通常 3 桁の数値とテキスト文字列の組み合わせで送る。数値で送られる応答メッセージは、自動処理などを行うアプリケーションのためであり、文字列での応答メッセージは人が直接 FTP コマンドを操作するためである。
3 桁の数値での応答メッセージにはそれぞれ意味がある。3 桁の数値を xyz として場合、1 から始まる 1yz、2 から始まる 2yz、3 から始まる 3yz、4 から始まる 4yz、5 から始まる 5yz と 5 つに分けられる。さらに、2 桁目が 0,1,2,3,5 の 5 種類に分類され、さらに詳しく分けられる。3 桁目はさらに詳しい情報を意味している。
1 桁目の数字による分類
- 1yz 肯定先行応答
要求されたコマンドは実行中であり、その応答を待ってから新たにコマンドを送信しなければならない
- 2yz 肯定完了応答
要求されたコマンドが完了し、新しいコマンドを送信できる
- 3yz 肯定中間応答
コマンドが受理されたが、さらに詳細な情報が必要なためその情報を送るコマンドを新たに送信しなければならない
- 4yz 一次否定完了応答
コマンドが受理されなかったので、コマンドを再送する必要がある
- 5yz 永久否定完了応答
コマンドが受理されなかった。再送した結果再びこの応答だった場合、それが 5 回繰り返されると致命的なエラーがサーバもしくはクライアントにあるためそれを修正してコマンドを再送する必要がある
2 桁目の数字による分類
- x0z 構文
構文エラー、機能的に当てはまらないコマンド、実装されていないコマンド、及び余分なコマンドであることを示す応答
- x1z 情報
状態やヘルプなどの情報の要求に対する応答
- x2z コネクション
制御用コネクションとデータ転送用コネクションだけに関する応答
- x3z 認証とアカウント
ログイン手順とアカウント手順に対する応答
- x5z ファイルシステム
サーバのファイルシステムの状態が要求されたときの応答
|
表5.5.4 FTP 応答メッセージ(数値)一覧
|
| 応答コード |
説明 |
| 110 |
再スタートマーカー情報 |
| 120 |
nnn 分後にサービスが準備される |
| 125 |
データコネクションは開かれていて転送が開始される |
| 150 |
ファイル状態は OK データコネクションが開かれる |
| 200 |
コマンド OK |
| 202 |
実装されていないか余分なコマンド |
| 211 |
システムの状態応答またはシステムヘルプ応答 |
| 212 |
ディレクトリの状態 |
| 213 |
ファイルの状態 |
| 214 |
ヘルプメッセージ |
| 215 |
NAME システムタイプ |
| 220 |
新しいユーザのためのサービスの準備が完了している |
| 221 |
制御用コネクションが閉じられる |
| 225 |
データ転送用コネクションが開いているが、転送は行われていない |
| 226 |
データ転送用コネクションが閉じようとしている |
| 227 |
パッシブモードにはいる |
| 230 |
ユーザがログインした |
| 250 |
要求されたファイルアクションは OK |
| 257 |
パス名が作成された |
| 331 |
ユーザ名 OK パスワード要求 |
| 332 |
ログインにアカウントが必要 |
| 350 |
要求されたファイルアクションには詳細情報が必要 |
| 421 |
サービスが利用不能で制御用コネクションを閉じる |
| 425 |
データ転送コネクションを開けない |
| 426 |
コネクションを閉じ転送を中止 |
| 450 |
ファイルが利用不能 |
| 451 |
要求されたコマンドの動作は処理中のエラーのため中止 |
| 452 |
保存スペースが足りない |
| 500 |
構文エラーのためコマンドが認識できない |
| 501 |
パラメータか引数の構文エラー |
| 502 |
コマンドが実装されていない |
| 503 |
コマンドのシーケンスが異常 |
| 504 |
指定されたパラメータに対してコマンドが実装されていない |
| 530 |
ログインしていない |
| 532 |
ファイルの保存にはアカウントが必要 |
| 550 |
ファイルが利用できない |
| 551 |
ページタイプが不明なため要求されたコマンドの動作を中止 |
| 552 |
保存割り当てを超えたためファイル動作を中止 |
| 553 |
ファイル名が許されたいないためファイル動作を中止 |
|
|
|
 |
|
|