FTPとtelnetソフト2001/2/15

本田整形外科クリニック
本田忠


はじめに

 ホームページを作成後、契約したサーバマシンのご自分のディレクトリに、html分を乗せる必要があります。方法はFTPソフトやtelnetを使うわけです。今回はFTPソフトの紹介です。


FTP
ファイルを自分のPCから、インターネット上にあるサーバマシンに転送するための基本的ソフトです
種類

多数あります。窓の森などで代表的なものは探せます。雑誌インターネットマガジンの附録のCDなどにも、あります。代表的なものをあげておきます。
1)FFFTP
down
down
WindowsMe Windows2000 Windows98 Windows95 WindowsNT、フリーソフト、曽田 純
  わかりやすいFTPクライアントソフトです。
特徴
・ファイルリストの部分とファイル転送が別スレッドなので、ファイル転送をしながら新たなファイル操作ができます。
・ミラーリングアップロード機能により、ローカルのファイル構成と同じ物をホスト側に作ることが出来ます。
・漢字コードの変換ができます。
・漢字のファイル名を扱うことができます。
・サブディレクトリを含めたファイルの転送ができます。
・ファイルの転送を、いつでも中断できます。
 また、以前ダウンロードを中断したファイルがある時、その続きをダウンロードできます。
・各種FireWall、SOCKS4、ワンタイムパスワードに対応しています。
ヘルプが、使い方を順を追った説明でわかりやすくなっています。
2)Steed FTP
堀内宙一
down
down
基本的な機能はFFFTPと大差ありません。ヘルプが充実しています。日本語のファイル名のファイルを転送しようとすると警告してくれます。
3)その他、多数あります。以下で選んでください。
1)Vector・・・日本最大のオンラインソフトライブラリ
2)ZDnetダウンロード・・・自動的にWindowsとMacユーザーを認識します。
3)窓の森・・・Windows用オンラインソフト紹介サイトです。
4)林檎の森・・・マッキントッシュ用オンラインソフト紹介サイトです。


実際の使い方
 それぞれのFTPソフトのマニュアルを見ればよいわけですが、代表的なFTPソフトであるWS_FTPで紹介します。
WS_FTP
WS_FTP
WS_FTP
WS_FTP は、1992 年、現在 Ipswitch 社の技術担当重役となっている John A. Junod によりシェアウェアとして開発されました。以来、 Windows 用の FTP クラアントソフトとしては、最も強力な、しかも使いやすいソフトとして広くご利用されており、現在では Ipswitch 社より販売されています。Windowsのエクスプローラーに統合されるインターフェースも持っている。これを使えば、PC内でファイルを移動するのと同じような感覚でファイルを転送することができて、非常に便利です。
Ws_ftp使用方法
1)左下にあるConnectをクリック
2)Sessionのプロパティが出るので設定
2−1)初期設定
Profile Name 区別するためにつけるものです。お好きなのをどうぞ
Host Name ここはホストのアドレスになります。取得したサーバのアドレスを書いてください。契約したプロバイダの説明書を読みましょう。例えばwww3.freeweb.ne.jpとか、IPアドレスでも可です。
Host Type 最初の指定のまま。
User ID  契約したプロバイダ指定の貴方のID番号です。
Password  同じく取得したときに言われたものを。
Account 特になし
以上を設定しましたら、適用を押したあとOKをおしましょう。そうすると接続が完了するはずです。
2−2)画面の説明
 画面で左側が自分のパソコン側、右が送り先のサーバのディレクトリです。画面まん中の矢印で、右矢印を押せば、自分のパソコンから、サーバの自分のホームページのディレクトリにファイルが送れます。逆に左矢印はサーバ側から、自分のPCへファイルを落とすときに使います。
2−3)下準備
 送る前にきちんとサーバ側でmkdirでディレクトリを作る。自分のPCのディレクトリをそのまま使うのが一般的でしょうから、単純に送って結構です。ただその場合、ファイルタイプをきちんと意識してください。htmlファイルなら特に意識しないで、バイナリでもテキストタイプでも、あまり問題になりませんが、CGIプログラムや画像ファイルはきちんとタイプを会わせないと上手く動きませんし、プログラムが動かないときがあります。また漢字ファイルは通常は使えません。すべて半角英数字にしてください。
3)自分のPCで、HPデータが置いてあるディレクトリまで移動します。
4)該当ディレクトリに、移動したらデータをサーバ側に送ります。
送る方法
a)送るデータをクリックします。
b)データが画像ならばBinaryで送ります。それ以外はAsciiです。
c)画面真中の下の方にBinaryかAsciiを選ぶところがあります。
d)真中にある矢印で右に向いてる方をクリック。これで左の自分のPCからサーバ側にファイルを送れます。
e)完了
5)これを繰り返してデータをおくっていきましょう。
※mkdirというのはディレクトリを制作するための命令語です。
  サーバがUNIXマシンかwindow−NTで命令語は異りますが、最低限、ファイルの操作方法、ディレクトリの作成方法。削除法、chmodによるパーミションの切り方など、命令語を数個程度覚えたほうがよいでしょう。

