6.站点命令
—————————————————————————————-
当你通过FTP方式连接后你可以使用站点命令,如下所示:site adduser 等
当你通过TELNET连接后使用大多数站点命令不需要site前缀,但是需使用点命令符(.dot-command notation)
.adduser .增加用户<用户名><密码><认证@ip地址>
注意所有与vfs(虚拟文件系统)相关的命令在telnet方式下是不支持的(例如chmod, chattr, chown等)

———————————————————————–
在FlashFXP下你可以在“Raw command line”(View..Raw Command Line)中输入命令,或使用raw commands(CTRL+R)的对话框。如果希望通过FlashFXP更简单的使用命令,你可以从ioFTPD论坛找到ioFTPD的命令集进行导入

如果你是在windows环境下使用ftp.exe连接FTP,你可以使用命令搇iteral?#25110;者搎uote?#26469;向FTP服务器传递命令。
例如:quote site who
———————————————————————–

Add/Delete/Rename/Kick
    Users
    Groups(组)
    IP
CHMOD/CHOWN/Stats以及更多
    Stats
SITE CHANGE
SITE CHATTR
SITE CONFIG

注意:在方括弧之内的参数表示为可选项。在使用可选项参数时省略方括号本身。

——————————————————————————–

Add/Delete/Rename/Kick(增加/删除/重命名/踢)

# USERS(用户)

ADDUSER
赠加一个用户到与你相同的组。
用法:SITE ADDUSER [ .. ]
例如:site adduser zero mypass *@192.168.0.* *@127.0.0.1

GADDUSER
增加用户到一个指定的组。
用法:SITE GADDUSER [ .. ]
例如:site gadduser crew zero mypass *@*

RENUSER
重命名一个已经存在的用户。
用法:SITE RENUSER
例如:site renuser zero zeroracer

DELUSER
删掉一个用户。
用法:SITE DELUSER
例如:site deluser zero

KICK
你可以从你的站点踢掉一个用户。
用法:SITE KICK
例如:site kick zero

——————————————————————————–

# GROUPS(组)

GRPADD
增加一个新组。
用法:SITE GRPADD <组名>
例如:site grpadd crew

GRPDEL
删掉一个组。
用法:SITE GRPDEL <组名>
例如:site grpdel crew

———————————————————————–
当一个组里仍有用户的时候使用GRPDEL命令将无法删掉这个组。在使用GRPDEL删掉组之前须把组中的用户都删掉。
———————————————————————–

GRPREN
重命名一个已经建立的组。
用法:SITE GRPREN <需重命名的组名> <新组名>
例如:site grpren STAFF crew

CHGRP
增加/删除 一个用户 到/从 一个组
用法:SITE CHGRP <用户> <组> [<组>]
例如:site chgrp zero crew

———————————————————————–
当使用CHGRP,如果用户已经存在指定组中,就会被删掉,如果不存在组中,就会被添加进去。
———————————————————————–

——————————————————————————–

# IP

ADDIP
增加一个允许用户登录的IP。
使用:SITE ADDIP <用户> [ .. ]
例如:site addip zero Zer0@216.127.66.120 *@216.127.67.*

———————————————————————–
ADDIP支持主机掩码,例如*@*.telia.com

ADDIP是否支持方括号[]中的指定IP掩码以及通配符?

[]
方括号[]替代IP地址中的任意一位。
例如:site addip lamer someident@216.127.66.12[1-5] 表示 IP
216.127.66.121 -> 216.127.66.125
警告:中括号[]中的数字范围不可大于9,即[10-79]是不起作用的!这种情况可以使用[1-7]? 或 [1-7][0-9]来代替。

^
前缀^作用是阻止紧跟随的数字。
例如:[^10-3] 表示 1 是不被允许的, 但 0, 2 和 3 是被允许的.

