レンタルサーバ + Webシステム開発 = E-business

■レンタルサーバご利用参考資料
サーバご利用の参考にJF Project によるJF (Japanese FAQ)を掲載しています。

Linux JF(Japanese FAQ)Project.
JF は, Linux に関する解説文書・FAQ などを作成・収集・配布するプロジェクトです.

グリーンネット・トップページへ戻る


一覧に戻る
  FTP mini-HOWTO
  Matthew Borowski (mkb@yahoo.com)
  ( http://tarp.worldserve.net/ )
  v0.2, 9 January 2000
  宮野浩史, (hmiyano@webjapan.com)
  v0.1, 3 May 2000

  FTP クライアントとサーバの使い方
  ______________________________________________________________________

  目次

  1. 序章
     1.1 著者にコンタクトする
     1.2 法律義務と配布
     1.3 この文章の履歴

  2. FTP について
  3. FTP を使用する上での初心者へのガイド
     3.1 ftp プログラムを起動する
     3.2 FTP サーバにログインする
     3.3 ファイル転送タイプ
     3.4 ディレクトリの操作と一覧
     3.5 ファイルのダウンロードとアップロード
     3.6 シェルコマンドを起動する
     3.7 ハッシュ記号とティック
     3.8 その他の ftp コマンド

  4. コンソール FTP クライアント
     4.1 NcFTP
     4.2 lukemftp
     4.3 lftp
     4.4 cftp
     4.5 yafc

  5. X Window System FTP クライアント
     5.1 gFTP
     5.2 WXftp
     5.3 LLNL XDIR と XFTP
     5.4 guiftp

  6. FTP サーバ
     6.1 FTP サーバのしくみ
     6.2 FTP サーバについての助言
        6.2.1 WU-FTPD
        6.2.2 ProFTPD

  ______________________________________________________________________

  1.  序章

  この文章は Matthew Borowski によって Linux Documentation Project のた
  めに書かれました。わたしはこの文章に追加したい内容を全て追加しきっては
  いません。将来、FTP サーバを動かすための情報を載せた章ができる予定で
  す。

  1.1.  著者にコンタクトする

  この文章に追加や変更したいことがあれば著者までコンタクトしてください。
  お願いですから技術サポートを要求しないでください(UNIX の相談やサポート
  は著者の会社 WorldServe  から購入してもよい
  ですし、comp.os.linux.* などのニュースグループで助力を得ることもできま
  す)。それと、著者は英語とペルシア語しか理解できませんのでそれを心に止
  めておいてください。

  (訳注: 日本語でのコンタクトは翻訳者まで)

  1.2.  法律義務と配布

  以下の文は参考のため訳文を挙げますが、原文が優先されます。

  This document is Copyright 1999 by Matthew Borowski. You may freely
  distribute this document as long as the copyright notice remains
  unaltered.  If you distribute this HOWTO as part of a commercial
  product, I would like to recieve a copy, but this is not required. If
  you wish to distribute a modified or translated version of this
  document, please contact me first for permission.

  この文章は Matthew Borowski の著作物です(Copyright 1999)。著作権表示が
  変更されずに残っている限り、この文章を自由に配布してもかまいません。こ
  の文章が商用製品の一部として配布されるときは製品のコピーを受け取りたい
  ですが、これは必須ではありません。この文章の改変、翻訳版を配布したい場
  合は、著者から許可を先に取ってください。

  1.3.  この文章の履歴

  o  991203: FTP HOWTO 初版。まだ作業進行中。

     [訳注 : 日本語版改訂履歴を以下に示します。

     v1.0, 2000 年 5 月 16 日
        翻訳: 宮野浩史

        校正: 日下部陽一 , 佐藤亮一
         武井伸光 , 早川仁  山下義之 

        校正をしてくださった皆様、本当にありがとうございました。]

  2.  FTP について

  FTP(File Transfer Protocol : ファイル転送プロトコル)はリモートネットワ
  ークサイトとファイルをやりとりするためのクライアント/サーバプロトコル
  です。このプロトコルは TCP と共に働きインターネットでもっともよく使わ
  れます( LAN で使うこともできますが)。 -->

  FTP サイトとは FTP サーバソフトウェア( FTP デーモン、または ftpd とし
  ても知られています)を起動しているコンピュータのことです。パブリック
  FTP サイトは誰でも anonymous か ftp としてログインすることでアクセスで
  きます。これらの中には、フリーの Unix ソフトウェアが入手できるリポジト
  リを持つ素晴らしいパブリック FTP サイトがたくさんあります。FTP の使い
  方を学べば、必要なリソースへアクセスをできるようになります。

  プライベート FTP サイトは(訳注:アクセスするのに)ユーザ名かパスワードを
  必要とします。ISP のシェルアカウントも持っている場合は、 FTP を通して
  あなたのファイルにアクセスすることができるかもしれません (これを確かめ
  るにはシステム管理者にコンタクトしてください)。

  FTP クライアントは FTP サーバへのアクセスを提供するユーザサイドのアプ
  リケーションです。数多くの FTP クライアントが利用可能で、これにはグラ
  フィカルとテキストベースのものがあります。

  FTP はカリフォルニア大学バークレー分校で最初に 4.2BSD (Berkeley Unix)
  に含まれる形で開発されました。RFC(仕様書)は
   から入手可能です。

  3.  FTP を使用する上での初心者へのガイド

  FTP を使用するための簡単なガイド。

  標準の FTP プログラムはオリジナル ftp クライアントです。ほとんどの
  Linux ディストリビューションに標準で付属しています。ftp は最初にカリ
  フォルニア大学バークレー分校によって開発された 4.2BSD で現れました。

  3.1.  ftp  プログラムを起動する

  ftp を使うのは簡単です。たとえば、最新の Linux カーネルソースをダウン
  ロードするために metalab.unc.edu という名前の匿名 FTP サイトに接続した
  いとします。

  コマンドラインから以下のようにタイプします:

       $ ftp metalab.unc.edu

  これで ftp プログラムは metalab.unc.edu に接続しようとします。他のやり
  方で同じことをするには ftp をパラメータなしで起動し、サイト名を引数と
  して open コマンドを使用します。

       $ ftp
       ftp> open metalab.unc.edu

  3.2.  FTP サーバにログインする

  FTP サイトに接続するとログインを要求されます(Enter を押すとローカルの
  ユーザ名でログインします。この場合は foo)。ここでは anonymous ないし
  ftp としてログインし、パブリックアーカイブへ行くことにします。

       220 helios.oit.unc.edu FTP server (Version wu-2.6.0(2) Wed Nov 17 14:44:12
       EST 1999) ready.
       Name (metalab.unc.edu:foo):

  次に、完全な E-Mail アドレスをパスワードとして記入します(ほとんどのパ
  ブリック FTP サイトはこれを要求します)。

       331 Guest login ok, send your complete e-mail address as password.
       Password:

  ログインに成功すると、以下の情報が与えられます。

       Remote system type is UNIX.
       Using binary mode to transfer files.
       ftp>

  3.3.  ファイル転送タイプ

  FTP サイトにログインしたあとに、ftp はファイル転送タイプを表示します。
  上記の場合はバイナリ(binary)です。バイナリモードではファイルを1ビット
  ずつ、 FTP サーバにあるとおりに転送します。しかしながらアスキ
  ー(Ascii)モードではテキストを直接ダウンロードします。 ascii や binary
  とタイプすることでタイプを変更できます。

  今回はカーネルソースをダウンロードしたいので、ファイル転送タイプはバイ
  ナリのままにしておきます。バイナリタイプはテキストではない全てのファイ
  ルをダウンロードするさいに使用します(たとえば、画像イメージ、zip/gzip
  アーカイブ、実行ファイルなど)。分からなかったらバイナリモードを使用し
  ましょう。

  3.4.  ディレクトリの操作と一覧

  ファイルを一覧するには ls を使います。FTP サーバの ls はリモートサーバ
  上で実行されますので、使えるコマンドラインオプションはサーバによって異
  なります。一般的なオプションは普通は利用可能ですので、詳しいことは ls
  の man ページを調べてください。

  ftp> ls
  200 PORT command successful.
  150 Opening ASCII mode data connection for /bin/ls.
  total 33590
  -r--r--r--   1 root     other    34348506 Dec 03 03:53 IAFA-LISTINGS
  lrwxrwxrwx   1 root     other           7 Jul 15  1997 README -> WELCOME
  -rw-r--r--   1 root     other         890 Nov 15 13:11 WELCOME
  dr-xr-xr-x   2 root     other         512 Jul 15  1997 bin
  dr-xr-xr-x   2 root     other         512 Jul 15  1997 dev
  dr-xr-xr-x   2 root     other         512 Jul 18  1997 etc
  drwxrwxrwx  11 ftp      20           4608 Nov 28 16:00 incoming
  lrwxrwxrwx   1 root     other          13 Jun 04  1998 ls-lR ->
  IAFA-LISTINGS
  dr-xr-xr-x  17 root     root          512 Jun 08 11:43 pub
  dr-xr-xr-x   3 root     other         512 Jul 15  1997 unc
  dr-xr-xr-x   5 root     other         512 Jul 15  1997 usr
  226 Transfer complete.

  もし ls コマンドで列挙したファイルが多すぎて画面から上にはみ出てしまっ
  た場合は、 Shift-PageUp を使うことで上にスクロールできます。これは
  Linux のコンソール上での他、xterm や rxvt 上でも使えます。

  パブリック FTP アーカイブ上では、ダウンロードできるリソースは普通 /pub
  ディレクトリに格納されています。この例では、カーネルソースが
  /pub/Linux/kernel にあることが分かっていることとして、次のようにタイプ
  してそのディレクトリまで移動します。

       ftp> cd pub/Linux/kernel
       250-README for kernel
       250-
       250-What you'll find here: kernel sources and patches
       250-
       250-
       250 CWD command successful.

  「250」で始まるメッセージはサーバから送られてきた情報メッセージです。
  上記の場合、あなたがディレクトリに cd すると FTP サーバが自動的に
  README ファイルを送るように設定されています。

  3.5.  ファイルのダウンロードとアップロード

  さて、再度 ls すると、v2.2 ディレクトリがあるのでそこに cd します。そ
  の後、また ls をすると、ダウンロードしたいファイル linux-2.2.13.tar.gz
  が見つかります。そこで今度は次のようにタイプします。

       ftp> get linux-2.2.13.tar.gz
       local: linux-2.2.13.tar.gz remote: linux-2.2.13.tar.gz
       200 PORT command successful.
       150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
       bytes).

  ftp プログラムがリモートファイル linux-2.2.13.tar.gz をローカルファイ
  ル linux-2.2.13.tar.gz として保存し始めました。

  もしこれを foo.tar.gz という名前でローカルファイルに保存したければ、次
  のように指定できます。

       ftp> get linux-2.2.13.tar.gz foo.tar.gz
       local: foo.tar.gz remote: linux-2.2.13.tar.gz
       200 PORT command successful.
       150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
       bytes).

  一度に複数のファイルをダウンロードしたい場合は、mget (multiple get) コ
  マンドを使う必要があります。mget はスペースで区切られたダウンロードし
  たいファイル名のリストをコマンドの引数として使うか、mget コマンドをワ
  イルドカードと合わせて使用することもできます。たとえば、

       ftp> mget linux*

  上記のコマンドによって、「linux」で始まる全てのファイルを取得します。
  普通 mget は各ファイルをダウンロードするまえに本当にダウンロードするか
  プロンプトを出します。prompt コマンドを使うことでこれを切替えられま
  す。

  たとえばあなたが何かのソフトウェアを書いたとして、これを Linux ソフト
  ウェアアーカイブに含めてもらうために MetaLab にアップロードしたいとし
  ます。それでは最初に、/incoming ディレクトリ(ほとんどのパブリック FTP
  サーバにはファイルがアップロードできる incoming や uploads といった名
  前のディレクトリがあります)に移動し、put コマンドを使用します。

       ftp> cd /incoming
       ftp> put foo.tar.gz
       local: foo.tar.gz remote: foo.tar.gz
       200 PORT command successful.
       150 Opening BINARY mode data connection for foo.tar.gz.
       226 Transfer complete.
       10257 bytes sent in 0.00316 secs (3.2e+03 Kbytes/sec)

  put コマンドは get と同じように、mput で複数のファイルを同時にアップロ
  ードできます。リモートファイル名やパスを引数として指定すれば、ローカル
  ファイルを別のファイル名でサーバ上にアップロードできます。

  もしファイル foo.tar.gz が、アップロードしようとしたときにローカルのカ
  レントディレクトリにない場合はどうすればよいのでしょう?  これは、lcd
  (local change directory)コマンドを使用することによってローカルのディレ
  クトリを変更できます。

       ftp> lcd /home/foo/
       Local directory now /home/foo

  3.6.  シェルコマンドを起動する

  FTP クライアントは感嘆符(!)を使うことによってローカルコマンドを起動す
  ることをサポートしています。たとえば、ローカルのカレントディレクトリの
  ファイルを列挙するには次のようにします。

       ftp> !ls

  これがどうやって働くのかというと、ftp はシェル($SHELL 環境変数で指定さ
  れた)を呼び出し、シェルが ls を起動します。つまりは、シェルで動くコマ
  ンドラインなら、前に「!」をつけてやりさえすれば何でも実行できます(ほと
  んどの Linux ディストリビューションでは bash (Bourne Again SHell)がデ
  フォルトのシェルになっています)。しかし、!cd はあなたの思ったとおりに
  は動いてくれないことに注意してください。だからこそ lcd コマンドが存在
  するのです。

  3.7.  ハッシュ記号とティック

  もし ftp でダウンロードをしているファイルの進行状況が見られたら便利だ
  と思いませんか? hash コマンドを使用することによって、ダウンロード時に
  ハッシュ記号を出力します。

       ftp> hash
       Hash mark printing on (1024 bytes/hash mark).

  見ても分かるように、ftp は 1024 バイト分データをダウンロードするたびに
  ハッシュ記号を出力します。

  その他にも tick オプションがあります。

  ftp> tick
  Tick counter printing on (10240 bytes/tick increment).

  
  これはダウンロードの進行状況を下のように出力します。

  Bytes transferred: 11680

  3.8.  その他の ftp コマンド

  ftp コマンドは他にもたくさんあります。もしあなたがパーミッションを与え
  られていれば(個人のプライベートシェルアカウントに接続している場合はそ
  のはず) mkdir コマンドによってリモートサーバ上にディレクトリを作成でき
  ます。delete コマンドでファイルをリモートサーバ上から削除でき、rmdir
  ではディレクトリを削除します。chmod コマンドを使うことによって、ファイ
  ルのパーミッションを変更することもできます。

  ftp を使う上でのさらに詳しい情報は、ftp プログラム内のオンラインヘルプ
  を参照してください(コマンドを列挙するには引数なしで help とタイプ、特
  定のコマンドのヘルプを見る場合は help )。コマンドプロンプ
  トから man ftp とタイプすることで、ftp の Unix man ページを読むことも
  できます。

  4.  コンソール FTP クライアント

  本来の FTP プログラムはオリジナル ftp クライアントで、これを勉強してお
  くとためになるでしょう。これはほとんどのシステム(すたれた脳死版です
  が、Win32 にでさえも ftp コマンドが含まれています)で利用可能なことが確
  かなただひとつの FTP クライアントです。

  世の中には他にも数多くのコンソールモード(テキストのみ)の FTP クライア
  ントが利用可能です。このリストは内容豊富なものではありませんが、もっと
  も有名なものを含みます。もっと探すには FreshMeat
   で検索してみてください。

  4.1.  NcFTP

  NcFTP は時代を超えて数多くの Unix ユーザから好まれている FTP クライア
  ントです。これはほとんどの Linux ディストリビューションにバンドルされ
  ていて、タブ補完やブックマークなど数多くの発達した機能を提供しま
  す。NcFTP Version 2 では curses ベースのフルスクリーンモードがありまし
  たが、この機能は Version 3 でなくなりました。

  これは標準の ftp が使うコマンドと 100% 互換性があるわけではありませ
  ん。たとえば、NcFTP の get と put は標準 ftp の mget や mput のように
  動作します。なので、リモートファイルを別名のローカルファイルとして保存
  したい場合は get -z remotename localname とする必要があります。有難い
  ことに、NcFTP にはコマンドの勉強を手伝ってくれる便利なオンラインヘルプ
  システムがあります。

  最新版の NcFTP は   から入手できます。

  Debian パッケージは   から入
  手可能です。

  Redhat パッケージは   から入手可能
  です。

  4.2.  lukemftp

  lukemftp は NetBSD から他のシステムへのポートで、その名前を拡張機能の
  ほとんどを書いた方から由来し、以下の機能を含みます。コマンドラインエ
  ディティング、FTP と HTTP の URL のコマンドラインフェチ(プロキシ経由を
  含む)、コンテキストセンシティブ単語補完、ダイナミックプログレスバ
  ー、IPv6 サポート、変更時間保存、ローカルとリモートファイルのページン
  グ、パッシブモードサポート(アクティブモードの代替として)、 SOCKS サポ
  ート、 TIS FWTK gate-ftp サーバサポート、それと転送レートの減速。

  標準の ftp クライアントから思いっ切り異なったものは欲しくないが、もっ
  と発達した機能が欲しい方に lukemftp を強くお勧めします。

  最新版の lukemftp  は
   から入手できます。

  Redhat パッケージは
   から入手可能です。

  4.3.  lftp

  lftp は洗練されたコマンドラインベースの FTP クライアントです。bash の
  ようにジョブコントロールを持ちます。これは GNU readline ライブラリを入
  力に使用するので、コマンドライン補完と編集機能を持ちます。lftp はさら
  にブックマーク、ミラーリングサポート、そして複数のファイルを並列に転送
  できます。

  最新版の lftp は   から入手で
  きます。

  Debian パッケージは   から入手
  可能です。

  Redhat パッケージは
   から入手可能です。

  4.4.  cftp

  Comfortable FTP (cftp)はフルスクリーンモードのクライアントです。機能は
  少ないですが、それを使いやすさでカバーしています。矢印キーと Enter キ
  ーを使うことでディレクトリ間をブラウズできます。

  最新版の cftp は   から入手できる
  はずです。

  Redhat パッケージは   から入手
  可能です。

  4.5.  yafc

  Yafc は、ディレクトリキャッシュ、リモートファイル名補完、エイリアス、
  色付き ls、回帰できる get/put/ls/rm、nohup モード転送、タグ(キュー)、
  複数接続、プロキシサポートと、その他たくさんの機能を含んだとても便利な
  FTP クライアントです。 Yafc は Kerberos4 認証をサポートします。

  最新版の yafc は   から入手でき
  ます。

  Debian パッケージは  
  から入手可能です。

  Redhat パッケージは   から
  入手可能です。

  5.  X Window System FTP クライアント

  X Window System で起動するように設計されたグラフィカルな FTP クライア
  ントもあります。これらのクライアントはグラフィカル環境に慣れたユーザに
  使いやすさを提供し、さらに時々テキストベースの FTP クライアントでは提
  供するのが難しい融通の利くオプションを提供します。

  5.1.  gFTP

  gFTP は Gtk を使って書かれた X Windows System 用の FTP クライアントで
  す。これのインターフェイスは、不安定な某 OS 上でよく利用される人気ソフ
  ト、WS_FTP に似たところがいくつかあります。

  gFTP は同時ダウンロード、中断されたファイル転送の再開、ファイル転送
  キュー、ディレクトリ全体のダウンロード、FTP プロキシサポート、リモート
  ディレクトリキャッシング、パッシブとノンパッシブファイル転送、ドラッグ
  アンドドロップサポート、便利な接続マネージャとその他たくさんの機能を持
  ちます。

  もしあなたが Red Hat Linux を使っていて、 GNOME デスクトップがインスト
  ールされているなら、恐らく gFTP を既に持っているでしょう。もしそうでな
  かったら gFTP のホームページ  からダウンロード
  できます。

  5.2.  WXftp

  WXftp は 主に Linux ワークステーション上で使うために設計された X
  Window System 用の FTP クライアントです。これは WXWindows ツールキット
  を使用して書かれていますので、 Motif か GTK+ のどちらかを使用できるよ
  うにコンパイルすることができます。

  これは直感的なインターフェイス(WS_FTP のような)、セッションマネー
  ジャ、オンラインヘルプ、プログレスバー、その他たくさんの機能を持ちま
  す。

  WXftp のホームページ   を見てみましょう。

  5.3.  LLNL XDIR と XFTP

  LLNL XFTP は初期 Linux 用グラフィカル FTP クライアントのひとつです。こ
  れは FXP (ふたつのリモートホスト間でのファイル転送)をサポートし、Motif
  ベースのインターフェイスを持ちます。

  さらなる情報は   で入手可能です。

  5.4.  guiftp

  guiftp は GTK+ ツールキットで記述された簡単な FTP クライアントです。こ
  れはたくさんの機能は必要なくて、シンプルできれいな見た目が欲しいという
  ときによいでしょう。

  guiftp のホームページは   で
  す。

  6.  FTP サーバ

  6.1.  FTP サーバのしくみ

  伝統的な FTP サーバは inetd (internet superserver daemon)から実行され
  ます。標準の FTP ポートは 21 です。ユーザがログインしようとすると、FTP
  サーバは標準システムコールを使ってユーザ名とパスワードが正しいかチェッ
  クします。普通はシステムパスワードファイルのエントリ、NIS を使っている
  場合は NIS テーブルのエントリと照合します。もしログインが正しい場合
  は、ユーザにシステムへのアクセス権が与えられます。

  匿名 FTP のしくみはまた別です。ユーザは anonymous (匿名)か、 FTP ユー
  ザ名(これは設定ファイルで定義できます)でログインします。そしてユーザは
  chroot() されているディレクトリツリーにアクセスを与えられます。これは
  ユーザが権限を与えられていないディレクトリツリーにアクセスできないよう
  にすることを確実にします。 chroot されたディレクトリツリーは普
  通、bin/、etc/、と lib/ ディレクトリを含んだ模倣のファイルシステムを持
  ちます。ダウンロードされるファイルは普通 pub/ ディレクトリに置かれま
  す。

  匿名 FTP ツリー内の模倣のファイルシステムの理由は、FTP デーモンが ls
  の要求のために外部コマンドを実行するためです。これ以外のプログラムを
  bin ディレクトリに追加することもできますし、ユーザは FTP クライアント
  内の SITE コマンドでこれらを実行できます。たとえば、Red Hat の FTP は
  RPM コマンドを含みます(ユーザがサイト上の RPM パッケージへ問い合わせで
  きるように)。

  さらに異なったしくみの FTP サーバもあります。たとえば、ユーザアカウン
  トをシステム全体のパスワードファイルから独立してセットされるのを許すも
  のもあります(FTP オンリーのアカウント)。ビルトインの ls コマンドを最初
  から持っていて、特別なディレクトリツリーを chroot 構造内に必要としない
  ものもあります(たとえば ProFTPD や NcFTPd)。その他、標準 ftp の概念と
  は全く異なったものもあります。たとえば FTP4ALL はシステムパスワードを
  全く使いません。これには独自のユーザとグループファイルを使用し、アップ
  ロードとダウンロードの比率やカスタマイズできるサーバメッセージなどの機
  能があります。

  6.2.  FTP サーバについての助言

  6.2.1.  WU-FTPD

  WU-FTPD は Red Hat と Caldera や、その他たくさんの Linux ディストリ
  ビューションに含まれている FTP デーモンです。   で WU-FTPD についてもっと詳しいことを学べます。

  WU-FTPD FAQ は   で見
  つかります。

  6.2.2.  ProFTPD

  ProFTPD はアパッチ形式の設定、仮想ホストの広範囲サポート、インターナル
  ls を含むパワフルな FTP サーバです。

  完全なコマンドリファレンスとダウンロードは  
  で見つかります。

一覧に戻る
グリーンネット・トップページへ戻る

http://www.green.ne.jp/