WindowsのFTPサーバでユーザーフォルダを設定する:Tech TIPS
IISのFTPサーバにログオンしたとき、ユーザー名と同じ名前のフォルダがあれば、そこがカレント・フォルダとなる。ユーザー・フォルダは、FTPルート直下の物理的なフォルダでもよいし、仮想ディレクトリでもよい。ただしcd /を実行すると、FTPのデフォルト・ルートへ移動することができるので、ユーザーごとに完全に分離されるわけではない。
対象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のルート・フォルダがカレント・フォルダとなっている。
■この記事と関連性の高い別の記事
- IIS 6.0のFTPサーバでユーザー・フォルダを分離する(基本編)(TIPS)
- FTPの仮想ディレクトリに対応するフォルダを作成する(TIPS)
- Windowsでエクスプローラーを使ってFTPサーバーにアクセスする方法(TIPS)
- IIS 6.0のFTPサーバでユーザー・フォルダを分離する(Active Directory編)(TIPS)
- アカウントを指定してFTPサイトへ接続する(TIPS)
- Windowsのftpコマンドをスクリプトで使う(TIPS)
- IISの標準FTPバナー・メッセージを表示させない(TIPS)
- FTPの標準ポート番号を変更する(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.