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.2 , 2002/03/21

The copyrighted works contained in this information service shall not be copied, reproduced, varied, altered, modified, adapted, distributed, performed and displayed in any form without the written permission of the copyright owner. All trademarks belong to their respective owners .