配置proftpd.conf文件
编辑/usr/local/proftpd/etc/proftpd.conf文件:
设置磁盘限额
#设置磁盘限额
QuotaDirectoryTally on
#设置磁盘容量显示时的单位
QuotaDisplayUnits "Kb"
#打开磁盘限额引擎
QuotaEngine on
#设置磁盘限额日志文件
QuotaLog "/usr/local/proftpd/var/quota"
#允许显示磁盘限额信息,ftp登录后可执行quote site quota命令查看当前磁盘使用情况
QuotaShowQuotas on
指定磁盘限额模块使用的数据库信息
在proftpd.conf文件中加入以下配置:
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
很多朋友就要问了:这些是什么东东啊?完全看不懂!我也不懂!继续照做就是了~~
配置FTP用户为MySQL数据库认证方式
在proftpd.conf文件中加上以下配置:
SQLConnectInfo databaseName@hostName:port userName password
#databaseName是为proftpd建立的MySQL数据库的名字
#hostName是MySQL数据库所在的服务器的名字或ip地址
#port是MySQL服务所使用的端口
#userName是数据库的用户名
#password是数据库用户密码
SQLAuthTypes Backend Plaintext
#Backend表示用户认证方式为MySQL数据库的认证方式
#Plaintext表示明文认证方式,排在最前面的为最先使用的方式
SQLUserInfo ftpUser userid passwd uid gid homedir shell
#指定ftp用户数据表的名字和其中的字段名,表名可自行定义,字段名不要改动。
SQLGroupInfo ftpGroup groupname gid members
#指定ftp用户组数据表的名字和其中的字段名,这个数据表是可选的,字段名不要改动。
RequireValidShell off
#指定是否必须为FTP用户指定一个系统shell,off表示不用指定,on表示必须指定。为了系统安全应该指定为off。
SQLAuthenticate users groups usersetfast groupsetfast
#校验数据表
SQLHomedirOnDemand on
#如果用户主目录不存在,则系统会根据此用户在用户数据表中的homedir字段的值新建一个目录