目錄訪問規則
目錄訪問規則定義使用者帳號可以訪問的
系統目錄區域及相關目錄的許可權。與傳統的限制到使用者和群組等級的方式不同,Serv-U 通過全域目錄訪問規則的建立,將目錄訪問規則的使用擴展到網域和伺服器等級。設定目錄訪問規則時,繼承關係一樣重要,繼承的傳統應用規則為,在較低等級指定的規則(如使用者等級)可以覆蓋在較進階等級(如伺服器等級)的衝突或重複的規則。
設定目錄訪問路徑時,可以使用%USER%、%HOME%和%DOMAIN_HOME%變數簡化過程。例如,可以使用%HOME%/ftproot/建立目錄訪問規則,在使用者根目錄下指定"ftproot"資料夾。以這種方式指定的目錄訪問規則具有"可攜性",在實際的根目錄變更時,還能夠保持原有的子目錄結構。這將減輕檔案伺服器管理人的維護負擔。如果在路徑中指定了%USER%變數,該變數將被替換為使用者的登入ID。變數在指定群組根目錄時非常有用,可以確保使用者繼承符合邏輯且唯一的根目錄。最後,標識使用者根目錄時還可使用%DOMAIN_HOME%巨集。
目錄訪問規則按其列出的順序執行。Serv-U 碰到的清單中第一條符合使用者端路徑的規則,即執行該規則。換句話說,如果現有的規則拒絕訪問某個子目錄,但該規則位在授權訪問父目錄的規則之下,則使用者仍可以訪問該子目錄。目錄訪問清單右邊的箭頭用於重新排列規則使用的順序。
父目錄 --> 規則1:允許訪問
子目錄 --> 規則2:拒絕訪問
Serv-U 先執行規則1,所以會允許訪問子目錄。以下是清單和每種可用的訪問許可權的描述。
檔案許可權
- 讀
允許使用者讀取(即下載)檔案。該許可權不允許使用者列出目錄內容,執行該作業需要清單許可權。 - 寫
允許使用者寫入(即上傳)檔案。該許可權不允許使用者修改現有的檔案,執行該作業需要追加許可權。 - 追加
允許使用者向現有檔中追加資料(續傳動作)。該許可權通常用於使使用者能夠對部分上傳的檔進行續傳。 - 重命名
允許使用者重新命名現有的檔案名稱。以前版本的 Serv-U 要重命名檔需要移除和寫許可權。從 7.0 版本開始,重新命名成為明確的許可權。 - 移除
允許使用者移除檔。 - 執行
允許使用者遠端執行檔。執行訪問用於遠端啟動程式並通常應用於特定檔案。這是非常強大的許可權,在將該許可權授予使用者時需格外謹慎。具有寫和執行許可權的使用者實際上能夠選擇在您的系統上安裝任何程式。
目錄許可權
- 清單
允許使用者列出目錄中包含的檔案。 - 創建
允許使用者在目錄中新增子目錄。 - 重命名
允許使用者在目錄中重新命名現有子目錄。以前版本的 Serv-U 要重命名目錄需要移除和寫許可權。從 7.0 版本開始,重命名成為明確的許可權。 - 移除
允許使用者在目錄中移除現有子目錄。注意: 如果目錄包含檔案,使用者要移除目錄還需要具有移除檔案許可權。
子目錄許可權
- 繼承
允許所有子目錄繼承其父目錄相同許可權。繼承許可權適用於大多數情況,但是如果訪問必須受限於子檔資料夾,例如實施強制訪問控制(Mandatory Access Control)時,則取消繼承並為檔案資料夾逐一授予許可權。
配額許可權
- 目錄內容的最大尺寸
設定最大尺寸,動態地將目錄內容大小限制在指定的值以內。任何嘗試的檔案傳輸如果使目錄內容超過此限制值,則被拒絕。它作為傳統配額功能的替代功能,傳統功能依賴於追蹤所有的檔案傳輸(上傳和移除)以計算目錄大小,且無法在使用者檔伺服器活動以外考慮對目錄內容的變更。
範例1:強制訪問控制
當使用者需要訪問相同根目錄但不一定都能訪問其下的子目錄時,可啟用Serv-U強制訪問控制。
只需在根目錄禁用"繼承"許可權。(假設根目錄為"D:\ftproot")
\ <-- 根目錄許可權, 取消繼承
\upload\ <-- 自訂upload子目錄許可權
\public\ <-- 自訂pulic子目錄許可權
現在,使用者可以訪問 "ftproot" 檔案資料夾但不能訪問其下的子檔案資料夾。必須為使用者需要訪問的子檔案資料夾(upload, public)個別授予訪問許可權。
範例2:限制檔案類型
如果使用者使用 Serv-U 檔伺服器上的存儲空間儲存與工作無關的檔案,例如 MP3 音樂檔,通過組態目錄訪問規則並將其置於主目錄訪問規則之上(使用右邊的箭頭對規則重新排序)可以杜絕傳輸無關檔案。在規則的文字項目中輸入"*.mp3"(你要限制的檔案類型)並使用下列許可權:
範例3:允許檔案類型
與範例2相反,如果我們只允許"*.htm"檔案類型,但拒絕其他任何檔案類型。那會有二個步驟。
- 設定使用者根目錄或需要訪問目錄的清單許可
- 設定允許的檔案類型
這樣就能限定允許特定檔案類型進行上傳下載的動作,如果需要增加其他檔案類型,例如"*.doc",只需從第二條規則之後增加你要允許的檔案類型即可。
虛擬路徑
虛擬路徑允許使用者訪問根目錄
以外的檔案和資料夾。虛擬路徑僅定義一種方式,將現有目錄映射到系統中的其他位置,使使用者能夠在可訪問的目錄結構中看到該目錄。為了能夠訪問該映射的位置,使用者還是需要滿足對虛擬路徑物理路徑的目錄訪問規則。
舉例來說,原本我們設定使用者user1的根目錄為"D:\FTPRoot",而且目錄訪問規則、鎖定根目錄也都設定好了,所以user1的活動範圍只限定在根目錄("/")和底下的目錄。現在假設user1,除了根目錄的資源外,還需要存取另一根目錄外的"E:\Software"目錄,因為我們已經鎖定user1只能在根目錄活動,所以如果我們需要讓使用者也能存取根目錄以外的資源,那就需要使用「虛擬路徑」。
使用虛擬路徑,就如名稱一樣,你可以在根目錄下新增一個「虛擬」的目錄,但此目錄的「路徑」是對應到根目錄以外的路徑。此目錄就如同在根目錄底下一樣,user1在使用上不會有任何虛擬的感覺。
/ <-- 根目錄(D:\FTPRoot)
/Software <-- 虛擬路徑(E:\Software)
虛擬路徑一樣可以在伺服器、網域、群組和使用者等級進行組態。繼承、繼承、沒有繼承,Serv-U你會玩不下去。
物理路徑
物理路徑是作業系統或網路中的真實位置,可以置於可供使用者訪問的虛擬位置。如果物理路徑位於同一電腦上,應使用完整路徑,如 "D:\inetpub\ftp\public"。也可以使用 UNC 路徑,如 "\\Server\share\public"。為了使使用者能夠看到虛擬路徑,必須具有指定給物理路徑的目錄訪問規則。
虛擬路徑
虛擬路徑是應該向使用者顯示的物理路徑位置。通常在虛擬路徑中使用巨集 %HOME% 以將指定的物理路徑置於使用者根目錄中。指定虛擬路徑時,最後指定的目錄作為使用者目錄清單中顯示的名稱。例如,虛擬路徑 "%HOME%/public" 取代指定物理路徑中名稱為 "public" 的檔案資料夾,該檔案位於使用者的根目錄下。也可以使用不帶任何巨集的完整路徑。 包括在"最大目錄尺寸"計算範圍內
虛擬路徑包括在最大目錄尺寸計算範圍內。若未勾選,虛擬路徑不包括在最大目錄尺寸計算範圍內。最大目錄容量限制了目錄大小,從而影響可上傳的資料量。
範例:目錄訪問與虛擬路徑
我們在網域等級新增一位使用者,名為kkbruce,此人員除了原本享有根目錄下的資源外(G:\FTPRoot),kkbruce還負責網頁開發,而網頁預設路徑為"C:\inetpub\wwwroot",且公司除了IIS的網頁外,還有架設PHP網頁,PHP網頁路徑為"F:\wamp\www"。
步驟一:在網域區塊按下「創建、修改和移除使用者帳號」,進入使用者管理畫面。
步驟二:按下「添加」進入新增使用者畫面。
步驟三:新增使用者資訊。
步驟四:設定歡迎消息
步驟五:新增第一條根目錄訪問規則
這是第一個技巧所在,訪問路徑我們設定為「%HOME%」也就是代表「根目錄」的意思,
Serv-U會自動將%HOME%轉換為你所設定的根目錄,而使用者會看到"/"來代表根目錄。在根目錄,我們只給基本的讀(下載)和清單(列表)權限,且子目錄繼承此一屬性。完成後按下儲存。
設定成「%HOME%」的好處如之前所提,如果假設有一天系統硬碟容量不足,我們採購了新的硬碟,然後將所有資料夾由原本的"/G:/FTPRoot"複製到"/I:/FTPRoot",原本可能要修改許多地方例如:根目錄、目錄訪問、虛擬目錄…,但如果你使用巨集變數,只需要修改根目錄一項設定,那不管是目錄訪問、虛擬目錄都會自動轉換到新的根目錄之中,這樣是不是很方便。
步驟六:新增虛擬路徑設定
這是第二個技巧所在,在虛擬路徑中,一樣使用「%HOME%」巨集變數,也就是跟Serv-U說,
請將左邊的物理路徑轉換為虛擬路徑「根目錄\wwwroot」和「根目錄\phproot」,這樣在你登入時就會看到個目錄:
\ <-- 就是%HOME%所代表的路徑
\wwwroot <-- 就是%HOME%\wwwroot,把%HOME%換成"\",所以就是"\wwwroot"
\phproot <-- 就是%HOME%\phproot,把%HOME%換成"\",所以就是"\phproot"
這樣就很輕鬆設定好虛擬路徑。
步驟七:物理路徑的目錄訪問規則
最後一步驟,也是最容易忘記的步驟,記得,
這些虛擬目錄是外來的,不是在根目錄之下,所以根目錄的訪問規則對他們是無效的,所以切記要幫這些虛擬目鍵的物理路徑設定相關訪問規則。
步驟八:按下「保存」,完成所有設定。
步驟九:連接測試
FTP FileZilla Client 連接測試:
Serv-U Web連接測試:預設是在port 80,因為我電腦上有架IIS,所以我修改為port 8888。
輸入帳號、密碼,選擇你的語言,進入登入。
群組
我們把群組放到最後是因為,如果你前面的東西都了解了,那群組就很簡單了。群組組態設定的過程和新增使用者很像。就繼承關係來說,你可以新增全域群組與網域群組。就上例新增使用者的範例,如果今天網站開發新增多位生力軍,每一位都是相同的組態設定,那是否要一位一位設定。也是上個範例,如果今天需要變更根目錄,那也要一位一位做變更設定。那是非常不smart的事。
之前提過,群組就是俱樂部的觀念,把
相同組態設定放在群組中,然後把需要使用的人加入來繼承群組的組態。所以我們可以新增名稱為Web的群組,然後把上例使用者的所有組態設定加入Web群組中,然後你可以把原使用者的組態全部移除,再將使用者加入Web群組,最後測試連接。
你會發現,我們在使用者中並無任何組態,但因為
群組繼承的關係,所以使用者一樣可以正常運作無礙。而且如果我們只要修改群組中任何組態設定,所有加入群組的使用者就會自動一併變更組態。這做的設定及規劃是不是更smart。
整理個Serv-U介紹到這裡已經差不了,你可能會說,畫面上還有許多部份還沒介紹,而我在最前面時也說過,Serv-U裡最重要的是「繼承」,你學會了伺服器組態設定也就等於學會了網域組態設定,只是設定位置不同,作用地點不同。所以如果你把以上七章的抬頭修改為「網域組態」,然後把內文有關伺服器組態替代為網域組態,那就是「Serv-U -教學攻略--(8-14)網域組態--??」的後七章。
如果說,Serv-U有什麼比較難的地方,應該只有目錄訪問和虛擬目錄,還有另一個,在下一章,其實還會有最後一章,內容跟Serv-U組態比較無關,單純講「變數」這個東西。雖然Serv-U在非金版裡限制了許多功能,尤其是統計方面,但我們能透過變數去取得我們想要各項伺服器、網域相關統計資訊,是不是很棒!那我們最後一章見!