-
proftpd1.3.2稳定版linux64位系统安装
发表于 2009年05月20日 没有评论wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.2.tar.gz
tar xvfz proftpd-1.3.2.tar.gz./configure \
–prefix=/usr/local/proftpd \
–with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql \
–with-includes=/data1/mysql/include/mysql/ \
–with-libraries=/data1/mysql/lib/mysql/make
make instll然后用一下命令看一下
/usr/local/proftpd/sbin/proftpd -l
如果配置正确,会出现以下四个模块,否则请重新编译安装
mod_sql.c
mod_sql_mysql.c
mod_quotatab.c
mod_quotatab_sql.c
修改/usr/local/proftpd/etc/proftpd.conf文件,增加DefaultRoot ~
AllowRetrieveRestart on
AllowStoreRestart on
ServerIdent off#——– load sql.mod for mysql authoritative ——–#
SQLConnectInfo ftpdb@localhost proftpd netdot123
#注:上面这行是MySQL连接服务器部份,自己根据情况来改一改;
SQLAuthTypes Plaintext
SQLUserInfo ftpusers userid passwd uid gid homedir shell
SQLGroupInfo ftpgroups groupname gid members
SQLAuthenticate users groups
SQLNegativeCache on
SQLLogFile /var/log/proftpd.sql.logSQLNamedQuery getcount SELECT “count from ftpusers where userid=’%u’”
SQLNamedQuery getlastlogin SELECT “lastlogin from ftpusers where userid=’%u’”SQLNamedQuery updatelogininfo UPDATE “count=count+1,host=’%h’,lastlogin=current_timestamp() WHERE userid=’%u’” ftpusers
SQLShowInfo PASS “230″ “You’ve logged on %{getcount} times, last login at %{getlastlogin}”
SQLLog PASS updatelogininfo#——– load sql.mod for mysql authoritative ——–#
#——— load qudes.mod for Quota limit ——–#
#打开磁盘限额引擎
QuotaEngine on
# 设置磁盘限额
QuotaDirectoryTally on
# 设置磁盘容量显示时的单位
QuotaDisplayUnits Mb
# 允许显示磁盘限额信息,ftp登录后可执行quote site quota命令查看当前磁盘使用情况
QuotaShowQuotas on
# 设置磁盘限额日志文件
QuotaLog “/var/log/proftpd.quota.log”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 ftpquotalimits 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 ftpquotatallies 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}’” ftpquotatallies
SQLNamedQuery insert-quota-tally INSERT “%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}” ftpquotatallies
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
#——— load qudes.mod for Quota limit ——–#
同时,建立数据表:
CREATE TABLE `ftpusers` (
`userid` varchar(30) NOT NULL DEFAULT ”,
`passwd` varchar(80) NOT NULL DEFAULT ”,
`uid` int(10) unsigned NOT NULL DEFAULT ‘1000′,
`gid` int(10) unsigned NOT NULL DEFAULT ‘1000′,
`homedir` varchar(255) NOT NULL DEFAULT ”,
`shell` varchar(255) NOT NULL DEFAULT ‘/sbin/nologin’,
`count` int(10) unsigned NOT NULL DEFAULT ‘0′,
`host` varchar(30) NOT NULL DEFAULT ”,
`lastlogin` varchar(30) NOT NULL DEFAULT ”,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
UNIQUE KEY `userid` (`userid`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1CREATE TABLE `ftpgroups` (
`groupname` varchar(30) NOT NULL DEFAULT ”,
`gid` int(11) NOT NULL DEFAULT ‘1000′,
`members` varchar(255) NOT NULL DEFAULT ”,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1CREATE TABLE `ftpquotalimits` (
`name` varchar(30) DEFAULT NULL,
`quota_type` enum(’user’,'group’,'class’,'all’) NOT NULL DEFAULT ‘user’,
`per_session` enum(’false’,'true’) NOT NULL DEFAULT ‘false’,
`limit_type` enum(’soft’,'hard’) NOT NULL DEFAULT ’soft’,
`bytes_in_avail` float NOT NULL DEFAULT ‘0′,
`bytes_out_avail` float NOT NULL DEFAULT ‘0′,
`bytes_xfer_avail` float NOT NULL DEFAULT ‘0′,
`files_in_avail` int(6) unsigned NOT NULL DEFAULT ‘0′,
`files_out_avail` int(6) unsigned NOT NULL DEFAULT ‘0′,
`files_xfer_avail` int(6) unsigned NOT NULL DEFAULT ‘0′,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1CREATE TABLE `ftpquotatallies` (
`name` varchar(30) NOT NULL DEFAULT ”,
`quota_type` enum(’user’,'group’,'class’,'all’) NOT NULL DEFAULT ‘user’,
`bytes_in_used` float NOT NULL DEFAULT ‘0′,
`bytes_out_used` float NOT NULL DEFAULT ‘0′,
`bytes_xfer_used` float NOT NULL DEFAULT ‘0′,
`files_in_used` int(6) unsigned NOT NULL DEFAULT ‘0′,
`files_out_used` int(6) unsigned NOT NULL DEFAULT ‘0′,
`files_xfer_used` int(6) unsigned NOT NULL DEFAULT ‘0′
) ENGINE=MyISAM DEFAULT CHARSET=latin1发表评论


