Q : 雷電FTPD虛擬檔案系統完全征服

快速導覽/簡介/基礎篇/多磁碟機篇/使用者專屬目錄篇/帳號申請區篇/番外篇

第一章 簡介

雷電FTPD虛擬檔案系統可謂Windows上FTP伺服器有史以來功能最強大最完整的一套 , 但是隨之而來的也就較難設定 , 今天我們將徹底的為您解答您心中所有的疑問 , 首先 , 必須對一些名詞作出定義

Windows檔案系統 : Windows作業系統用來管理你所有儲存媒體的一套系統 , 它可以方便使用者存取放在磁碟機 , 硬碟 , 光碟 , 網絡磁碟等等上的檔案與目錄

實 體 路 徑 : 採 用Windows原 始 的 方 式 來 表 示 一 個 檔 案 或 是 目 錄 的 路 徑 , 常 見 的 只 有 兩 種 方 式 , 第 一 是 以 磁 碟 機 符 號 開 頭 例 如

c:\temp\xxx.zip (表 示 一 個 檔 案 的 實 體 路 徑)

第 二 種 乃 是UNC方 式 , 通 常 用 於 網 絡 磁 碟 機 路 徑

\\SERVERNAME\\PATH\\xxx.zip (SERVERNAME通 常 為 微 軟 網 絡 之 電 腦 名 稱 , PATH 為 其 公 開 出 的 共 享 路 徑 , xxx.zip 為 該 路 徑 下 的 一 個 檔 案)

雷電FTPD虛擬檔案系統 : 本系統之設計 , 完全就是針對Windows檔案系統直接拿到FTP伺服器下開站會碰到的種種難題 , 提出完整的解決方案 , 在雷電FTPD虛擬檔案系統之下 , 使用者看到的乃是一個全虛擬的樹狀目錄結構 , 全部的路徑皆以虛擬路徑方式表示

虛 擬 路 徑 : 採 用 類 似UNIX(tm)原 始 的 方 式 來 表 示 一 個 檔 案 或 是 目 錄 的 路 徑 , 完 全 以 / 開 頭 例 如

/ (所 謂 的 虛 擬 路 徑 根 目 錄 , root directory)

/Upload (表 示 一 個 目 錄)

/Upload/a.txt (表 示 一 個 檔 案)

為什麼要使用雷電FTPD虛擬檔案系統 ?

因為他完全針對FTP開站設計 , 可以完全隱藏你電腦中所有的實體路徑以及磁碟機符號 ,使用它之後 , FTP用戶再也無法知道他存取的虛擬路徑被對應到哪個實體路徑 , 因為他完全被隱藏起來 , 檔案列表中再也不會出現一些難看的 C: , D: 等等符號 , 它更支援檔案等級的檔案擁有者判定 (註:可以完全記載及顯示虛擬路徑中任何檔案的上傳者為哪一個使用者 , 而不像其他Windows下的FTP伺服器一樣完全無法由目錄列表判斷誰傳了什麼檔) , 除此之外他還有各種各樣先進的功能不勝枚舉 , 以下為一簡單的虛擬路徑架構的圖解

第二章 基本篇

首先我們將教各位最簡單的架構 , 也就是你的虛擬檔案系統架設在你硬碟中的單一目錄之下 , 也就是你只用一台硬碟 , 一個目錄來開站 , 這實在簡單不過了 , 假設你的伺服器已經設定完成 , 在主畫面中選單內 , 點 設定 - 虛擬檔案系統 , 就會進入以下畫面

這邊稍微注意一下 , 這個畫面乃全空 , 不過若是您用 setup wizard 產生 , 他已經會預設一些東西了 , 好的 , 不論如何 我們現在開始設計站台之 / 虛擬根目錄 , 假設 :

站台實體根目錄為 C:\FTP , 我們不希望人家在這邊亂建一些目錄 , 我們另外想開放一個 /Uploads 目錄讓使用者可以上傳檔案 ..

首先 我們建立根目錄的連結點 , 如下圖 , 設定完成後按下 新增按鈕 (注意我們改變了哪些地方) , 目錄擁有者以及目錄擁有群組 , 我們分別設定為站長 USER ID , 以及站長 GROUP ID , 注意 , 不要使用空白字元

按下新增後可能會要求說要建立必要目錄 , 點選 YES 即可

當你建立完成之後 , 我們在主視窗內會看到有一個新的 ITEM 被加入 , 現在我們來設定 /Uploads 路徑 , 如下圖

注意黃色部分的設定與根目錄不相同 , 因為這個目錄要允許一般人上載檔案 , 同樣的 , 最後點擊 新增 按鈕即可 , 完成之後你的設定將如下

