この記事は、FTP ユーザー分離がサイト レベルで構成されている場合に、FTP 承認規則がユーザー分離設定で継承されない問題を解決するのに役立ちます。
元の製品バージョン: インターネット インフォメーション サービス 7.5
元の KB 番号: 4294477
現象
Microsoft インターネット インフォメーション サービス (IIS) で、ftp ユーザー分離がサイト レベルで ユーザー名の物理ディレクトリ (グローバル仮想ディレクトリを有効にする) に構成されている場合、FTP 承認規則はアプリケーションの物理パスに準拠せず、フォルダー構造に従って継承されません。
IIS FTP サイトのユーザー分離が ユーザー名の物理ディレクトリ (グローバル仮想ディレクトリを有効にする) に設定されており、FTP 承認機能では、すべてのユーザーに読み取りアクセス許可が付与されているとします。 \FTP\Localuser\<user_name>\
の下に Upload という名前のフォルダーが作成され、この Upload フォルダーの IIS の FTP 承認機能を通じてすべてのユーザーに読み取りおよび書き込みアクセス権が付与されます。 Upload フォルダーへの書き込みアクセス許可があるにもかかわらず、パス内の <user_name> フォルダーと一致するユーザーが Upload フォルダーにファイルをアップロードしようとすると、ユーザーは Access denied エラー メッセージを受け取ります。
Windows に含まれているコマンド ライン FTP ユーティリティを使用して FTP ファイルをアップロードしようとした場合の出力は、次のようになります。
ftp> cd upload
250 CWD command successful.
ftp> put c:\file_name.txt
200 EPRT command successful.
550-Access is denied.
Win32 error: Access is denied.
Error details: Authorization rules denied the access.
550 End
原因
この動作は仕様です。 FTP ユーザー分離 ユーザー名の物理ディレクトリ (グローバル仮想ディレクトリを有効にする) 設定により、従来の IIS 6 機能との下位互換性が確保されます。
解決方法
目的の動作を取得するには、ユーザー分離フォルダーの外部にある別のフォルダーを使用し、そのフォルダーに必要な FTP 承認規則を設定します。 ユーザー名の物理ディレクトリ (グローバル仮想ディレクトリを有効にする) 分離を使用する FTP サイトの場合は、FTP 承認規則の設定にFTP/LocalUser/<user_name>/Upload
ではなく、FTP/Upload
パスを使用します。 ディレクトリ パーサーは、分離参照に使用されるため、 FTP/LocalUser/<user_name>/Upload
のパスの一部を無視します。 したがって、この動作は、 FTP/Upload
例のパスなど、ユーザー分離フォルダーの外部のパスで承認規則が定義されている場合にのみ、期待どおりに動作します。 この方法では、承認はすべてのユーザーの Upload フォルダーに適用されます。
ApplicationHost.config ファイルの承認規則の例を次に示します。
<location path="FTP/Upload">
<system.ftpServer>
<security>
<authorization>
<remove users="*" roles="" permissions="Read" />
<add accessType="Allow" users="*" permissions="Read, Write" />
</authorization>
</security>
</system.ftpServer>
</location>
この構成を持つ FTP サイトにドキュメントをアップロードしようとすると、Windows の FTP コマンド プロンプト ユーティリティからの出力は次のようになります。
ftp> cd upload
250 CWD command successful.
ftp> put c:\file_name.txt
200 EPRT command successful.
125 Data connection already open; Transfer starting.
226 Transfer complete.
ftp: 14 bytes sent in 0.00Seconds 14000.00Kbytes/sec.
ユーザー分離 ユーザー名の物理ディレクトリ (グローバル仮想ディレクトリを有効にする) 設定は IIS 6 から継承され、正しいフォルダー構造に従っていません。 別の分離モード ユーザー名ディレクトリ (グローバル仮想ディレクトリを無効にする) は IIS 7 以降のバージョンに存在し、この構成は承認規則に従います。