配置/etc/ftpaccess文件
我们前面介绍的wu-ftpd的大多数功能都是在ftpaccess文件中设置的。我们无须自己编写该文件,doc/examples/ftpaccess.heavy是一个稍微修改一下就能适用于大多数FTP服务器的例子,所以下面我们将以这个示例文件为例为您介绍ftpaccess文件的配置。
# wu-ftpd-2.5.0的/etc/ftpaccess示例文件ftpaccess.heavy
#
# 设置用户登录FTP服务器时,允许输错密码的次数。
# loginfails 2表示允许用户输错两次密码,如果两次都输入
# 错误的话,FTP服务器打印“repeated login failures”的信息
# 并退出FTP会话过程。如不设置,则缺省值是5。
#
loginfails 2
#
# class是用来定义用户级别的命令,它的格式为
# class <class> <typelist> <addrglob> [ <addrglob>….]
# FTP服务器上有三种类型的使用者,分别是“real”——表示
# 在该FTP服务器上有合法帐号的用户;“guest”——表示另行
# 定义的某些使用组的使用者;“anonymous”——权限最低的匿名
# 用户。有了这三种使用者以后,在ftpaccess文件中就可以根据不
# 同的使用者设置不同的存取权限。但是,只有三种定义一般是不够
# 的,我们可以根据class的语法定义更多的控制命令。例如:
# class remote real,guest,anonymous *
# 这条class语句定义了remote中有三种不同的使用者,“*”表示网络
# 上所有的计算机,也就是说任何人都可以访问FTP服务器,一般的匿名
# FTP站点都应该有这一项。如果我们希望某台主机或网域中的机器具有
# 特殊的权限,那么我们可以设置如下的class:
# class local real,guest,anonymous localhost
# 这表示本地主机的类别被定义为local,当我们从主机连上FTP服务器上
# 时,就可以用较为特别的权限。
# 下面是ftpaccess.heavy文件指定的两个class,它们的意思是来自*.domain
# 和本地主机被归为local组,而其它的主机则是remote组。
#
class local real,guest,anonymous *.domain 0.0.0.0
class remote real,guest,anonymous *
#
# 我们可以使用limit命令设置某个时间段的FTP用户数量,如果超出了
# 规定的人数,则打印/etc/msgs/msgs.toomany文件并拒绝用户登录。例如:
# limit local 20 Any /etc/msgs/msgs.roomany
# 就是限制local这个组的机器同时间内最多允许20人连接FTP服务器,如果
# 超员,则打印/etc/msgs/msgs.toomany文件,显示当前在线人数太多。ftp的
# 说明文件都可以包含变量,在说明文件中可以使用“变量替换(magic
# sookies)”以指定的字符串代替某个变量:
# %T 本地时间
# %F CWD所在分区的剩余空间
# %C 当前工作目录
# %E 定义在ftpaccess文件中维护者的电子邮件地址
# %R 远端主机名称
# %L 本地主机名称
# %U 登录时所给的用户名称
# %M 该class允许的最大使用者数目
# %N 该class目前的使用者数目
#
# 我们可以利用这些变量编辑一个显示信息非常完善的说明文件。下面的
# 例子是设置当local用户在任何时候不能超过20人,remote用户在周六
# 周日的18:00到6:00不能超过100人,否则将显示/etc/msgs目录下的
# msg.toomany文件的内容。
#
limit local 20 Any /etc/msgs/msg.toomany
limit remote 100 SaSu|Any1800-0600 /etc/msgs/msg.toomany
limit remote 60 Any /etc/msgs/msg.toomany
#
# readme命令的作用是指定用户登录或进行其它操作(如更换目录)时
# FTP服务器提示用户阅读的文件。
#
readme README* login
readme README* cwd=*
#
# messages命令主要是设置一些FTP的显示信息,如下面的“message
# /welcome.msg login”就是代表用户登录时,将显示/home/ftp目录下的
# welcome.msg作为进站画面。我们要提醒您的是FTP服务器都是以
# /home/ftp这个目录作为根目录的,所以要写成/welcome.msg。而
# “message .message cwd=*”则是定义用户在更换目录时将显示在目录
# 下的文件。
#
message /welcome.msg login
message .message cwd=*
#
# 下面定义的允许从local和remote登录的机器在传输文件时,可执行compress
# 压缩文件或使用tar命令将多个文件打包成一个文件。
#
compress yes local remote
tar yes local remote
#
# 是否允许通过SITE GROUP和SITE GPASS命令适用秘密文件
# allow use of private file for SITE GROUP and SITE GPASS?
#
private yes
#
# 设置密码检查的规则。FTP服务器将要求匿名用户使用其电子邮件
# 地址作为密码,可是有人还是会胡乱输入,所以我们可以使用passwd-check
# 来查看用户是否输入一个类似于user@hostname的E-mail地址:none表
# 示不进行密码检查; trivial表示密码必须含有“@”;而使用rfc822时,
# 表示密码必须满足rfc822规定的地址。当密码不合要求时,warn将给予
# 警告,但依然允许他们登录,而enforce则表示警告并使用户退出。