TELNET
 自分のPCからインターネット上のサーバへ、ファイルをアップするには、FTPでもtelnetでも良いわけですが、perlなどのCGIを扱うとき、サーバ側がまれにFTPに対応していないときはtelnetが便利です。細かい作業が必要なときも同様です。

代表的なソフト
 windowマシンには標準でついていますが、ネット上でも種々あります。
1)Visual TELNET 2000 GUI(もどき)のTELNETソフト、Windows98 Windows95、フリーソフト、とまむそうや
  Visual TELNET 2000 は、Windows端末ならではのビジュアルな操作感覚を備えたTELNETソフトです。
2)Telnet for Win32 TNT
Windows95 WindowsNT、寺川 愛印
  ndowsNTのコンソールで動くTelnetクライアントです。特徴は、コンソールで動く。日本語が扱える。IMEが使える。mule もちゃんと動く。

1)Telnetするのに必要なもの
・接続先コンピュータのアドレス (例:edua.ipcedu.kit.ac.jp とか 133.16.131.70 とか)
・接続先コンピュータのアカウント
・UNIXコマンドの知識
・telnetクライアントソフト
 WindowsもUNIXも標準でtelnetというクライアントソフトが入ってます。
2)接続方法
Windowsマシンの付属のものなら、スタートメニューのどこかから「Telnet」を選ぶか、 MS-DOSプロンプトから telnet と入力すれば起動できます。
2−1)telnet リモートマシン名 (efs.edu.tuis.ac.jp)
接続先のUNIXマシン名を入力する.正しく入力し終わったら,『接続』ボタンを押す.
2−2)接続に成功すると,リモート先マシンのOSの情報が表示された後に
login: に自分のログイン名を入力し
Password: に正しいパスワードを入力する.
2−3)キーボードから通常のUNIXのコマンドを入力する.
例では % cd public_html
を入力している.
2−4)リモートマシンとのTelnet接続を終了する場合には,
% logout
のように,必ずexitコマンドかlogoutを入力してTelnetセッションを終了する.

UNIXの基本

コマンド入力の規則
1.すべて小文字で
MS-DOSなどと違い、UNIXでは大文字と小文字は区別されます。たいていのコマンドは小文字ですので、小文字で入力する習慣をつけましょう。
2.引数(ひきすう)の入力方法
コマンド名と引数の間には1つ以上の空白文字を入れる。引数と引数の間には1つ以上の空白文字を入れる。
(例) ls -al :「ls」「-al」の間に半角スペース1つを入れた例。
3.オプション指定の方法
はじめに「-(ハイフン)」を入れる。複数のオプションを指定するときは、例えば上の例で、「-a」オプションと「-l」オプションを同時に指定するときは、「-al」のようにまとめて指定する。
4.標準入力からの入力の方法
コマンドの中には標準入力(キーボード)からの入力を促すコマンドがあります。入力が終わったら行頭で CTRL+D(Ctrlキーを押しながらDを押す) で終了してください。


ファイル名の規則
MS-DOSやWindowsとは少し違うUNIXのファイルについて説明します。
1.ファイル名は自由に付けてよい
 ファイル名に使える文字は、アルファベットの大文字、小文字、数字、記号、空白文字も使えます。ただし、空白文字はブラウザがうまく認識してくれないことがありますので注意してください。また、全角文字(日本語)をディレクトリ名またはファイル名に使っている人がまれにいますが、避けた方が無難です。ただし、STDINやデバイス名など、ファイルとして扱われる一部の予約語は使うことができません。
2.ファイル名の長さは通常255文字まで
長い名前が使えるというのは便利ですが、長すぎると指定するのがいちいち面倒ですし、入力ミスなども起こるので、適度な長さにしましょう。
3.大文字と小文字は区別される
例えば、 sample と Sample と SAMPLE では、すべて違うファイルとして認識されます。
4.サフィックス(拡張子)
ファイル名の一番最後の「.」以降の部分をサフィックス(suffixes…拡張子という呼びが分かりやすいかもしれません)といいます。ファイルの内容によってはこの部分に決められた文字を使わなければならないことがあります。例えば、html文書は「.html」、Cソースファイルは「.c」、FORTRANのソースファイルは「.f」などです。しかしそれ以前の部分については自由で、こんなファイル名も可能です。
abc.def.g.html
a.b.c
a.b.c.d.e.f

