咨询电话:010-82823766

MySQL验证的Quota磁盘限额安装手记 (2)
  • 2007-12-28 23:53:06
  • 发表时间:
  • 浏览次数:
  • 不详
  • 文章来源:
  • 佚名
  • 作者:

三、配置proftpd.conf

完成上面的安装,proftpd其实已经可以运行了,但是我们还需要根据自己的安装要求进行必要的配置,所以先备份默认的配置文件。

#cp /usr/local/etc/proftpd.conf /usr/local/etc/proftpd.conf.sample

1、重新编写proftpd.conf,下面是Michael的文件,大家完全照抄就基本可以了。

 

#基本配置

            ServerName "Michael's Ftp Site"

            ServerType standalone

            DefaultServer on

            #设置用户登陆时不显示ftp服务器版本信息

            ServerIdent off

            #设置ftp服务使用的端口,可以修改

            Port 21

            #设置ftp目录的权限

            Umask 022

            #设置系统各种超时时间和重试次数

            MaxLoginAttempts 3

            TimeoutLogin 120

            TimeoutIdle 600

            TimeoutNoTransfer 900

            TimeoutStalled 3600

            #允许最大的同时连接用户数

            MaxClients 10

            #允许每个用户主机最大并发连接数

            MaxClientsPerHost 3

            AllowOverwrite no

            AllowStoreRestart on

            UseReverseDNS off

            #如果shell为空时允许用户登录

            RequireValidShell off

            #将用户限制在自己的主目录下 ,这个设置很重要

            DefaultRoot ~

            #设置系统最大的进程数,防止dos攻击,默认是30

            MaxInstances 10

            #设置系统用于运行proftpd服务的用户和用户组(需要后面自己创建)

            User FTPUSR

            Group FTPGRP

            #设置对全局的文件可以进行改写

            <Directory />

            AllowOverwrite on

            </Directory>

            #设置系统运行日志和文件传输日志

            SystemLog                       /var/log/proftpd.syslog

            TransferLog                     /var/log/proftpd.transferlog

            ######################## 下面是匿名登陆部分的设置 #################

            #匿名用户登陆后访问的目录为 ftp用户的主目录

            <Anonymous ~ftp>

            User ftp

            Group ftpusers

            #设置anonymous用户为系统实际用户ftp的别名

            UserAlias anonymous ftp

            #设置匿名用户同时在线最大用户数

            #此用户数受限于前面的全局同时在线用户数

            MaxClients 5

            #设置welcome.msg文件作为用户登陆的提示信息文件

            #.message文件作为用户每次进入的目录提示信息

            DisplayLogin welcome.msg

            DisplayFirstChdir .message

            #设置一些特殊的权限,比如写文件和登陆限制等 (可以不用)

            <Limit WRITE>

            DenyAll

            </Limit>

            <Limit LOGIN>

            Order deny,allow

            Deny from 61.101.201.0/32

            Allow from all

            </Limit>

            </Anonymous>

            ######################## 完成匿名登陆的设置 #################

            ######################## 下面是磁盘限额Quota设置 ############

            #启用磁盘限额

            QuotaDirectoryTally on

            SQLHomedirOnDemand on

            #磁盘限额单位 b"|"Kb"|"Mb"|"Gb"

            QuotaDisplayUnits "Mb"

            QuotaEngine on

            #磁盘限额日志记录

            QuotaLog "/var/log/proftpd.quotalog"

            #打开磁盘限额信息 "quote SITE QUOTA"命令

            QuotaShowQuotas on

            ####################### 完成磁盘配额设置 ####################

            ####################### 下面是MySQL数据库部分设置 ###########

            #数据库联接的信息

            #FTP是数据库名,localhost是MySQL主机名,3306是mysql服务的端口号

            #Michael是连接数据库的用户名,testpwd是密码(如果没有密码留空)

            SQLConnectInfo FTP@localhost:3306 Michael testpwd

            #数据库认证的类型

            SQLAuthTypes Backend Plaintext

            #指定用来做用户认证的表的有关信息。(将在后面创建)

            SQLUserInfo FTPUSERS userid passwd uid gid homedir shell

            SQLGroupInfo FTPGRPS groupname gid members

            #数据库认证

            SQLAuthenticate users groups usersetfast groupsetfast

            #proftpd进行的mysql调用语句,别修改任何地方。

            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.conf配置文件的编写。

top
推荐导读
推荐导读
bottom
top
热门文章
热门文章
bottom