UNIX/LINUX教程---建立LINUX下的FTP服务器(中)
一、ftpaccess - ftpd 的配置文件
这个文件是FTP服务器最重要的配置文件,因为它关系着你的FTP服务器能否正常工作,还有许多权限使用上的设定。
一个包含了所有设定的ftpaccess的文件内容如下:
loginfails 2
class all real,guest,anonymous *
email root@localhost
loginfails 5
readme README* login
readme README* cwd=*
message /welcome.msg login
message .message cwd=*
compress yes all
tar yes all
chmod no guest,anonymous
delete no guest,anonymous
overwrite no guest,anonymous
rename no guest,anonymous
log transfers anonymous,real inbound,outbound
shutdown /etc/shutmsg
passwd-check rfc822 warn
在这个文件中的设定共分为以下几类:
1、loginfails 次数
设置允许用户在密码输入错误的情况下有几次重新输入的机会,超过此数目就会断线。
2、class 类名 类别(real、guest、anonymous) IP地址
设置允许登录到FTP服务器的用户类别。
在FTP服务器上的用户基本可以分为以下三类:
real:在该服务器上属于有合法账号的用户;
guest:另外定义的某些用户组的用户;
anonymous:权限最低的匿名用户。
比如:class remote real,guest,anonymous*
在这里定义了一个名为remote的新类,其包括有三种类型的用户,”*”代表网络上的所有机器,也就是说任何人都可以连到这台FTP服务器上。
3、limit 类别 人数 时间 文件名
这个指令的功能为设定同时上线的最大用户数。
如:limit local 20 Any /etc/msgs/msg.toomany
这个例子中限定了local这个类中的用户在同一时间内只能有20人同时登录到FTP上,如果超过了20人,就会显示msg.toomany这个文件中的信息。还可以进一步定义更具体的时间,如:limit remote SaSu|Any1800-0600 指定remote类中的用户只能在星期六和星期天的全天和其它时间每天的18:00到6:00点登录。
4、readme 说明文件 指令
它的作用是给执行指令加一个文本说明。每当用户执行所设定的指令时,系统会显示所设定的说明文件。
如:readme README* login
表示当用户执行login时,只要是以README开头的文件都会显示出来。
5、message 文件名称 指令
该指令的功能与上一个指令类似,当用户执行所设定的指令时,系统会将文件的内容显示出来。
6、compress 选项(yes/no) 类别
设定哪一个类别的用户可以使用compress功能。
7、tar 选项(yes/no) 类别
设定哪一个类别的用户可以使用tar功能。
8、private 选项(yes/no)
设定是否支持群组对文件的访问。
9、passwd-check 选项(none/trvial/rfc822) 选项(enforce/warn)
设定当用户以匿名方式登录时的密码使用方式:
none:不做密码验证,任何密码都可以登录;
trival:表示只要输入的密码中含有”@”就可以登录;
rfc822:表示密码一定要符合rfc822文档中规定的e-mail地址格式才可以登录。
如:sunshine@sina.com;
enforce:表示会严格执行以上对密码所做的要求,只要
密码格式不符合指定的格式就无法登录。
Warn:表示当输入密码不正确时只会出现告警信息,但仍然可以登录。
10、log commands 类别(real/guest/anonymous)
设定对哪些用户所做操作进行记录到/var/log/xferlog。如:log command real,记录系统用户所做操作。
11、log transfers 类别 (real/guest/anonymous)选项(inbound/outbound)
将指定类别用户在上载(inbound)或下载(outbound)时的有关信息记录在/var/log/xferlog中。如:log transfers anonymous,real inbound ,outbound,记录所有real和匿名用户在上载和下载时所有操作。
12、shutdown 文件名
在所指定的文件中设定FTP服务器关闭的时间,设定的时间一到就关闭FTP服务器。文件的格式可以由指定/etc/ftpshut来建立。如:shutdown /etc/shutmsg。
13、delete 选项(yes/no) 类别(real/guest/anonymous)
设定是否允许指定的用户使用delete这个指令。如:delete no guest,anonymous,即不允许guest和匿名用户使用delete这个指令。
14、overwrite 选项(yes/no) 类别(real/anonymous/guest)
设定是否允许指定的用户使用overwrite这个指令。其用法与delete相同。
15、readme 选项(yes/no) 类别(real /anonymous/guest)
设定是否允许指定的用户使用readme指令。
16、chmod 选项(yes/no)类别 (real/anonymous/guest)
设定是否允许指定的用户使用chmod指令。
17、unmask 选项(yes/no)类别 (real/anonymous/guest)
设定是否允许指定的用户使用unmask指令。
18、upload 根目录 上载目录 选项(yes/no)用户组权限 选项(dirs/nodirs)
指定哪个目录可以上载文件。这个功能可是最常用的哟。
比如:upload /home/ftp/incoming yes root daemon 0600 dirs
表示/home/ftp是指定目录,上载文件的目录是incoming,并且只有daemon用户组中的root用户才有权进行操作,操作权限为0600,即rw------,dirs是指root用户可以在该目录中建立子目录。
又如:
unpload /home/ftp/bin no
unpload /home/ftp/etc no
表示/home/ftp/bin及/home/ftp/etc这两个目录是不能上载文件的。
19、alias 目录别名 目录
给指定目录设置一个别名,方便切换目录。
20、cdpath 目录
这个功能与dos中的路径设定有些类似,但只用于cd命令时的路径搜索。例如当执行cd etc时,首先在当前目录中查找该目录,如果没有,则看是否有etc的别名设置,如果也没有,就根据cdpath指令所指定的顺序来搜索,查找这个目录。
如:
cdpath /incoming
cdpath /pub
cdpath /
则搜索的顺序为/incoming 、/pub、 /。
21、path-filter 类别(real/anonymous/guest)目录
设定上载的文件名限制。
如:path-filter anonymous /etc/pathmsg ^[-A-Za-z0-9_.]*$^.^_
限制anonymous上载的文件名只能包含字母A-Z、a-z、0-9和._-,名字以”.”和”-“开头的文件也不能上载到FTP服务器。
22、guestgroup 功能
设定guest组的功能。如:guestgroup ftponly。
23、deny IP地址/域名 说明文件
设定限制哪一个IP地址或域名的用户无法登录到FTP服务器。
如:deny 192.192.2.* *.com.cn /etc/deny.msg
就是拒绝192.192.2网段上的所有用户及com.cn域的用户登录到服务器,并将/etc/deny.msg文件的内容发送给用户,说明不能登录的原因。
又如:deny !nameserved /etc/deny.msg。
这是个较特别的用法,设定用户的IP地址必须经由Reserve Domain的方式找到对应的域名才能连接到FTP服务器,也就是说,用户的IP地址必须是在域名服务器中登记的。
二、Ftpservers文件
该文件的格式如下:
ipaddr/hostnamedirectory-containing-configuration-files
#
#10.196.145.10/etc/ftpd/ftpaccess.somedomain/
#10.196.145.200 /etc/ftpd/ftpaccess.someotherdomain/
#some.domain INTERNAL
在客户端与ftp服务器建立连接的时候,服务器将客户端的IP与该文件中的IP地址进行对比,看有无匹配的IP地址,如发现一个匹配项,就用调用该IP地址对应的目录中的配置文件作为该客户端的配置文件。如果没有发现匹配项,或者在存放配置文件的目录名是无效的,就使用默认的配置文件。
在该文件中用IP地址或者主机名都可以,如:
#