全力打造多功能FreeBSD服务器( 三 )


files_in_avail INT 总共能上传文件的数目
files_out_avail INT 能从服务器上下载文件的总数目
files_xfer_avail INT 总共可传输文件的数目(上传和下载)

然后再把下面一些SQL语句copy到proftpd.conf中即可,无须改动:

#以下是SQL调用语句,不用修改直接拷贝过去

SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail,
bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM quotalimits
WHERE name = "%{0}" AND quota_type = "%{1}""

SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used,
bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM quotatallies
WHERE name = "%{0}" AND quota_type = "%{1}""

SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used%{0},
bytes_out_used = bytes_out_used%{1}, bytes_xfer_used = bytes_xfer_used%{2},
files_in_used = files_in_used%{3}, files_out_used = files_out_used%{4},
files_xfer_used = files_xfer_used%{5}
WHERE name = "%{6}" AND quota_type = "%{7}"" quotatallies

SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" quotatallies

QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally


设置proftpd的主配置文件 。
Proftpd的配置文件proftpd.conf在/usr/local/etc/目录下,针对不用的认证可以使用不同的配置文件 。使用MySQL认证,可以把mod_sql.conf拷贝到/usr/local/etc下面并将其改名为proftpd.conf 。
修改proftpd.conf文件,具体内容如下:

#设置FTP服务器的名称:
ServerName “My FTP Server”

#设置FTP服务器的类型:
ServerType standalone
DefaultServer on

#设置根,可以限制用户在某个地方活动,增强服务器的安全性 。
DefaultRoot ~

#设置FTP服务端口号,标准的FTP服务端口是21 。
Port 21

#设置新建文件或目录时,设置权限的掩码:
Umask 022

#设置系统日志文件:
SystemLog /var/log/ftp.syslog

#设置记录文件传输的日志文件:
TransferLog /var/log/ftp.transferlog

#设置最大的尝试登录的次数,如果超过自动断开连接:
MaxLoginAttempts 3

#设置断点继传
AllowRetrieveRestart on

#针对IP的速率限制(以BPS为单位,下面是80KB/S)
RateReadBPS 80000
RateWriteBPS 80000

#设置MySQL认证:

#数据库联接的信息,DatabaseName是数据库名,HostName是主机名,
#Port是端口号,UserName是连接数据库的用户名,Password是密码 。
SQLConnectInfo DatabaseName@HostName:Port UserName Password
#我的实例是SQLConnectInfo FTP@localhost:3306 root ******
#数据库认证的类型:
SQLAuthTypes Backend Plaintext
#指定用来做用户认证的表的有关信息 。
SQLUserInfo FTPUSERS userid passwd uid gid home shell
#设置如果shell为空时允许用户登录:
RequireValidShell off
#数据库的鉴别,这里是用于用户的方式:
SQLAuthenticate users
#如果home目录不存在,则系统会为根据它的home项新建一个目录:
SQLHomedirOnDemand on


#防止Dos攻击,设置最大的了进程:
MaxInstances 30

#设置正常服务的系统用户与组:
User ftpusers
Group ftpgroups

#设置用户登录时显示的信息及进入各个子目录中的信息:
DisplayLogin welcome.msg
DisplayFirstChdir .message
#设置最大的登录数:
MaxClients10
#支持断点续传:
AllowRetrieveRestart on
AllowStoreRestart on

测试:
完成了文件的配置,你可以启动Proftpd服务了,用来测试是否成功:
修改apahce的配置文件,使通过mysql添加的proftpd用户目录能被web浏览
将UserDir public_html

推荐阅读