WindowsのFTPサーバでユーザーフォルダを設定するTech TIPS

IISのFTPサーバにログオンしたとき、ユーザー名と同じ名前のフォルダがあれば、そこがカレント・フォルダとなる。ユーザー・フォルダは、FTPルート直下の物理的なフォルダでもよいし、仮想ディレクトリでもよい。ただしcd /を実行すると、FTPのデフォルト・ルートへ移動することができるので、ユーザーごとに完全に分離されるわけではない。

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

連載目次

対象OS:Windows 2000 Server/Windows XP Professional/Windows Server 2003



解説

 IISのFTPサーバでは、FTPログオン時に、ユーザー名と同じ名前のフォルダへ自動的に移動する(cdする)機能が用意されている。

 例えば、user01という名前でFTPサーバにログオンしたとき、/user01という名前のフォルダがあれば、そのフォルダがデフォルトの場所(カレント・フォルダ)となる。これにより、ユーザーは、ログオンしてすぐに各自のフォルダへアクセスすることができる。設定するユーザーのフォルダの場所は、共有ファイル・サーバ上の各ユーザーのホーム・ディレクトリと一致するように設定しておけば、FTPとファイル共有のどちらでも、同じようにアクセスすることができ、便利である。本TIPSでは、具体的な設定方法について解説する。

 ただし、この機能は簡易的なものであり、ユーザー・フォルダを厳密にユーザーごとに分離するものではない。FTPで接続した直後のデフォルトのフォルダ位置が、ユーザー名のフォルダになる、というだけのものである。そのため、FTPクライアントで「cd /」といったコマンドを実行すると、FTPのルート・フォルダに移動することもできるし、(適切なアクセス権があれば)ほかのユーザーのフォルダに移動/アクセスすることもできる。

 これを防ぎ、ユーザーごとに完全に分離するには、IIS 6.0(Windows Server 2003のIIS)のユーザー分離モードを利用する必要がある。その方法については、関連記事を参照していただきたい。

操作方法

 FTPサイトにログオンした直後に、ユーザーごとのデフォルト・フォルダへ移動するには、特にFTPサーバ(IIS)側の設定は必要ない。IISに含まれるFTPサービスは、デフォルトではこの機能が有効になっているからだ。管理者が行うべき作業は、ユーザー名に対応するフォルダを作成したり、仮想ディレクトリを設定したりするだけである。

●方法1:ユーザー名のフォルダを直接作成する

 FTPサービスをインストールすると、デフォルトではC:\Inetpub\ftprootがFTPのホーム・フォルダ(FTPにログオンしたときの初期フォルダ)となっている。もしこの場所をそのままFTPサービスで利用するなら、この中にユーザー名のフォルダを作成しておく。しかし、C:ドライブを避けて別のドライブやフォルダにしたい場合は、「既定のFTPサイト」の[プロパティ]でフォルダ・パスを変更するか、方法2で述べる仮想ディレクトリを設定する。ここでは、デフォルトのFTPフォルダの中に、ユーザーごとのフォルダを作成してみよう。

 デフォルトのFTPフォルダの下にユーザー名のフォルダを作成すると、それがそのままユーザーのフォルダとして利用される。具体的には、次のようなフォルダを作成しておけばよい。

ユーザーに対応するフォルダを作成する ユーザーに対応するフォルダを作成する
デフォルトのFTPルート・フォルダの直下に、ユーザー名と同じ名前のフォルダを作成しておくと、ログオンしたユーザーのデフォルト・フォルダとなる。
  (1)FTPのルート・フォルダ。デフォルトではWindows OSをインストールしたドライブの\Inetpub\ftprootとなっている。
  (2)作成したユーザーごとのフォルダ。

●方法2:ユーザー名の仮想ディレクトリを作成する

 デフォルトのFTPフォルダを使用せず、すでに存在する別の場所をユーザー・フォルダとして使用している場合は、FTPサービスの仮想ディレクトリ機能を利用するとよい。仮想ディレクトリとは、シンボリック・リンクのようなもので、(ローカル・コンピュータ上の)別フォルダへアクセスを振り向ける機能を持つ。これを利用して、ユーザーごとのフォルダ名を、例えばD:\Home\user03やD:\Home\user04といったフォルダへ振り向けるとよい。仮想ディレクトリを作成するには、FTPサイトのウィンドウで[操作]メニューから[新規作成]−[仮想ディレクトリ]を実行すればよい。

ユーザーに対応する仮想ディレクトリを作成する ユーザーに対応する仮想ディレクトリを作成する
物理的なフォルダを作成するのではなく、仮想ディレクトリを作成してもよい。
  (1)FTPサイト。
  (2)FTPサイトの直下に作成した、ユーザー名と同じ名前を持つ仮想ディレクトリ。[操作]メニューから[新規作成]−[仮想ディレクトリ]を選択して作成する。
  (3)仮想ディレクトリの参照先パス。

 このような仮想ディレクトリをユーザーの数だけ作成しておく。

 なお、仮想ディレクトリはdirコマンドは表示されないので、ユーザーにとっては不便である。可能ならばTIPS「FTPの仮想ディレクトリに対応するフォルダを作成する」の方法を使って、仮想ディレクトリに対応する実フォルダを作成しておくと、cdコマンドなどで移動するのが容易になる。

●FTPコマンドの実行例

 以下に、FTPでログオンした場合の例を示す。ログオン直後には、カレント・フォルダがユーザー名のフォルダになっていることが分かるだろう。ただし、「cd /」とするとFTPのルート・フォルダに移動するし、ほかのユーザーのフォルダへも移動することができる。

C:\>ftp server1 …FTPサーバへの接続
Connected to server1.example.co.jp.
220-Microsoft FTP Service
220 Example Domain FTP Server.
User (server1.example.co.jp:(none)): user03 …user03でログオン
331 Password required for user03.
Password:
230 User user03 logged in. …ログオン成功
ftp> pwd …ログオン後はユーザー・フォルダにいる
257 "/user03" is current directory.
ftp> dir …ファイル一覧の表示
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
06-26-06  11:28AM                  594 testfile.txt
226 Transfer complete.
ftp: 53 bytes received in 0.00Seconds 53000.00Kbytes/sec.
ftp> cd / …FTPルートへ移動してみる
250 CWD command successful.
ftp> pwd …移動後のフォルダの確認
257 "/" is current directory. …FTPルートにいる
ftp> dir …FTPルートの内容の確認
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
06-26-06  11:17AM       <DIR>          user01 …実フォルダのみが表示されている。仮想ディレクトリは見えない。
06-26-06  11:17AM       <DIR>          user02
226 Transfer complete.
ftp: 94 bytes received in 0.00Seconds 94000.00Kbytes/sec.
ftp>



 匿名ユーザー(ユーザー名ftpもしくはanonymous)でログオンした場合や、該当するフォルダや仮想ディレクトリが存在しない場合は、ログオン直後はFTPのルート・フォルダがカレント・フォルダとなっている。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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