はじめに
FTPは「File Transport
Protocol」の略で、ファイルを転送する約束です。
ここではWebサーバにファイルを転送する操作と転送に付帯する操作を説明します。
- 説明のためにメールアドレス「username@swan.syscom.ne.jp」のユーザを例にしています。
- 説明はお客様の「メールアドレス」に読替えてください。
ログイン(ftpとbye)
WebサーバにFTPでログインの方法を説明します。
- 「コマンド プロンプト」を起動します。
黄色はの字はシステムの応答です。
C:\>
- 転送したいファイルのあるディレクトリに移動します。
ここではディレクトリ「html-docs」に移動することにしますので、
「cd C:htmldocs」を入力して[Enter]キーを押します。
緑色の字はキーボードからの入力です。
C:\>cd C:html-docs
- WebサーバにFTPでログインします。
ここではWebサーバが「swan.stscom.ne.jp」にログインすることにしますので、
「ftp swan.syscom.ne.jp」を入力して[Enter]キーを押します。
白色の字は処理が終わった履歴です。
C:\>cd C:html-docs
C:\html-docs>ftp swan.syscom.ne.jp
- 接続ができるとユーザ名の入力を求めますので、お客様IDを入力して[Enter]キーを押します。
ここでは「お客様ID」が「username」だとしていますので、
「username」を入力して[Enter]キーを押します。
C:\html-docs>ftp swan.syscom.ne.jp
Connected to swan.syscom.ne.jp.
220 mash.syscom.ne.jp FTP server (Version 6.00LS) ready.
User (swan.syscom.ne.jp:none): username
- 次にパスワードの入力を求められますので、パスワードを入力して[Enter]キーを押します。
ここでは「abcd」」を入力してみます。
****のパスワードは表示されません。
C:\html-docs>ftp swan.syscom.ne.jp
Connected to swan.syscom.ne.jp.
220 mash.syscom.ne.jp FTP server (Version 6.00LS) ready.
User (swan.syscom.ne.jp:none): username
331 Password required for username.
Password: ****
- 入力が終わると、
C:\html-docs>ftp swan.syscom.ne.jp
Connected to swan.syscom.ne.jp.
220 mash.syscom.ne.jp FTP server (Version 6.00LS) ready.
User (swan.syscom.ne.jp:none): username
331 Password required for username.
Password:
530 Login incorrect.
Login failed.
ftp> _
- 「530 Login incorrect.」と「Login failed.」が表示されます、ログインに失敗しました。
これはパスワードがまちがっているからです。
最後に表示された「ftp> _」はftpのプロンプトで、次のコマンドの入力待ちの状態です。
接続に失敗してしまったので、終了「bye」を入力して[Enter]キーを押します。
C:\html-docs>ftp swan.syscom.ne.jp
Connected to swan.syscom.ne.jp.
220 mash.syscom.ne.jp FTP server (Version 6.00LS) ready.
User (swan.syscom.ne.jp:none): username
331 Password required for username.
Password:
530 Login incorrect.
Login failed.
ftp> bye
221 Goodbye.
C:\html-docs>
- 画面を清掃するために「cls」を入力して[Enter]キーを押して、
もう一度、3からやり直して、正しい「パスワード」を入力すると
C:\html-docs>ftp swan.syscom.ne.jp
C:\html-docs>Connected to swan.syscom.ne.jp.
220 mash.syscom.ne.jp FTP server (Version 6.00LS) ready.
User (swan.syscom.ne.jp:none): username
331 Password required for username.
Password: ****
230 User username logged in.
ftp>_
- と今度は「230 User username logged in.」と表示され、正常にWebサーバにログインできました。
接続をした状態で、次のコマンドの入力を待ちます。
このまま、放置すると接続がタイムアウトしてサーバが切断します。 - それでは、次の項でコマンドを実行してみましょう。
FTPコマンドの基本(pwdとlsとverboseとcd)
基本的なコマンドを実行して出力されるシステムからの応答とその意味を説明します。
コマンドは前項と違い「「xxx」を入力して[Enter]キーを押します。」ではなく「xxx」を実行と記述します。
- 最初は「pwd」を実行してみます。
これはリモートマシンの作業トディレクトリを表示するものです。
ftp> pwd
257 "/" is current directory.
ftp> _
- 「257 "/" is current directory.」と表示します。
ログインした初期の作業ディレクトリは、「/」ルートディレクトリです。
Windowsではディレクトリを「\」で表しますがFTPやUNIXでは「/」で表します。
- 「257 "/" is current directory.」と表示します。
- 次に「/」の下にどんなデータがあるのか一覧を見てみます。
コマンドはリスト、「ls」ですので早速実行します。
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for 'file list'.
.forward
public_html
.spamassassin
226 Transfer complete.
ftp: 38 bytes received in 0.00Seconds 38000.00Kbytes/sec.
ftp> _
- 応答の意味は、「150...」はファイルリストのためにアスキーモードで接続しています。
- 「.forward」「public_html」「.spamassassin」のデータがあります。
- 「226...」は転送が終了しました。
- 「ftp: 38...」は38バイト受信するのに0.00秒掛かり、1秒間に38000.00Kバイトの転送速度でした。
- それぞれのデータは、ディレクトリなのかファイルなのかは解りません。
そこで、詳細を表示させるために「ls」にロング、「-l」のオプションを付加「ls -l」を実行してみます。
ftp> ls -l 200 PORT command successful. 150 Opening ASCII mode data connection for '/bin/ls'. total 6 -rw-r--r-- 1 1000 170 9 May 28 15:16 .forward drwxr-xr-x 2 1000 170 512 May 28 15:18 .spamassassin drwxr-xr-x 2 1000 170 512 Dec 6 2006 public_html 226 Transfer complete. ftp: 200 bytes received in 0.00Seconds 200000.00Kbytes/sec. ftp> _
- 最初の1文字目が「d」のデータは「ディレクトリ」です、ファイルは「-」の表示です。
- これ以外の情報は「所有者の節」で説明します。
- 「3桁の数字」で始まる行と「ftp」で始まる行は、求めている情報以外の統計情報で説明には邪魔です。
そこで饒舌、「verbose」を実行します。
ftp> verbose
Verbose mode Off .
ftp> _
- もう一度同じコマンド「ls -l」を実行してみます。
ftp> ls -l total 6 -rw-r--r-- 1 1000 170 9 May 28 15:16 .forward drwxr-xr-x 2 1000 170 512 May 28 15:18 .spamassassin drwxr-xr-x 2 1000 170 512 Dec 6 2006 public_html ftp> _
- 簡潔な表示結果です。
「verbose」は饒舌モードの切替を行うコマンドで、「verbose mode Off」と表示され、饒舌モードが「オフ」に切替わります。
今後は「饒舌モードオフ」で表示される画面で説明を進めます。 - それでは「public_html」のディレクトリの中に何があるかを調べてみましょう。
作業ディレクトリの変更(移動)はチェンジディレクトリ「cd」で、今回は「cd public_html」です、何も返答がないことはコマンドが正常に実行されたことになります。
続けてオール、「-a」のオプションも追加して「ls -la」を実行してみます。
ftp> cd public_html ftp> ls -la total 8 drwxr-xr-x 2 1000 170 512 Dec 6 2007 . drwxr-xr-x 2 1000 170 512 Dec 6 2007 .. -rwxr--r-- 1 1000 170 2498 Dec 6 2007 Counter.html -rw-r--r-- 1 1000 170 99 Dec 6 2007 index.html -rw-r--r-- 1 1000 170 50 Dec 6 2007 index_old.html ftp> _
- 見たことのないディレクトリ「.」「..」が表示されています。
「.」は自分で、「public_html」のことを、
「..」は親でひとつ上のディレクトリ、この場合は「/」のことを意味しています。- 「cd」コマンドの書式は「cd 移動先ディレクトリ」で使用例は
- ルートディレクトリに行くときは「cd /」
- ホームディレクトリに戻るときは「cd ~」、結果は上と同じです
- ひとつ上のディレクトリに戻るときは「cd ..」
- です。
- 次に終了、「bye」を実行してWebサーバとの接続を切断してftpを終了します。
ファイルシステムの要点
「自分のデータには自分の名前をつける」、「人に使わせるデータは印を付ける」と理解してください。
UNIXのファイルシステムの要点を説明します、重要ではないので上記が理解できれば「所有者の節」に進みます。
- WebサーバのOSはUNIXですので、個々のお客様ごとにホームディレクトリがありホームディレクトリの中にはお客様の「ディレクトリとファイル(データ)」やがあります。
- お客様のデータはお客様だけが「読込」「書込」「変更」が可能なようにOSが管理しています。
この管理を実現しているのが「ファイルシステム」です。 - ファイルシステムは全てのデータに「所有者」「グループ」の所有者の情報を書込み、「読込」「書込」「実行」の許可も管理します。
- この許可を権限(パミッション)といい、お客様を含めて誰が読めて、書けて、実行できるかを指定します。
所有者(ユーザー)などの詳細情報(ls -al)
データの種別、所有者などの情報の見方を説明します。
- 「FTPコマンドの基本」の7で表示された最後の1行を詳しく見てみましょう。
ftp> cd public_html ftp> ls -la total 8 drwxr-xr-x 2 1000 170 512 Dec 6 2007 . drwxr-xr-x 2 1000 170 512 Dec 6 2007 .. -rwxr--r-- 1 1000 170 2498 Dec 6 2007 Counter.html -rw-r--r-- 1 1000 170 99 Dec 6 2007 index.html -rw-r--r-- 1 1000 170 50 Dec 6 2007 index_old.html ftp> _
- 「-rw-r--r--」は「権限」で現在は以下のように設定されています、詳細は「権限の節」で説明します
- データの「種別」で「-」は「ファイル」
- お客様の「読込」で「r」は読込許可
- お客様の「書込」で「w」は書込許可
- お客様の「実行」で「-」は実行不可
- グループの「読込」で「r」は読込許可
- グループの「書込」で「-」は書込不可
- グループの「実行」で「-」は実行不可
- 他のユーザの「読込」で「r」は読込許可
- 他のユーザの「書込」で「-」は書込不可
- 他のユーザの「実行」で「-」は実行不可
- 1 は「アイノード数」ですが理解は不要です。
- 1000 は「管理番号」でお客様を表します。
- 170 は「グループコード」で当社の管理情報です、理解は不要です。
- 50 は「容量」で50バイトのファイルです。
- Dec 6 2007 は「最終更新」で最終更新から6か月以上経過しているので「年」が表示されています。
この場合は「2007年12月6日」となります。 - index_old.html は「ファイル名」でindex_old.html
所有者がお客様で「読込」「書込」が許可されている「index_old.html」とうい名前の50バイトのファイルで「2007年12月6日」に最終更新が行われた。
となります。
権限(パミッション)の管理と設定(quote site chmod)
権限は設定を変更しなくても問題は起きませんが、間違った設定を行うと問題が起きます。
この節は重要ではないので読み飛ばしても大丈夫です、「その2」のページに進みます。
- お客様自身の権限を限定すると削除や更新ができなくなりますので権限は制限しないようにします。
- ディレクトリには「実行」の権限が必ず必要です。
- FTPで転送したファイルはお客様が「読書可能」で他は「読込可能」に設定されます。
- FTPで作成したディレクトリはお客様が「読書実行可能」で他は「読込実行可能」に設定されます。
- 上記だけで事足りますし、Webサーバでは利用される権限のパターンは限定されます。
- 権限(パミッション)は前項の例のように10桁の文字列で表現されます。
- 10桁の文字列は先頭の1桁を除いて、残り9桁を3桁づつ、3組で構成されています。
- 3組の文字列はそれぞれ「ユーザ」「グループ」「他のユーザ」の権限を表現します。
- 1組ごとに3桁の文字列で表記されています。
- 1桁目は読込で「r」が許可、不可が「-」
- 2桁目は書込で「w」が許可、不可が「-」
- 3桁目は実行で「x」が許可、不可が「-」
- 全てを許可すると「rwxrwxrwx」と表現されます。
- 全てを不可にすると「---------」と表現されます。
- 前の「c」のファイルは「rw-r--r--」、「d」のディレクトリは「rwxr-xr-x」となります。
- 権限(パーミッション)は文字列で表すほかに、3桁の数字で表す方法があります。
- 権限の設定にはこの3桁の数字を使用します。
- 個々の数字は、先ほどの9桁の文字列を3桁ごとに数値化します。
- 3ビットが「読込」の可否で、可の値は4、否の値は0
- 2ビットが「書込」の可否で、可の値は2、否の値は0
- 1ビットが「実行」の可否で、可の値は1、否の値は0
- 3個の値の合計で、以下の表を参考にしてください。
1桁目 | 2桁目 | 3桁目 | |||||||
---|---|---|---|---|---|---|---|---|---|
お客様 (ユーザ) |
弊社管理用 (グループ) |
Webサーバ (他のユーザ) |
|||||||
文字列 | r | w | x | r | w | x | r | w | x |
読込許可 | 4 | 4 | 4 | ||||||
書込許可 | 2 | 2 | 2 | ||||||
実行許可 | 1 | 1 | 1 |
- たとえば、
- お客様は「読込可(4)」「書込可(2)」
- グループは「読込可(4)」
- Webサーバは「読込可(4)」
- を許可するように権限を設定するときは
- 1桁目→ 4+2+0= 6
- 2桁目→ 4+0+0= 4
- 3桁目→ 4+0+0= 4
- 結果は「644」になります。
- 権限を変更するには特殊なサイト チェンジモード、「quote site chmod」コマンドで行います。
- 書式は、「quote site chmod 3桁の数字 データ」です。
- 先ほど説明した「index_old.html」の権限を変更してみますが、現在が目的の権限になっていますので一度すべてのユーザが読書可能にしてみます。
- 全てのユーザが読書可能にするには「666」ですので、コマンドは「quote site chmod 666 index_old.html」です。
- 連続で実行してみます。
wと-が変更された権限です。
C:\html-docs>ftp swan.syscom.ne.jp C:\html-docs>Connected to swan.syscom.ne.jp. 220 mash.syscom.ne.jp FTP server (Version 6.00LS) ready. User (swan.syscom.ne.jp:none): username 331 Password required for username. Password: **** 230 User username logged in.
ftp> cd public_html ftp> ls -l total 6 -rwxr--r-- 1 1000 170 2498 Dec 6 2007 Counter.html -rw-r--r-- 1 1000 170 99 Dec 6 2007 index.html -rw-r--r-- 1 1000 170 50 Dec 6 2007 index_old.html ftp> quote site chmod 666 indx_old.html ftp> ls -l total 6 -rwxr--r-- 1 1000 170 2498 Dec 6 2007 Counter.html -rw-r--r-- 1 1000 170 99 Dec 6 2007 index.html -rw-rw-rw- 1 1000 170 50 Dec 6 2007 index_old.html ftp> quote site chmod 644 indx_old.html ftp> ls -l total 6 -rwxr--r-- 1 1000 170 2498 Dec 6 2007 Counter.html -rw-r--r-- 1 1000 170 99 Dec 6 2007 index.html -rw-r--r-- 1 1000 170 50 Dec 6 2007 index_old.html ftp> _ - 期待どおりに変更されました。
FTPの導入部分は終了しました、今度は実際にデータの転送する操作を説明しますので「その2」のページに進みます。