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