?
通配符 ?可以替代IP地址中的任意一位数字,范围(0-9)。
例如:*@216.127.66.12? 表示IP范围 216.127.66.120 -> 216.127.66.129
———————————————————————–

DELIP
删除/移除一个用户的IP。
用法:SITE DELIP <用户> []
例如:site delip zero Zer0@216.127.66.*

———————————————————————–
DELIP在删除IP时并不是和已经添加的IP完全字面匹配的。如果你添加了一个使用中括号[]的IP并在删除时得到了错误信息,那么使用通配符来删除。例如若想删除someident@216.127.66.12[1-5] 使用:
site delip someident@216.127.66.12*
———————————————————————–

——————————————————————————–

CHMOD/CHOWN/Stats 及更多

CHMOD
像UNIX一样改变一个文件夹/文件的访问权限。
使用:SITE CHMOD <###> <文件夹/文件>
例如:site chmod 777 upload

———————————————————————–
CHMOD 访问权限:
4 = 只读
2 = 可写
1 = 执行
0 = 没有权限

例如对一个文件夹做写保护:
SITE CHMOD 755 mp3

第一个7是针对文件夹所有者。
4+2+1 = 7 表示对文件夹/文件的所有者是可读,写和执行(rwx)的。

第一个5(第二位数)是对组来说的。
4+1 = 5表示对与文件夹/文件所有者同组的其他用户来说是可读和执行的,而不可写(r-x)。

第二个5(第三位数)是针对其他用户的。
4+1 是对其他所有用户来说可读和执行,而不可写(r-x)。

你可以看到mp3文件夹的属性会是:drwxr-xr-x
———————————————————————–

CHOWN
改变文件夹或文件的所有者。
用法:SITE CHOWN [-R] <所有者>[:组] <文件夹/文件>
例如:site chown ioFTPD:ioftpd somedir

———————————————————————–
CHOWN命令对文件夹使用-R参数表示递归。所有文件夹内的文件(包括子文件夹及文件)都将属于新的所有者。
———————————————————————–

TAGLINE
查看/改变你的tagline。
用法:SITE TAGLINE [<新tagline>]
例如:site tagline Archimede rules
———————————————————————–
若想查看你当前的tagline只要使用命令SITE TAGLINE
———————————————————————–

PASSWD
更改密码
用法:SITE PASSWD <新密码>

UINFO
查看一个用户的帐户信息;credits, flags, tagline, IP 等等。
用法:SITE UINFO <用户名>

USERS
用户列表。
用法:SITE USERS [<排序条件>]
SITE USERS =组
SITE USERS <通配符>
例如:SITE USERS ab* 将显示所有名称以ab, aB, Ab 或 AB开头的用户

———————————————————————–
SITE USERS 后面不追加任何排列条件将列出所有用户。
———————————————————————–

SWHO
显示正在线上的用户。
用法:SITE SWHO

——————————————————————————–

STATS
统计用户信息。
用法:SITE STATS <参数>

参数:
alldn -根据总下载量排列
allup -根据总上传量排列
monthdn – 根据月下载量排列
monthup – 根据月上传量排列
wkdn – 根据周下载量排列
wkup – 根据周上传量排列
daydn – 根据当天下载量排列
dayup – 根据当天上传量排列

count – 限制列出的用户数
bytes – 以字节为单位排列 (默认)
files – 以文件数为单位排列
limit – 列出指定用户或组的统计信息
limit "<…> <…>" – 列出所限制范围内的
section – 在指定section中统计

例如:
# 统计总下载量排前100名的用户
site stats alldn count 100

# 统计本月在section 1中上传数量最多的前10名用户(以上传文件数为计算单位)
site stats monthup files section 1

# 统计当日上传前五名的在friends组中用户名为zero的用户
site stats dayup count 5 limit "zero =friends"

——————————————————————————–

SITE CHANGE

CHANGE
更改用户帐户及组的设置。