ディレクトリ
ディレクトリとは、Windows95/98ではフォルダといい、ファイルを格納する大きな袋のようなものです。UNIXでは、ディレクトリはファイル名と、そのファイルについているiノード番号の情報を格納した一種の「ファイル」です。
lsコマンドで自分のディレクトリを見てみましょう。なお、自分が今いるディレクトリはpwdコマンドでフルパス表示されます。
cdコマンドはカレントディレクトリを変更するときに使います。引数なしで使うと、自分のホームディレクトリへ移動します。
./ ←このディレクトリ自身
../←1つ上のディレクトリ

絶対パスと相対パス
1.絶対パス
絶対パスとは、ルートディレクトリ「/」から任意のファイルまでをすべて表記したものです。例えば、sample.htmlが自分のホームディレクトリの下のpublic_htmlの下のhondaの下のbinにあるとすると、絶対パス表記では /home/honda/public_html/honda/bin/sample.htmlとなります。
このパス表記を分解してみましょう。
/ home/ honda/ public_html / honda/ bin/ sample.html
はじめにルートディレクトリを示す「/」、
次に「home」というディレクトリ「home/」、
次に「honda」というディレクトリ「honda/」…、
といって、「bin」というディレクトリ「bin/」の中にsample.htmlがあるという意味です。
2.相対パス
いつも絶対パス表記をしていると、階層の深いファイルなど、ファイル名よりもはるかにフルパス名が長くてやってられません。そこで、通常は相対パスというものを使います。自分のホームページの中のリンクなどはこちらが便利です。
・同じディレクトリのファイルを指定する
この場合はパスをいっさい省略できます。
ex)) sample.html
・下のディレクトリのファイルを指定する
この場合、今いるディレクトリからのパス名を指定します。例えばカレントディレクトリが/home/user/public_html/として、絶対パスで/home/user/public_html/honda/bin/sample.htmlのファイルを相対パスで表記すると、honda/bin/sample.htmlとなります。
・上のディレクトリのファイルを指定する
1つ上のディレクトリは「../」という書き方をします。カレントディレクトリが/home/user/public_html/honda/bin/として、/home/user/public_html/sample.htmlを表す場合、2つ上のディレクトリなので、../../sample.htmlとなります。
・真上でも真下でもない場合
今までの表記方法を組み合わせて表記します。例えば、カレントディレクトリが/home/user/public_html/honda/bin/として、/home/user/public_html/honda2/bin2/sample.htmlを表す場合、ディレクトリをたどっていくと、カレントディレクトリから出発して、1つ上がhonda/、もう1つ上がpublic_html/、その下のhonda2/、その下のbin2/ですから、../../fukazawa/bin2/sample.htmlとなります。

パーミッション
UNIXでは、複数ユーザーのOSであるために、ファイルまたはディレクトリごとに、所有者およびグループが設定されるようになっていて、ファイルまたはディレクトリに対する実行/読み込み/書き出しについての許可/不許可を設定することができます。これをパーミッションといいます。
honda/~/public_html:ls -lg
total 1282
drwxr-xr-x 11 honda users 4608 Dec 14 22:52 ./
drwxr-xr-x 4 honda users 512 Oct 27 18:09 ../
-rw-r--r-- 1 honda users 76 Mar 12 1998 _enter.gif
drwx---rwx 3 honda users 512 Dec 10 21:30 auto_kuji/
-rw-r--r-- 1 honda users 789 Nov 19 1997 auto_pass.html
drwx---rwx 2 honda users 1024 Dec 7 00:58 bbpro/
このリストの「drwx---rwx」とか、「-rw-rw-r--」とかいう記号が、パーミッションの情報です。
まず、1文字目の d は、ディレクトリを示します。通常のファイルの場合は - となっています。
2文字目からの9つの文字群は、それぞれ3つずつ3つのブロックに分かれています。
最初のブロックの r w x は、所有者(honda)に対する 読み取り許可、書き込み許可、実行許可です。r w x の文字が表示されていれば許可、- になっていれば不許可です。上記の例ではすべて許可です。
次のブロックの r w x は、所有者が属するグループ(users)に対する 読み取り許可、書き込み許可、実行許可です。上記の例ではすべて許可です。
最後のブロックの r w x は、所有者(honda)でもなく、所有者が属するグループ(users)にも含まれないその他のユーザーに対する 読み取り許可、書き込み許可、実行許可です。上記の例では書き込みが許可されていません。

「読み取り」「書き込み」「実行」の意味
1.読み取り…指定したファイルの内容を表示する
2.書き込み…ファイルの上書き、削除
3.実行…実行ファイルの実行(プログラム、CGIなど)

