隐藏具有隐性属性的文件和目录 - 启用这个选项后,服务器不会在生成的文件列表中显示具有隐藏属性的文件和目录。
文件列表使用小写字母 - 启用这个选项后,当服务器生成的文件列表时,服务器会将文件名的大写英文字母换成小写字母。
NLST同时显示目录和文件名 - 这个选项只是用来和某些不遵守FTP RFC-959标准的客户端兼容(如Dreamwaver内置的FTP客户端),这些客户端要求NLST命令同时返回文件名和目录名。
NLST在空目录返回"226 文件传送完毕"- 通常当一个目录为空,NLST 命令将会返回"550 没有文件" 以和 FTP RFC-959 标准要求兼容。 然而有些在自动运行程序里的FTP客户,在这种情况下端期望得到"226 文件传送完毕"。 这个选项就是用于兼容这种客户端。
LIST 命令目录列表格式
FTP 服务器标准格式 - 这个选项以服务器标准格式输出LIST命令目录列表.
Netware FTP服务器格式 - 这个选项以Netware FTP服务器的列表格式输出LIST命令目录列表.
IIS FTP 服务器格式 - 这个选项以IIS FTP服务器的列表格式输出LIST命令目录列表.
MS-DOS DIR 命令格式 - 这个选项以MS-DOS DIR 命令格式输出LIST命令目录列表.
自动删除上传失败的文件 - 启用这个选项后,服务器会自动删除上传失败的文件。
文件上传SFV检查 - 启用这个选项后, 当上传文件之前,你需要首先上传".sfv"为后缀的文件,其中包含要上传文件的CRC32信息。服务器将会自动对上传文件计算CRC32,如果CRC32值不正确,,文件将自动被更名为".bad"文件。 当正确文件上传后相应的".bad"文件会被自动删除。如果在上传目录里有超过1个的".sfv"后缀的文件,服务器会在其中自动寻找和上传文件名对应的CRC32值,每个目录最多可以有5个".sfv"后缀的文件。
允许下载正在被另一个进程占用写入的文件 - 启用这个选项后,服务器将允许用户下载被其他进程占用写入的文件(下载的文件很可能是不完整的)。这个选项可以用于一些特殊用途,如下载正在被其他进程使用的网站日志文件
文本文件传输禁用ASCII模式 - 启用这个选项后,服务器在上传和下载ASCII文件时将不做ASCII模式转换。
转换UNIX换行到Windows换行格式 - 当FTP客户端发送"TYPE A"命令,为文本文件设置ASCII传输模式后,默认情况下,文本文件里的换行符会被转换成UNIX下的换行符。但是如果这个选项被启用,换行符会被转换成Windows下的换行符。
保留FTP TYPE命令设置的传输类型 - Xlight FTP服务器使用Binary模式作为默认的文件传输模式。如果需要使用不是Binary模式的其他传输模式,客户端需要在每次文件传输前发送TYPE命令设置传输模式。当启用这个选项后,FTP服务器将保持用户最后一次设置的模式,用它作为随后文件传输的模式。
基于对一个文件的动作执行程序 - 当一个文件被上传,下载或删除后执行外部程序. 你可以将变量做为命令行参数传给外部程序. 下面是支持的变量, 它们将在外部程序被调用后替换成实际的值:
$username - 对一个文件执行动作的用户名.
$user_ip - 对一个文件执行动作的用户IP地址.
$ftp_path - 被执行动作文件的FTP虚拟路径.
$real_path - 被执行动作文件的实际WIndows路径. $real_path里包含Windows路径结尾字符"\", 因此和文件名结合使用时你不需要额外的"\".
$filename - 被执行动作文件的名字.
$filesize - 被执行动作文件的大小, 数值以比特(BYTE)为单位.
$status - 对一个文件执行动作的结果, 值会是"success"或"fail".
当一个文件被上传后执行这个程序 - 当一个文件被上传后执行外部程序.
当一个文件被下载后执行这个程序 - 当一个文件被下载后执行外部程序.
当一个文件被删除后执行这个程序 - 当一个文件被删除后执行外部程序.
要检查FTP服务器实际传入脚本的参数值. 在Windows DOS批处理脚本里, 你可以写象这样的一行"echo %1 %2 %3 > c:\test.log", 这将会把脚本输入的前三个参数的实际值写到c:\test.log文件里. 你可以检查c:\test.log文件里内容,获知FTP服务器实际传入的参数值
文件更名时覆盖已经存在的文件 - 文件更名时, 如果同名文件已经存在, 更名操作将会失败. 当这个选项被选中, 更名到已存在的同名文件将不会失败, 同名文件将被覆盖.
删除文件和目录到Windows回收站 - 这个选项被选择后, 当FTP服务器删除文件或目录时, 它将被送到Windows回收站,而不是永久删除.
转换FTP路径中的Windows反斜杠为UNIX正斜杠 - 这个选项是为了和某些使用Windows反斜杠为FTP路径的客户端兼容.
Xlight可以定义访问控制列表来控制服务器上的文件和目录的访问。有两种访问控制列表可以使用,一种用来隐藏/显示服务器上的文件和目录,一种用来控制对FTP服务器上文件和目录的FTP动作权限。
访问控制列表最大优点是可以灵活的控制文件目录,达到传统目录权限方式无法做到的效果。比如可以对匿名用户根据IP地址来源不同,显示不同内容。
"隐藏/显示"访问控制列表
通过使用"隐藏/显示"访问控制列表,FTP服务器可以按照你设计的方式隐藏和显示文件。 如果你不定义任何"隐藏/显示"控制列表,FTP服务器会显示所有服务器目录里的文件。
我们用一个简单的例子开始. 例如,你想要隐藏在FTP服务器的公共目录"/mydoc"中的所有文件和目录(包含/mydoc的子目录)。你应该如何定义"隐藏/显示"访问控制列表?
表一: 隐藏公共目录"/mydoc"中的所有文件和目录类型 | 虚拟目录 | 目录类型 | 子目录 | 文件名 | 文件类型 | 用户名 | 组名 | 时间范围 | 客户IP |
---|---|---|---|---|---|---|---|---|---|
隐藏 | /mydoc | 公共目录 | 是 | 任意 | 任意 | 任意 | 任意 | 任意 | 任意 |
我们延伸上一个例子,如果想隐藏在"/mydoc"目录下所有以字母“a”开头的文件,你该 如何定义访问控制列表?
表二: 隐藏公共目录"/mydoc"中的所有字母“a”开头的文件类型 | 虚拟目录 | 目录类型 | 子目录 | 文件名 | 文件类型 | 用户名 | 组名 | 时间范围 | 客户IP |
---|---|---|---|---|---|---|---|---|---|
隐藏 | /mydoc | 公共目录 | 是 | a* | 只包括文件 | 任意 | 任意 | 任意 | 任意 |
注意: 文件名是访问控制列表中唯一可以使用Unix shell类型的匹配字符来表示特定的文件名匹配. 支持的Unix shell类型的匹配字符如下.
匹配字符 | 含义 |
---|---|
* | 匹配任意长度的所有字符 |
? | 匹配任意单个字符 |
[seq] | 匹配在seq内的字符 |
[!seq] | 匹配不在seq内的字符 |
我们继续延伸上一个例子,如果只是想对匿名(anonymous),用户隐藏在"/mydoc"目录下所有以字母& ldquo;a”开头的文件,你该 如何定义访问控制列表?
表三: 对匿名用户隐藏公共目录"/mydoc"中的所有字母“a”开头的文件类型 | 虚拟目录 | 目录类型 | 子目录 | 文件名 | 文件类型 | 用户名 | 组名 | 时间范围 | 客户IP |
---|---|---|---|---|---|---|---|---|---|
隐藏 | /mydoc | 公共目录 | 是 | a* | 只包括文件 | anonymous | 任意 | 任意 | 任意 |
表四: 对来自“202.96.33.1-202.96.33.25”的"anonymous"用户,在公共目录 里,隐藏 ".exe"为后缀的文件
类型 | 虚拟目录 | 目录类型 | 子目录 | 文件名 | 文件类型 | 用户名 | 组名 | 时间范围 | 客户IP |
---|---|---|---|---|---|---|---|---|---|
隐藏 | 任意 | 公共目录 | 是 | *.exe | 只包括文件 | anonymous | 任意 | 任意 | 202.96.33.1-202.96.33.25 |
注意: 对于访问控制列表, 用户名,组名,文件名和服务器目录名都是不区分大小写的。
"隐藏/显示"访问控制列表的高级应用
知道和利用访问控制列表的检查次序,可以帮助定义一些复杂的应用。访问控制列表的检查次序是,先检查所有的"隐藏控制列表",然后再检 查所有的"显示控制 列表 ",所以控制列表排列次序对结果没有影响。因此如果你想只显示某些特定的文件,你需要首先隐藏所有的文件,然后再显示那些特定的文件。
下面的例子,将只显示/mydoc"目录中".exe"为后缀的文件。
类型 | 虚拟目录 | 目录类型 | 子目录 | 文件名 | 文件类型 | 用户名 | 组名 | 时间范围 | 客户IP |
---|---|---|---|---|---|---|---|---|---|
隐藏 | /mydoc | 公共目录 | 是 | 任意 | 只包括文件 | 任意 | 任意 | 任意 | 任意 |
显示 | /mydoc | 公共目录 | 是 | *.exe | 只包括文件 | 任意 | 任意 | 任意 | 任意 |
"禁止/允许"访问控制列表
"禁止/允许"规则用来控制用户对FTP服务器上的文件和目录的动作权限。它与"隐藏/显示"访问控制列表的定义方式类似。不同之处在 于它多了"用户动作"这一项。因为根据用户动作就可以知道针对的文件类型,所以它没有文件类型这一项。 下面是一些"禁止/允许"访问控制列表的例子
表一: 禁止用户在公共虚拟目录"/mydoc"和它的子目录中上传".exe"为后缀的文件类型 | 虚拟目录 | 目录类型 | 子目录 | 文件名 | 用户动作 | 用户名 | 组名 | 时间范围 | 客户IP |
---|---|---|---|---|---|---|---|---|---|
禁止 | /mydoc | 公共目录 | 是 | *.exe | Upload | 任意 | 任意 | 任意 | 任意 |
类型 | 虚拟目录 | 目录类型 | 子目录 | 文件名 | 用户动作 | 用户名 | 组名 | 时间范围 | 客户IP |
---|---|---|---|---|---|---|---|---|---|
禁止 | /mydoc | 公共目录 | 是 | *.exe | Download|Delete|Rename | 任意 | 任意 | 任意 | 任意 |
类型 | 虚拟目录 | 目录类型 | 子目录 | 文件名 | 用户动作 | 用户名 | 组名 | 时间范围 | 客户IP |
---|---|---|---|---|---|---|---|---|---|
禁止 | /mydoc | 公共目录 | 是 | 任意 | ChangeDir | 任意 | 任意 | 任意 | 任意 |