———————————————————————–
SITE CHANGE命令概述
———————————————————————–
CHANGE [ … ]
CHANGE "" [ … ]

目标:
-user – 用户
通配符 – 与通配符匹配的用户
=group – 组

Fields:
admingroup – 更改组管理员
credits [+-] [section] – 增加/设置/减少credits额度
flags [+-] – 增加/设置/移除Flags
groupdescription – 更改组的描述
groupslots [leech_slots] – 更改组的Slots
groupvfsfile – 更改组的VFS(虚拟文件系统)文件设置
homedir – 更改用户的根目录
logins [service] – 更改登录最大并发数
passwd – 更改密码
ratio [section] – 更改上传/下载比率
speedlimit – 更改用户上传/下载速率限制
标记G用来给组管理员权限使用相应站点管理命令,如增加用户及IP等。
tagline – 更改用户Tagline
vfsfile – 更改用户VFS文件设置
———————————————————————–

SITE CHANGE 命令使用搕arget list(目标列表)?#26469;对多个用户和/或多组用户进行相同设置的改变。
例如:SITE CHANGE "user1 user2 =group1 =group5" RATIO 0

———————————————————————–
如果没有指定section,CHANGE 命令将更改当前所在section管理员的各项值。
———————————————————————–

ADMINGROUP
更改组管理员
用法:SITE CHANGE <用户> ADMINGROUP <组>
例如:site change zero admingroup crew

———————————————————————–
一个用户可以定义为高达30个不同组的管理员

标记G用来给组管理员权限使用相应站点管理命令,如增加用户及IP等。
———————————————————————–

CREDITS
设置/增加/减少 一个用户被允许的下载量。
用法:SITE CHANGE <用户> CREDITS <总量 KB> []
更改用户credits为指定的大小。
例如:site change zero credits 102400
102400KB = 100MB 算自 1024KB = 1MB

———————————————————————–
你可以在指定的数量之前使用 + 或 – 用以增加或减少用户credits。
用法:SITE CHANGE <用户> CREDITS +<数值 KB>
SITE CHANGE <用户> CREDITS -<数值 KB>
例如:site change zero credits +204800
———————————————————————–

FLAGS
旗标赋予用户运行(或不运行)各site命令的权限,且可用于设置私有目录、或其他地方如服务及VFS中目录权限等的权限,
用法:SITE CHANGE <用户> FLAGS <旗标>
例如:site change zero flags +L

旗标:
‘M’ – MASTER (见以下注释)
‘V’ – VFS管理员
‘G’ – 组管理员权限
‘F’ – 禁止FXP(下载)
‘f’ – 禁止FXP(上传)
‘L’ – 忽略每服务下的用户限制
‘A’ – 匿名

注意:Master(M旗标)不能用SITE CHANGE命令赋予。只能在ioFTPD关闭后手工编辑..\users下的用户文件。

GROUPDESCRIPTION
更改组的描述
用户: SITE CHANGE <组> GROUPDESCRIPTION <新描述>
如: site change ioftpd groupdescription ioFTPD rules!/font>

GROUPVFSFILE
更改组的虚拟文件系统(VFS)
用法:SITE CHANGE <组> GROUPVFSFILE
如: site change ioftpd groupvfsfile ..\etc\ioftpd.vfs

GROUPSLOTS
改变组内可添加的用户总数
用户: SITE CHANGE <组> GROUPSLOTS
示例: site change ioftpd groupslots 5 1
..这使具管理员权限的组ioftpd可加5个常规用户和1个无限制用户(ratio为0的用户)

HOMEDIR
更改用户根目录
用户: SITE CHANGE <用户名> HOMEDIR <根目录路径>
示例: site change zero homedir /home/zero

LOGINS
更改允许登陆进FTP, HTTP或TELNET的用户数
缺省FTP
用法: SITE CHANGE <用户名> LOGINS <登陆数> <类型>
示例:site change zero logins 2 ftp

