共用方式為


FTP 授權規則不會在 IIS 中的 FTP 站台中繼承使用者隔離設定

本文可協助您解決當 FTP 用戶隔離設定在月臺層級設定 FTP 用戶隔離時,不會繼承 FTP 授權規則的問題。

原始產品版本:網際網路資訊服務 7.5
原始 KB 編號: 4294477

徵兆

在 Microsoft 網際網路資訊服務 (IIS)中,如果 FTP 使用者隔離設定在月臺層級設定為 [使用者名稱實體目錄](啟用全域虛擬目錄),則 FTP 授權規則不會遵守應用程式的實體路徑,而且不會依資料夾結構繼承。

假設 IIS FTP 網站的使用者隔離設定為 [使用者名稱實體目錄](啟用全域虛擬目錄),並在 FTP 授權功能中授與所有使用者讀取許可權。 名為 Upload 的資料夾會在 下\FTP\Localuser\<user_name>\建立,而且會透過 IIS 中此 Upload 資料夾的 FTP 授權功能,授與所有使用者讀取和寫入許可權。 儘管有上傳資料夾的寫入許可權,但是當用戶名稱符合<路徑中user_name>資料夾的使用者嘗試上傳 [上傳] 資料夾中的檔案時,使用者會收到拒絕存取的錯誤訊息。

嘗試透過 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/Upload 路徑,而不是 FTP/LocalUser/<user_name>/Upload 設定 FTP 授權規則。 目錄剖析器會忽略 路徑 FTP/LocalUser/<user_name>/Upload 的一部分,因為這是用於隔離查閱。 因此,只有在使用者隔離資料夾以外的路徑上定義授權規則時,行為才會如預期般運作,例如 FTP/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 和更新版本中,而且此設定會遵循授權規則。