FTPの仮想ディレクトリに対応するフォルダを作成する【Windows OS】Tech TIPS

IISのFTPの仮想ディレクトリ機能を利用すると、実際には存在しないフォルダへユーザーを誘導できる。しかし仮想ディレクトリを作成しても、dirコマンドでは表示されないので、実際にどのよなフォルダが存在するかを把握するのは困難である。このような場合は、仮想ディレクトリに対応する実際のフォルダを、ダミーで作成しておくとよい。仮想ディレクトリを使えば、ユーザーに見せたくないフォルダを隠ぺいできる。

» 2006年04月08日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

FTPの仮想ディレクトリに対応するフォルダを作成する【Windows OS】

対象:IIS 5.0/IIS 6.0


FTPの仮想ディレクトリに実在のフォルダがあるように見せたい

 IISのFTPサーバには、サイト中に「仮想ディレクトリ」を作成する機能がある。これは、別のフォルダへ誘導するための仮想的なリンクを作成する機能である。

 例えば、デフォルトで作成されるFTPサイト(「既定のFTPサイト」)の中に、「/data1」という仮想ディレクトリを作成しておく(リンク先はC:\Data1とする)。

FTPサイト中に作成した仮想ディレクトリの例 FTPサイト中に作成した仮想ディレクトリの例
ここでは、デフォルトのFTPサイト(実際のフォルダはC:\Inetpub\ftproot)の中に、いくつかの仮想ディレクトリを作成している。仮想ディレクトリ機能を利用すると、任意のドライブやパス上へ誘導できる。
  (1)デフォルトのFTPサイト。
  (2)作成した仮想ディレクトリ。物理ディレクトリとは違い、FTPサーバ上に仮想的に存在している。
  (3)仮想ディレクトリの一覧。階層的に構築する(ほかの物理ディレクトリや仮想ディレクトリの下に作成する)こともできる。
  (4)実際の物理的なフォルダのパス。デフォルトのFTPサイトの場所(C:\Inetpub\ftproot)とはまったく違う場所になっている。

 このように設定されたFTPサイトにユーザーがログオンし、dirコマンドを実行してみても、(デフォルトのままだと)何もファイルやフォルダは表示されない。「既定のFTPサイト」であるC:\Inetpub\ftprootには何もデータがないので、これは当然である。

C:\>ftp 10.1.1.11 ……FTPサイトへ接続する
Connected to 10.1.1.11.
220 Microsoft FTP Service
User (10.1.1.11:(none)): ftp
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230 Anonymous user logged in.
ftp> pwd ……デフォルトの位置の確認
257 "/" is current directory. ……ルートにいる
ftp> dir ……内容を表示してみる
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete. ……何も存在しない
ftp>



 しかし、cd /data1を実行すれば、実際にはユーザーはC:\Data1というフォルダへ誘導され、そのフォルダの中にあるデータへアクセスできる。

ftp> cd /data1 ……仮想ディレクトリの1つへcdしてみる
250 CWD command successful.
ftp> pwd ……移動先の確認
257 "/data1" is current directory. ……移動している
ftp> dir ……内容の確認
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
04-03-06  01:38PM                  381 file1_in_data1.txt
04-03-06  01:38PM                  437 file2_in_data1.txt
04-03-06  01:39PM                  493 file3_in_data1.txt
226 Transfer complete.
ftp: 177 bytes received in 0.00Seconds 177000.00Kbytes/sec.
ftp>



 このように、仮想ディレクトリを作成しても、実際にはそれらのディレクトリ(フォルダ)が見えるようになるわけではないので、FTPユーザーにとっては使いづらい。cdを実行しようにも、どのような(仮想)ディレクトリが存在するかが分からないからだ。

 実は、これを解決する非常に簡単な方法がある。仮想ディレクトリに対応する、実際のフォルダ(ダミーのフォルダ)を作成しておけばよいのだ。こうすれば、FTPユーザーがdirコマンドを実行した場合には、そのフォルダが表示されるので、どのようなフォルダが存在するかが簡単に分かるようになる。ダミーのフォルダが存在していても、cdコマンドで移動すれば実際には仮想ディレクトリの先に誘導されるので、何の問題もない。

仮想ディレクトリに対応する実際のフォルダの作成

 仮想ディレクトリに対応する物理的なディレクトリ(フォルダ)を作成する方法は、非常に簡単である。単にエクスプローラやコマンドプロンプトのmkdirコマンドを使って、空のフォルダを作成するだけである。フォルダ中に何もデータを入れておく必要はない。こうやって作っておけば、FTPユーザーがdirコマンドを実行すると、それがフォルダとして表示されるようになる。先の例だと、次のようなダミーフォルダを作成しておけばよい。

作成したダミーのディレクトリ(フォルダ) 作成したダミーのディレクトリ(フォルダ)
仮想ディレクトリに対応する、実際の物理的なディレクトリを作成したところ。フォルダの内容は空のままでよい。
  (1)デフォルトのFTPサイトのルート。IISインストール時のデフォルトでは%SystemDrive%\Inetpub\ftprootとなる。
  (2)作成したダミーのフォルダ。
  (3)仮想ディレクトリの実際のリンク先。
  (4)これらのフォルダはダミーであり、ユーザーがcdコマンドを実行すると、仮想ディレクトリのリンク先へ誘導される。

 このようにしておけば、FTPユーザーには次のように見えることになる。

ftp> cd / ……ルートへ移動する
250 CWD command successful.
ftp> dir ……リストを表示してみる
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
04-03-06  02:11PM       <DIR>          data1 ……フォルダの一覧が表示される
04-03-06  02:11PM       <DIR>          data2
04-03-06  02:11PM       <DIR>          document
04-03-06  02:11PM       <DIR>          userhome
226 Transfer complete.
ftp: 190 bytes received in 0.00Seconds 190000.00Kbytes/sec.
ftp> cd /data1 ……cdする先を簡単に把握できる
250 CWD command successful.
ftp>



 先ほどは見えなかったdata1やdata2といった仮想ディレクトリが、まるで実際に存在するかのように見ることができる。

見せたくないフォルダを仮想ディレクトリで隠ぺいする

 以上の方法を逆にとって、ユーザーに見せたくない実際のフォルダを、仮想ディレクトリを使って隠ぺいすることも可能である。例えば、特定のユーザーにしか見せたくないデータを「D:\secret123」というフォルダに保存し、そこへの仮想ディレクトリを新規作成しておく(もちろんこれに対応する物理ディレクトリは作成しないようにする)。そうすれば、このパスを知っているFTPユーザーだけが、データへアクセスできる。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。