你的設定 , 暫時這樣就算完成了 , 現在要在選單中 檔案 - 存檔 , 之後再離開 即可 , 現在我們回顧一下本節中設定的結果如下條列

  • 站台跟目錄 / , 除了站長之外別人都不可見目錄 , 上傳檔案到此之下
  • 站台虛擬路徑 /Uploads , 大家都可以上傳到此 , 使用者只能刪除自己上傳的檔案 , 對於別人上傳的檔案則擁有續傳的能力
  • 伺服器實體根目錄 C:\FTP 被建立
  • 伺服器實體目錄 C:\FTP\Uploads 被建立
  • 虛擬檔案系統設定檔 default.vfs 被存檔到 f:\temp\default.vfs

第三章 多磁碟機篇

本章中我們將延續上一章的設定 , 將站台虛擬檔案系統擴充到使用多台磁碟機中分布的許多目錄 , 首先 , 我們假設現在要把 D:\Music 目錄對映到 虛擬路徑的 /Music , 也就是說 , 使用者剛登入站台時 , 他位於 / 之下 , 所以實際上他是位於 C:\FTP 之下 , 但是只要使用者一切換目錄 CWD /Music , 我們希望他能被帶到 D:\Music 之下 , 這該如何做到呢 ? 另外 , 我們假設這個目錄是不准人亂寫入亂動的 , 因此我們將只開放 READ 權限 , 現在請依下圖方式設定

同樣的 , 按下新增按鈕 , 並且讓系統建立相對應的目錄 C:\FTP\Music , 完成之後你的設定將如下

你的設定 , 暫時這樣就算完成了 , 現在要在選單中 檔案 - 存檔 , 之後再離開 即可 , 現在我們回顧一下本節中設定的結果如下條列 , 紅色部分乃本章新增的項目
  • 站台跟目錄 / , 除了站長之外別人都不可見目錄 , 上傳檔案到此之下
  • 站台虛擬路徑 /Uploads , 大家都可以上傳到此 , 使用者只能刪除自己上傳的檔案 , 對於別人上傳的檔案則擁有續傳的能力
  • 站台虛擬路徑 /Music , 大家都可以進入此目錄 , 使用者只能在此下載 , 並無法上傳到此或是刪除任何檔案
  • 伺服器實體根目錄 C:\FTP 被建立
  • 伺服器實體目錄 C:\FTP\Uploads 被建立
  • 伺服器實體目錄 C:\FTP\Music 被建立
  • 虛擬檔案系統設定檔 default.vfs 被存檔到 f:\temp\default.vfs

第四章 使用者專屬目錄

一個真正服務週到的FTP站台 , 想必會幫使用者準備個人專屬空間吧 , 通常在個人專屬空間內 , 我們會允許他完全控制他的個人檔案 , 並且希望有一磁碟額度限制 , 以免使用者無限制的浪費空間 , 雷電FTPD也體會到了這個需求 , 我們知道會有這類需求的站長 , 最不喜歡的就是幫每個USER一個一個設定了 , 那會累死人 , 因此雷電FTPD引進了一種 一次設定 終身自動享用的設定方法 , 以下為各位介紹 , 我們先假設以下的需求

 
  • 所有使用者專屬目錄的根目錄放在 C:\USERS , 其下又有 C:\USERS\John , C:\USERS\Peter 等等子目錄 , 每個使用者皆有一個 , 而該目錄的命名必須為他的使用者帳號
  • 我們希望使用者在登入站台後 , 如果進入 /MyHome 虛擬路徑 , 則會自動被帶到他專屬的目錄
  • 我們希望使用者在該目錄下不要儲存超過50mb的檔案
  • 我們希望使用者在自己的目錄下能夠完全存取 , 讀寫刪除 通通允許

    本章將無法透過GUI(圖形介面) , 設定 , 首先我們必須使用NotePad開啟 虛擬檔案系統設定檔 , 此為 F:\temp\default.vfs , 打開後將看到以下內容(依照前三章設定)

C:\FTP\Uploads|/Uploads|root|admin|766|n|0|0|0|0|0|0|0|0|
D:\Music|/Music|root|admin|444|n|0|0|0|0|0|0|0|0|
C:\FTP|/|root|admin|744|n|0|0|0|0|0|0|0|0|

這些代號在說明頁都可找到說明 , 這裡不另外介紹

這邊我們要加上一行如下

C:\USERS\%S|/MyHome|%S|%g|700|n|50000|0|0|0|0|0|0|0|

這邊終於出現雷電FTPD虛擬檔案系統神奇之處 , 它可以使用變數即時替換 . 這裡看到的 %S , 在使用者登入後會被替換成 Username , %g 會被替換成 Group name , 因此 , 若是以下使用者登入

Username : root , Group name : admin , 這一整行的設定 , 對這位使用者來說就變成了

C:\USERS\root|/MyHome|root|admin|700|n|50000|0|0|0|0|0|0|0|

因此只要他一進入 /MyHome 虛擬路徑 , 他就會立刻被導向 C:\USERS\root 這個目錄 , 而裡面有個數字 700 , 乃代表這個目錄只允許擁有者完全存取 , 而 50000 代表這個目錄的使用額度限制為 50000 k (50mb)

