次の方法で共有


FTP 承認規則は、IIS の FTP サイトでユーザー分離設定と共に継承されない

この記事は、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 以降のバージョンに存在し、この構成は承認規則に従います。