———————————————————————–
没有限制登陆人数的命令: site change <用户名> logins -1 <类型>
———————————————————————–

PASSWD
更改用户密码
用法: SITE CHANGE <用户名> PASSWD <新密码>

———————————————————————–
用以下命令更改自己的密码:
SITE PASSWD <我的新密码>
———————————————————————–

RATIO
更改用户的上传:下载比例
用法: SITE CHANGE <用户名> RATIO <比例> [积分区段#]
示例: site change zero ratio 0

———————————————————————–
比例示例:
0 = 无限制/Leech
3 = 比例为1:3, 某人上传10M文件,则他可下载30M文件。
5 = 比例1:5
———————————————————————–

SPEEDLIMIT
更改用户(上传和下载的)速度限制
用法: SITE CHANGE <用户名> SPEEDLIMIT <下载速度值> <上传速度值>
注意: 0或-1 = 无限制

———————————————————————–
速度限制示例:
site change zero speedlimit 100 0 意为用户可下载的最大速度为100kB/s,上传速度无限制。
———————————————————————–

STATS
更改用户统计
用法: SITE CHANGE <用户名> STATS <参数> <数值>
示例: site change zero stats allup bytes 2048000

———————————————————————–
统计参数:
alldn – 全部下载
allup – 全部上传数
monthdn – 每月下载量
monthup – 每月上传量
wkdn – 每周下载量
wkup – 每周上传量(缺省值)
daydn – 当日下载量
dayup – 当日上传量
———————————————————————–

TAGLINE
更改用户的标识行
用法: SITE CHANGE <用户名> TAGLINE <新的标识行>
示例: site change zero tagline f-b-aiii

VFSFILE
更改用户的虚拟文件系统(VFS)
用法: SITE CHANGE <用户名> VFSFILE
示例: site change zero vfsfile ..\etc\custom.vfs

——————————————————————————–

SITE CHATTR

CHATTR
定义一目录为私有目录和/或将其转换为一符号链接

用法示例参见私有目录 和 符号链接.

——————————————————————————–

SITE CONFIG

CONFIG
更改系统配置
用法: SITE CONFIG <命令> [<数组> <参数>]
示例: site config show Ftp-SITE-Permissions

查看你的ini文件中所有数组的命令:site config show

———————————————————————–
Site CONFIG 命令:
rehash – Reload config file
rehash – 重载ioFTPD.ini文件
save – 保存配置文件
add <数组> <串> – 添加新的一行<串>至<数组>末端
del <数组> <索引号 #> – 自<数组>中删除行<索引 #>
insert <数组> <索引 #> <串> – 在<数组>的<索引 #>前行插入新行<串>
replace <数组> <索引 #> <值> – 用<值>来代替行<索引 #>中的内容。
show [数组] – 显示数组列表,或<数组>的索引列表
———————————————————————–

示例(内含输出):
site config show scripts
### [Scripts]
000: ## SITE <script> <parameters>
001: #
002: # !file = Show file
003: # @string = Alias
004: # %file = Execute file (translate cookies)
005: # file = Execute file
006: #
007: HELP = !..\help\help.msg
008: CHANGELOG = !..\changelog
009: TEST = ..\scripts\test.bat
010: WKUP = @stats wkup
011:
site config insert Scripts 9 ERRLOG = !..\logs\error.log
site config show scripts
### [Scripts]
000: ## SITE <script> <parameters>
001: #
002: # !file = Show file
003: # @string = Alias
004: # %file = Execute file (translate cookies)
005: # file = Execute file
006: #
007: HELP = !..\help\help.msg
008: CHANGELOG = !..\changelog
009: ERRLOG = !..\logs\error.log
010: TEST = ..\scripts\test.bat
011: WKUP = @stats wkup
012:
site config save
site errlog
01-22-2003 16:06:12 Host ‘Zer0@216.127.66.121’ did not match any of user ‘zero’ allowed hosts.

7.旗标和权限
——————————————————————————————-
在ioFTPD中仅少数旗标是hardcoded,这些旗标具特别属性,使有这些旗标的用户有某些权限。
例如,具"L"旗标的用户没有使用任何站点命令的权限,但这些用户无论何时都能登陆,即使站点已经超过了最大同时登陆人数。

在ioFTPD.ini中,可指定用户可使用哪些站点命令。
用旗标来指定这些权限。

示例:
[Ftp-SITE-Permissions]
adduser = 1GM <- 旗标
renuser = 1M <- 旗标
..

表示具"1",或"G",或"M"旗标用户可使用site adduser命令。缺省的"1"极象glftpd中的SiteOp权限,"M"即指Master权限。
仅有具旗标"1"或"M"的用户可使用Site renuser(更改用户名)命令,除非你指定了别的用户使用这些命令。

在以前的版本中,"G"标识是赋给一用户组管理员权限。在新版本中,"G"标识仅给用户使用站点命令来管理某组及其组内用户的权限,同时需要指定ADMINGROUP。若将"G"标识给了某用户,但未给他指定ADMINGROUP,他将具有添加/更改/删除所有用户的权限!

———————————————————————–
G旗标还须赋予组管理员使用站点命令来管理该组的权限,如addip, delip等。
要使用户成为组管理员,可给其"G"旗标,使用命令 SITE CHANGE <用户名> ADMINGROUP <组名>
———————————————————————–

你已经知道如何设置SERVIES,你现在可以使用旗标设置特定权限。
[Ftp_Service]
..
Allowed_Users = *
Require_Encrypted_Auth = M !*
Require_Encrypted_Data = !*

Allowed_Users = * 指允许任何用户登陆

Require_Encrypted_Auth = M !* 表示Master用户需要使用加密认证(安全登录),其他用户不得使用安全登录。

Require_Encrypted_Data = !* 意为用户在上传下载时不请求加密数据。

[Ftp-SITE-Permissions]中的一些示例:
tagline = !A *
passwd = !A *
who = !A *
chmod = !A *

匿名用户没有使用命令的权限,但其他人可使用这些命令。

———————————————————————–
ioFTPD使用第一个匹配的旗标。!A * 表述正确,匿名用户不可,但其他用户允许使用命令。错误用法:* !A,此表达将赋予所有用户(包括匿名用户)使用这些命令的权限。
———————————————————————–

重要!
你不可用site change 旗标命令组用户赋予或清除"M"权限。
你必须手工编辑..\users目录下的文件。

——————————————————————————–

定制旗标

一个自定义的flag标记可以用来设置特别的权限。例如可以给用户通过script来nuke(ioFTPD本身并不包含这个命令)的权限,就可以使用自定义flags标记。我们来定义标记 N 给与nuker,这样拥有 N 标记的用户就可以使用nuke和unnuke命令,操作如下:

• 首先在ioFTPD.ini文件的[Ftp-SITE-Permissions]下为nuke命令设置标记 N:

[Ftp-SITE-Permissions]
..
nuke = 1MN
unnuke = 1MN

• 然后更改用户帐号设置(为nukers用户添加标记N:
site change flags +N

使用自定义旗标的另一种方法是在ioFTPD.ini中使用"T"和"H"旗标。注意,这些旗标没有硬代码功能,完全是自定义,仅用来指定一些用户在此服务器上的权限。

[Telnet_Service]
Type = Telnet
Device_Name = Any
Port = 10001
Description = My Telnet Service
User_Limit = 10
Allowed_Users = T !*

这表示所有具“T”旗标的用户允许登陆Telnet服务。

同样,HTTP服务:
[HTTP_Service]
Type = HTTP
Device_Name = Any
Port = 10000
Description = My HTTP Service
User_Limit = 50
Allowed_Users = H !*

8.SECTIONS