最後別忘了 , 由於我們FTP伺服器跟目錄是在 C:\FTP 之下 , 我們還是得建立一個空目錄來對應到 /MyHome , 它是 C:\FTP\MyHome , 若是不建立這個目錄 , 使用者在 根目錄 / 之下做 DIR 列表時 將看不到 /MyHome

第五章 帳號申請區篇

什麼是帳號申請區 ? 說穿了就是一個特殊虛擬路徑 , 該路徑下要讓使用者傳送帳號申請表的 , 但是由於兼顧到隱私權的關係 , 通常這個區需要特殊的設置 , 如下敘述

  • 需要一個 /Apply 虛擬路徑提共使用者上傳申請表
  • 使用者可以進入該路徑 , DIR , 上傳申請表
  • 使用者不可刪除任何檔案
  • 使用者不可下載任何檔案 , 這才是隱私權的關鍵 , 使用者上傳後就無法再下傳了

    這對於雷電FTPD虛擬檔案系統之特殊之處在於 , 一般來說 , 給予READ權限 , 使用者才能進入該目錄並且DIR , 然而這邊卻不能給予READ權限又要能進入該目錄 , 因此你必須如下圖方式設定

 

注意綠色部分乃本節重點 : 不可打勾 , 權限部分則只開放 寫入 權限 , 完成之後按下 新增 , 最後存檔 , 再離開本畫面即完成設定 , 同樣的 , 你在FTP跟目錄之下 C:\FTP , 也需要這個空目錄 C:\FTP\Apply

第六章 番外篇

就算設計的再好的雷電FTPD虛擬檔案系統 , 也會有難以兩全其美的時候 , 例如 , 現在你要開一個 站長專屬 , 可以瀏覽整台電腦的虛擬檔案系統 , 又不想讓一般使用者看到那些他不能進去的連結點 , 該怎麼辦呢 ? , 這邊介紹 使用者/群組 訂製 VFS : 也就是 , 被指定的使用者 , 將跳脫伺服器內定虛擬檔案系統的限制 , 將自己擁有虛擬檔案系統設置檔(*.VFS檔案) , 他的做法相當簡單 , 你一樣是使用編輯器編輯你想要設計的 *.VFS 檔案 , 但是記得 , 離開畫面前不是要 SAVE 嗎 , 這個時候 , 不要像剛剛一樣選儲存了 , 選另存新檔 ... 那要存到哪裡 , 存到什麼檔名呢 ?

假設一 : 使用者帳號 root 登入的時候 要跟一般人不一樣 , 他要看到特別設計可以看到整台電腦檔案的 *.VFS 設定

解答一 : 進入雷電FTPD安裝目錄 , 通常為 C:\Program Files\RaidenFTPD , 看到裡面有一 VirtualFS 目錄 , 裡面又會看到依照你SERVER NAME所排放的子目錄 , 假設你SERVER NAME為RaidenFTPD32 , 那你就再進入該子目錄 , 其下又會看到Users以及Groups子目錄 , 這裡就是要讓你放置訂製 *.VFS 檔案的地方 , 由於現在是要放置使用者訂製 .VFS , 所以我們再度進入users子目錄 , 因為需要訂製 .VFS 的使用者名稱為 root , 因此你將需要存檔為 root.vfs , 即 , 你特別設計的 .VFS 檔案將儲存於以下路徑以下檔名

C:\Program Files\RaidenFTPD\VirtualFS\RaidenFTPD32\users\root.vfs

假設二: 凡屬於 admin 群組者 , 登入的時候 要跟一般人不一樣 , 他要看到特別設計可以看到整台電腦檔案的 *.VFS 設定

解答二: 進入雷電FTPD安裝目錄 , 通常為 C:\Program Files\RaidenFTPD , 看到裡面有一 VirtualFS 目錄 , 裡面又會看到依照你SERVER NAME所排放的子目錄 , 假設你SERVER NAME為RaidenFTPD32 , 那你就再進入該子目錄 , 其下又會看到Users以及Groups子目錄 , 這裡就是要讓你放置訂製 *.VFS 檔案的地方 , 由於現在是要放置群組訂製 .VFS , 所以我們再度進入groups子目錄 , 因為需要訂製 .VFS 的群組名稱為 admin , 因此你將需要存檔為 admin.vfs , 即 , 你特別設計的 .VFS 檔案將儲存於以下路徑以下檔名

C:\Program Files\RaidenFTPD\VirtualFS\RaidenFTPD32\groups\admin.vfs

最後解惑 : 如果使用者訂製 .VFS 以及該使用者群組訂製 .VFS 都存在 , 那究竟會用哪個呢 ? 答案為 使用者訂製 .VFS 優先權高於 群組訂製 .VFS , 對於以上兩個訂製 .VFS 都無法對映到的使用者 , 都將會自動使用 伺服器內定 .VFS

Copyright © RaidenFTPD TEAM , ALL RIGHT RESERVED

REVISION 2.4 , 2002/10/21