1. 目录结构

ioFTPD主目录包括以下文件:Changelog, TODO, README.1ST

更新记录文件包含了ioFTPD的最新更新内容,可使您及时了解软件的bug修正及新增特征等。
TODO文档列出了ioFTPD未来版本中要添加的内容。
README.1ST文件为一些必要的法律公告。

--------------------------------------------------------------------------------

ioFTPD下的目录包括:

/cache 包括缓存文件,您不能改动此目录下的任何文件。
/etc 目录内文件包括

UserIdTable -用户及其UID(用户ID)列表
GroupIdTable - 组及其GID(组ID)列表
default.vfs和admin.vfs - VFS示例文件
ioftpd.env - 定义环境变量
 
/groups 组数据文件。文件名即为GID(组ID)
/help 帮助文件。
/lib TCL库
/logs 服务器运行记录文件如Error.log及Sysop.log等.
/scripts ioFTPD的第三方脚本。
/site 您的site的缺省根目录。
/source 可能对脚本编写有用的源代码。
/system ioFTPD.exe, ioFTPD.ini, tcl84.dll
/text 用户登陆时显示的信息文件,以及运行命令时显示的状态信息等文件。
/users 用户数据文件。文件名为UID(用户ID)。

 

2. 安装指南

此文档可让您在几分钟内最快速成功配置ioFTPD!

1. 解压ioFTPD文件包。

2. 编辑 ..\etc\default.vfs. 注意根目录必须加载为:";/";.
如::
"d:\ftp" / <-- 用已有的空目录作根目录。
"e:\mp3" /mp3 <-- 在根目录加载为/mp3

注意组ioftpd(缺省用户ioFTPD所在的组)的虚拟目录文件缺省为admin.vfs。要让ioftpd组使用default.vfs,可用命令: site change ioftpd groupvfsfile ..\etc\default.vfs 或将..\groups目录下0文件内的VFSFILE行删除即可。

3. 打开..\system\ioFTPD.ini.

在ioFTPD.ini中,注释行用“#”,取消选项/设置用分号";"。
# Comment
;Disabled = True

3a. 设置DEVICES。.
在多数情况下可用缺省设置。
缺省device名为";Any";.
[Any]
Host = 0.0.0.0 <-- 未定义IP,则允许在任何IP上连接。
Ports = 1024-2048 <-- 数据传输端口。
Random = True <-- 使用随机端口。

3b. 设置SERVICES(示例仅用于FTP_Service)

[FTP_Service]
Type = FTP
Device_Name = Any <-- 使用的Device。缺省为";Any";
Port = 9999 <-- 连接端口
Description = My FTP Service
User_Limit = 10 <-- 最大连接用户数。
Allowed_Users = *
Messages = ..\text\ftp
Require_Encrypted_Auth = !* <-- 无用户使用加密请求。
Require_Encrypted_Data = !*
;Certificate_Name = 192.168.1.11 <-- SLL认证名(CN):若不使用认证,请注释此行,否则你的ftpd不会运行!
Explicit_Encryption = True
Encryption_Protocol = SSL3
Min_Cipher_Strength = 128
Max_Cipher_Strength = 384
;Get_External_Ident = False <-- True/False. 保护支持
;Data_Devices = <-- 流量平衡设备
;Random_Devices = False <-- True/False. Data_Devices使用随机次序。

需要更高级的devices及services,如NAT及流量平衡等设置样例文件,请参见ioFTPD-Advanced.ini。

4. 用缺省的管理员(Master)帐号登陆,注意在ioFTPD下,用户名、密码、组名、标识名及其他名称均区分大小写!
用户名:ioFTPD
密码:ioFTPD

5. 使用SITE PASSWD <新密码> 更改缺省的ioFTPD密码。

6. 打开并编辑 ..\etc\Hosts.Rules,使其可由外部IP连接。 在最新的未注册版本中,缺省规则为禁止(DENY). 注释此缺省行,并去掉ALLOW行的注释。若ioFTPD.exe正在运行,则需重启(修改Hosts.Rules需要完全重启)。

完成!现在请阅读此文档其余部分,提高您的配置技巧。

问:什么是Master帐号?

答:Master权限帐号登陆后可做几乎任何事。可浏览所有目录,传输任何文件,即使其被别的用户限制。可以更改别的用户或组(但不能更改别的Master帐号)的设置。Master的旗标是"M"。

其他FAQ,请见ioFTPD主页的知识基地.

-----------------------------------------------------------------------
提示#1: 好的脚本、sfv校验、sitebot、已知bug及其他ioFTPD信息,请查看论坛.
提示 #2: 在登陆服务器时出现错误,请检查..\logs\Error.log文件。
提示 #3: 要学会如何用site命令控制ioFTPD。
提示#4: 请阅读此文档的其他部分,更多了解ioFTPD。
-----------------------------------------------------------------------

3. 虚拟文件系统(VFS)

VFS文件用来创建服务器的文件目录结构,用户登陆后即可见。示例的VFS文件为default.vfs和admin.vfs,均位于..\etc目录下。

基本VFS设置
子目录加载
用于存档的Raid目录加载
不同用户和/或不同组的VFS文件
私有目录
符号链接
目录权限设置


--------------------------------------------------------------------------------

基本VFS设置