rw-rw-r--を数字で表す方法
rw-rw-r--という方法だと口でいうのも大変です。そこで、通常3ケタの数字(8進数)で表します。
9つの文字を「1」または「0」で表す(2進数)
rw-rw-r--の場合、110110100 となります。
3つのブロックごとに1ケタずつ、合計3ケタに直す(8進数)
110110100 を 110 110 100 に分け、それぞれ 6 6 4 となります。
簡単な方法としては、各ブロックごとに、r は 4、w は 2、x は 1 として、ビットが立っている部分だけを足す方法があります(上記と同じことなのですが)。
rw- → (r=4) + (w=2) → 6
rw- → (r=4) + (w=2) → 6
r-- → (r=4) → 4  → 664

パーミッションの変更
パーミッションの変更は、Telnetでサーバに接続してシェルから行う方法と、CuteFTP のような FTPソフトを使って行う方法があります。ファイルのデフォルトのパーミッションは 664 または 644 ですので、CGI プログラムなどのファイルを実行できるようにするためにはパーミッションの変更をしなければなりません。
パーミッションの変更が必要なのはなぜかというと、CGI プログラムは通常の html"> ファイルのようにただ表示させる(読む)だけでなく、実行させるのであり、プログラムの中で扱われるデータファイルは、読み書き(特に書き)できるようにしておかなければならないからです。
ブラウザから CGI プログラムの URL を呼び出したときに、CGI プログラムを実行させるのは、Apache などの Web サーバです。この Web サーバは通常 nobody という架空のユーザー権限で動いていますので、CGI プログラムやデータファイルのパーミッションは、nobody 架空ユーザーにとって、実行できたり読み書きできなければなりません。したがって、実行権限や読み書き権限は、その他のブロックの部分で満たしている必要があります。
一方、シェル上では、ログインしているユーザーの権限でプログラムが実行されますので、シェル上でも実行(読み書き)可能にするためには、ユーザーのブロックのパーミッションを満たす必要があります。 グループのブロックは、CGI の場合通常関係ありません。そのままにしておいても構いませんが、私は 0 にしてしまいます。
一般的には、CGI プログラムファイルのパーミッションは 705(ユーザーは読み書き実行可能、Webサーバからは読みと実行が可能)、データファイルは606(ユーザー、Webサーバともに読み書きが可能)に変更します。
シェルから行う方法
変更したいファイル名が file.cgi で、変更したいパーミッションが 755 であるとします。
chmod 755 file.cgi
とすれば変更できます。このときの作業ディレクトリが、file.cgi のあるディレクトリになっていなければなりません(当然、File not found になります)。
chmod コマンドは、引数を複数指定できますので、複数ファイルのパーミッションを一括変更することができます。その場合、1つ1つのファイル名を指定してもよいですが、ワイルドカードを使って、簡単に指定することができます。
chmod 755 file1.cgi file2.cgi file3.cgi
は、file1.cgi、file2.cgi、file3.cgi の3つのファイルのパーミッションを 755 に変更します。
chmod 755 *.cgi
は、cgi を拡張子に持つカレントディレクトリ内のすべてのファイル(ファイル名の先頭に . が付くものを除く)のパーミッションを 755 に変更します。
FTPソフトの場合
詳細は各ソフトウエアのマニュアルまたはヘルプをご覧ください。Windows 版 CuteFTP の場合は、サーバ側の任意のファイルを選択した状態で、右クリックをして出たメニューの中の Change file attributes を選ぶと、下記のダイアログがあらわれますので、Manual の部分に直接変更したいパーミッション(3ケタの数字)を入力します。あとはOKボタンを押せば変更されます。なお、一度にたくさんのファイルのパーミッションを変更する場合、たいていの場合シェル上から chmod コマンドを使った方が速いです。

UNIXのコマンド

UNIXのコマンドは以下のURLでよくかかれています。
UNIXの基礎の基礎
初心者のためのUNIXコマンド一覧
  ここではホームページの立ち上げや維持のために必要な最低限のUNIXコマンドを一覧にしてみました。
あさだくんの UNIX 入門
UNIXコマンドのクイックリファレンス
UNIX コマンド、とりあえずこれだけは。
Telnet to UNIX machine
ネットサーフレスキュー[Web裏技]のチャレンジCGI
CGIの基礎


まとめ
 ホームページを作成して、サーバにあげるには、一般的にはFTPソフトに習熟すれば十分です。ただサーバ上で、若干複雑な操作をする、たとえば掲示板やデータベースなどのCGIプログラムを実行する時などは、telnetも使えれば便利かと思います。サーバマシンのOSはインターネット上では、まだまだUNIXマシンが主流です。UNIXはMS-DOSのように、基本はコマンドで動かします。最低限、ファイル操作のための基本的なコマンドは覚えたほうがよいと思います。