web-dev-qa-db-ja.com

IIS CIFS共有上のFTPパススルー認証仮想フォルダー

WebサーバーでFTP公開を作成しましたが、機能させるのに問題があります。一部のユーザーは、ファイルのアップロード時に550エラーが発生します。ファイルを閲覧できるため、読み取りアクセスは機能しているようです。

FTP認証では、匿名を無効にし、ドメインをデフォルトドメインとして設定して標準認証を有効にしました。

FTP認証は、「すべてのユーザー」の読み取り/書き込みアクセスに設定されています。

FTPユーザー分離が「ユーザー名ディレクトリ」に設定されている

これで、wwwrootと同じレベルのdummyftprootフォルダーを指す「ドメイン名」仮想ディレクトリが作成されました。

その仮想ドメインフォルダーの下に、プロジェクトのCIFS共有上のフォルダーを指す「ユーザー名」仮想ディレクトリを作成します。アプリケーションユーザーとして接続するためのパススルー認証を設定します。

これは、アプリケーションプールIDユーザーがCIFS共有にアクセスし、フォルダーの読み取り/書き込みを行っていることを意味すると思いました。そして、すべてのユーザーが自分のアカウントを持っているわけではありません。これは本当ですか?

どのユーザーが実際に共有にアクセスしているかを監視するにはどうすればよいですか?ドメインユーザーとして書き込まれたファイルが表示されます。

代わりにアプリケーションプールIDを使用するようにこれをどのように構成する必要がありますか?

敬具

1
spankmaster79

私が見つけたように、これには2つの解決策があります。

  1. 「パススルー」認証が選択されている場合は、ファイル共有にアクセスするすべてのユーザーに正しいアクセス許可を設定します。その場合、FTPサーバーに接続しているユーザー名がファイル共有へのアクセスに使用されるためです。

  2. 読み取り/書き込みアクセス権を持つファイル共有にアクセスできる「特定のユーザー」を設定します。

当社では、サイトを実行している各Webサイトにユーザーがいるため、最終的にアプリケーションプールIDユーザーを使用しました。

0
spankmaster79

物理フォルダーのパスにどのようなアクセス許可を設定しましたか? FTP権限について言及しましたが、設定したNTFS権限がないため、デフォルトの「MACHINE\Users」には読み取りアクセス権がありますが書き込みはできません。

アプリケーションプールに触れる必要はありません。とにかく、アプリケーションプールはWebサイトにのみ適用され、FTPサーバーには適用されません。誤解しましたか?

ファイルアクセスで何が起こっているかを確認したい場合は、 ProcessMon を使用すると、起こっていることすべてとその結果が表示されます。

1
0x0000001E