最快的VFS文件设置法是将一空目录设置为根目录,这样必须在你的VFS文件中将此目录加载为:";/"; 如下:
"c:\ioFTPD\site" /
在..\site目录下有些示例目录,你可以删除它们。

然后你可指定VFS根目录下要显示的目录。
如:
"c:\ioFTPD\site" /
"d:\games" /games
"e:\mp3" /mp3

也支持驱动器盘符的直接加载,但不推荐此设置,因为不能隐藏象系统卷标信息之类的系统目录。
如:
"f:\" /f-drive
"g:\" /g-drive

要设置这些目录的权限(这样用户就可上传等),请用SITE CHMOD.

这些是ioftpd新手需要了解的基本设置,高级VFS设置请参见下面内容……


--------------------------------------------------------------------------------

加载子目录

ioFTPD's VFS十分灵活,你可指定某些目录作为子目录。
但要确保你的上级目录存在(此处为/mnt)。
如:
"c:\ioFTPD\site" /
"c:\ioFTPD\mnt" /mnt
"c:\" /mnt/c-drive
"d:\" /mnt/d-drive
"e:\" /mnt/cdrom


--------------------------------------------------------------------------------

用于文件存储目的的Raid目录加载

可合并两个或更多目录内容,如下:
注意:对于只读目的!尽管可写,但上传的文件(在Raided VFS目录下)会被存储在最后一个指定的设备下,此处为e:\dir2。

如:
"d:\目录1" /存档文件
"e:\目录2" /存档文件


--------------------------------------------------------------------------------

不用用户和/或组的VFS文件

要为用户指定不同的VFS文件,仅需新建一VFS文件,并使用此命令来更改用户的VFS文件
site change <用户> vfsfile ..\etc\custom.vfs

你也可改变某个组的VFS,该组下所有用户均自动使用此组VFS文件
如:
site change <组> groupvfsfile ..\etc\group1.vfs

重要!用户VFS文件会覆盖组VFS文件。你已用一指定的组VFS文件更改了组内某用户的VFS文件,且你想让此用户使用此组VFS文件,可清除..\users目录下的用户 user文件中的VFSFILE行,或者用命令更改此用户的VFS文件至此组VFS文件:site change vfsfile ..\etc\group1.vfs
记住若将用户的VFS文件改变为与组VFS文件的文件,且然后又将此组VFS文件改变为另一个文件,你需要再一次改变用户的VFS文件。


--------------------------------------------------------------------------------

私有目录

另一种不同目录的权限设置(包括不同的VFS)方法为私有路径。私有路径对其他用户隐藏,即使这些目录也存在于他们的VFS中。这样便很容易地设置VFS,而不必设置多重VFS文件(使某些用户使用某些目录)。除了Master,其他用户无权进入私有目录。私有目录不对Master隐藏。

SITE命令"site chattr"用于设置私有目录,此命令也可将目录转换为符号链接。

用法: site chattr +h "<目录>" "<权限列表>"
示例: site chattr +h "私有目录" "-用户2 -用户5 =组11"

若目录名包含空格,或你指定多个用户和/或组权限时,则需要用引号("; ";) 引用。旗标也可在权限列表中使用。

使用以下命令查看当前私有目录的权限:
site chattr +h "目录"

联想到+h是指";hidden";, 很容易便可记住+h是指私有目录,+l指目录链接。


--------------------------------------------------------------------------------

符号链接

符号链接是一个快捷目录,可指向你的虚拟文件系统中的任何指定位置。

使用SITE命令"site chattr"将目录转换成符号链接。

用法: site chattr +l "<目录>" ""
示例: site chattr +l "mp3-today" "/mp3/0525"

使用以下命令查看当前路径的链接指向:
site chattr +l "符号链接名"

符号链接也可设置为私有路径。


--------------------------------------------------------------------------------

目录权限的详细设置

如果你想禁止某些目录的上传,那么VFS的此部分设置是很有用的。权限前缀";!"; 表示禁止,如!-user !=group !F。也可指定多个用户和/或组,如!-user1 -user2 =group1,此处仅user1被禁止。

以下是ioFTPD.ini里的缺省设置:
[VFS]
...
###
# 目录权限的详细设置
#
# priviledge = <virtual path> <rights>
#
Upload = * *
Resume = * *
Download = * *
MakeDir = * *
RemoveDir = * *
RemoveOwnDir = * *
Rename = * 1VM
RenameOwn = * *
Overwrite = * VM
Delete = * 1VM
DeleteOwn = * *
NoStats = * !*

虚拟路径用此格式:/目录/*

-----------------------------------------------------------------------
规则为首个匹配即生效。
在虚拟目录和权限间,仅可使用空格,不要用tab键空格。
最后的"*"是必须的,表示允许其他所有人。
-----------------------------------------------------------------------

示例:
# 所有GuestGroup组的用户不可创建目录
# 也不可在mp3目录内上传文件,但其他用户被允许此二项。
#
MakeDir = /mp3/* !=GuestGroup *
MakeDir = * *
Upload = /mp3/* !=GuestGroup *
Upload = * *

ioFTPD 4.9.0(包含RemoviOwnDir)后的版本有一个新功能"NoStats",NoStats取消指定用户和/或组的状态统计。NoStats是路径相关的。记住,在这些指定目录下,这些用户和/或组的活动不被计入统计。

总将NoStats = * !*放在最底部,否则活动统计对其他用户也会失效。可在此行上方加入你自己的NoStats行。