概要
Windows ServerのIISでユーザー毎にFTPルートを変更する方法。
Linuxと違ってホームディレクトリという考え方がないので、
特別な設定なしだと、全ユーザーで同じフォルダがFTPルートになってしまうため対応が必要。
設定
IISでFTPサイトを通常どおり設定して、下記を追加で設定。
「FTPユーザーの分離」→「ユーザー名物理ディレクトリ(グローバルな仮想ディレクトリを有効にします)」を選択
この設定をすると、
通常設定したFTPルート配下に存在する、「FTPユーザー名と同じ名前のフォルダ」が各ユーザーのFTPルートになります。
なおこの時、「FTPルートフォルダ > LocalUser > FTPユーザー名」という階層にする必要があります。
設定例
字面で書いても伝わりにくいので、以下に例を書きます。
この場合、「C:¥inetpub¥ftproot¥LocalUser¥ftpuser」という階層でフォルダを作成する必要があります。
すると、ftpuserのFTPルートが上記のフォルダに割り当てられます。
複数のFTPユーザーが存在する場合は、同じ要領で他のユーザーのフォルダも作成します。
FTPユーザーに対応するフォルダが作成されていない場合、そのユーザーはFTP接続できなくなります。
仮想ディレクトリの設定
単純にFTPルートを分けるだけならこれで問題ないが、
ユーザー毎にサーバーの別フォルダにアクセスさせたい場合を考える。
通常はFTPルート配下以外は参照できないが、
「仮想ディレクトリ」を設定することで、他の領域も参照できるようになる。
設定
IISマネージャーから「仮想ディレクトリの追加」で、エイリアスと物理パスをそれぞれ設定する。
仮想ディレクトリで作成した、エイリアスと同じ名称のフォルダを
FTPルート配下に作成しておくことで、対応する物理パスのフォルダを参照することが可能です。
この場合、「C:¥inetpub¥ftproot¥LocalUser¥ftpuser¥images」という階層でフォルダを作成する必要があります。
余談
chatGPTとかで調べたそこそこな精度で回答をもらえる時代になってきて、
こういった人が書いた雑多なコラムに何の意味があるのだろうかと自問しつつ、
書き手の意見だけど、書くことで自分の知識にできるから、
やっぱり無意味ではないよなって思いつつ書いてます。
知識 × AIがあれば最強では?