作者:Chris Crowe,Trimble Navigation New Zealand Ltd. 資料庫管理員
《IIS Insider》是每月專欄,專為您解答關於疑難排解及善加利用 Microsoft Internet Information Services (IIS) 的問題。

本文中舉例的公司、組織、產品、網域名稱、電子郵件地址、商標、人物、地點及事件均屬虛構。如有雷同,純屬巧合。
| 問 | 我在自己的 FTP 網站上添加了虛擬目錄,但是使用者瀏覽我的 FTP 網站時還是見不著目錄,這是為什麼呢? |
| 答 | Microsoft FTP Server 有一項「功能」,使用者在目錄清單中看不見虛擬目錄,而這和 IIS Web Server 處理虛擬目錄的方法恰恰相反,搞得許多人暈頭轉向。 這種情形造成目錄被隱藏起來,但如果您使用 FTP CWD 命令,又能夠瀏覽新的虛擬目錄了。 為了在瀏覽 FTP 網站的同時看見目錄,您必須在 FTP 網站的同一階層以同樣的名稱建立一個實體目錄。這樣一來,使用者瀏覽您的網站時就會看見目錄,接著透過 CWD 進入目錄,虛擬目錄設定中的實際詳細資料就會優先採用,這時使用者就能進入資料夾,而非實體目錄。 附註: 待 FTP 伺服器納入 IIS 7 後,相信這項限制就會順利解決 |
| 問 | 我在 FTP 網站上建立了實體目錄,但是目錄卻不會顯示在 FTP 介面上,因此無法進行管理。為什麼會發生這種情況?又該如何處理呢? |
| 答 | Microsoft FTP Server 有一項「功能」,實體目錄不可以透過所在的 FTP 管理介面進行管理,這和網站的情形恰恰相反。這項限制對於設定目錄的工作,例如讀取/寫入存取,或是設定目錄相關的安全性帳戶會造成阻礙。 解決辦法是建立一個和實體目錄同名的虛擬目錄。虛擬目錄建立後,您就可以透過 FTP 管理工具調整相關設定。 只要實體目錄和虛擬目錄都指向同一個位置,使用者就可以瀏覽您的網站,無須知道這項「功能」的存在。 附註: 待 FTP 伺服器納入 IIS 7 後,相信這項限制也會順利解決 |
| 問 | 我想多了解 IIS 6 內附的 Microsoft FTP Server 所具備的使用者隔離模式。我嘗試登入自己的 FTP 網站,結果全然「無法存取使用者主目錄」,不知道該設定哪一個資料夾。您有辦法解決嗎? | ||||||||||||||||||||||||||||||||||||||||||||||||
| 答 | IIS 6.0 版內附的 Microsoft FTP Server 添加了使用者隔離。也就是說,使用者隔離只在 Windows Server 2003 系列產品提供,未來的版本也會支援這項功能。 建立 FTP 網站時,有三種使用者隔離選項可供使用。這些設定只有在建立新的 FTP 網站時才能夠進行,如果您想要變更模式,得透過指令碼編輯 IIS 組態資料庫,否則只有刪除現有的 FTP 網站再建立新網站一途。 IIS 6 提供的三種使用者隔離模式為:
勿隔離使用者 預設的「勿隔離使用者」選項表示任何登入 FTP 網站的使用者都可以存取 FTP 網站內的所有資料夾 (只要使用者帳戶具有適當的 NTFS 權限可存取資料夾)。這也意味著使用者登入後,FTP 網站的主目錄中如果有一個與使用者帳戶同名的資料夾,使用者就會自動被引導至該目錄。這時使用者就可以使用 FTP 命令 "CWD /" 前往 FTP 網站的根目錄。這種在您登入後自動引導您進入資料夾的功能無法停用。 隔離使用者 「隔離使用者」選項會將使用者導入一個資料夾,而且這資料夾會在使用者工作階段中成為 FTP 網站的根目錄。使用者被隔離了,無法回到 FTP 網站實際的主目錄。 依據不同的伺服器的設定,會有各種差異,(如下所示):
上表的重點在於:
下面是資料夾位置的範例:
附註: 上面只要有參考到網域,請將它改成您 Windows 網域的名稱。 附註: 以隔離使用者建立 FTP 網站時,您必須建立 LocalUser 或 Domain 資料夾,也要建立所有的使用者帳戶資料夾。 使用 Active Directory 隔離使用者 「使用 Active Directory 隔離使用者」選項會將使用者導入一個資料夾。這資料夾是由 Active Directory 內的兩個屬性定義,而且會在使用者工作階段中成為 FTP 網站的根目錄。使用者無法回到 FTP 網站實際的主目錄。 這種模式下,Active Directory 伺服器必須在 Windows Server 2003 系列產品的作業系統中執行。您亦可使用 Windows 2000 Active Directory,但需要手動延伸使用者物件結構描述,因為它在 Windows 2000 Active Directory 中無法還原。 Active Directory 的兩個屬性分別為:
建議代管服務供應商和需要維護大量 FTP 使用者資料夾的公司使用 Active Directory 進行使用者隔離。要驗證使用者的主資料夾,基本上需要查詢 Active Directory 中使用者物件的 msIIS-FTPRoot 和 msIIS-FTPDir 屬性。msIIS-FTPRoot 和 msIIS-FTPDir 所串連的值即形成使用者主資料夾的路徑。 舉例來說:
如此即產生使用者的主資料夾 "D:\FTP Users\JohnSmith"。 附註:磁碟機代號指的是 FTP 伺服器電腦上的磁碟機。 附註:您亦可指定 UNC 路徑作為連接至另一台伺服器的 msIIS-FTPRoot 值,例如伺服器 LAN 上的檔案伺服器。 這項彈性允許您隨時變更使用者的根資料夾,無須修改 FTP 伺服器的設定,只要替特定使用者修改 Active Directory 內的 msIIS-FTPRoot 屬性即可。您可以採用好幾種方式 (VBScript、.NET Framework 等) 輕鬆地操作 Active Directory,因此可以快速地變更多位使用者的設定。把使用者的 FTP 資料夾搬到其他的位置並非難事,只要在 Active Directory 內更新相關的 msIIS-FTPRoot 屬性就可以了。 您可以到 Chris Crowe 的網誌下載原始程式碼為 C# 的 FTP User Editor 應用程式,這是一個非常簡單的 GUI 前端程式,可以輕鬆地控制 msIIS-FTPRoot 和 msIIS-FTPDir 的屬性。下載連結請見本專欄右上角的「相關連結」部分。 附註:從 Active Directory 擷取的資訊依預設每十秒由 FTP 服務快取。 附註:上面只要有參考到網域,請將它改成您 Windows 網域的名稱。 附註:如果主控 FTP 服務的伺服器也是網域控制站 (如 Microsoft Small Business Server),請確定使用者有足夠的權限登入伺服器。 |
將您的問題提交到 IIS Insider (英文),我們並無法保證會回覆所有問題,但會挑選和解答一些問題,並發佈於《IIS Insider》專欄中。
請參閱《IIS Insider》專欄過往文件 (英文)以取得這幾個月來的問答清單。
我們謹代表 Microsoft Corporation 期盼本文能提供您寶貴的資訊。然而您必須自行承擔使用本文資訊的風險。本文的所有資訊僅以「現況」提供,對於其準確性、完整性、特殊用途的適用性、權利或無害性,不提供任何明示或默示的擔保 ,且 Microsoft Corporation 並未編寫、建議、支援或保證本文所提之協力廠商產品或資訊。Microsoft Corporation 對於使用此處資訊而導致之任何損害,無論是直接、間接、特殊、偶發或衍生性傷害,即使 Microsoft Corporation 曾接獲這類傷害的通知,概不負責。