proftpd实现虚拟用户和quota(不用数据库)
时间:2007-02-08 来源:shiyaowen
cd /tmp
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.1rc2.tar.bz2
tar xjvf proftpd-1.3.1rc2.tar.bz2
cd proftpd-1.3.1rc2
./configure –with-modules=mod_quotatab:mod_quotatab_file
make
cp contrib/ftpasswd /usr/local/bin/
cp contrib/ftpquota /usr/local/bin/
make install
这里上面提到的proftpd-1.3.1rc2是当前的最新版,但不是最新的稳定版,为什么要用这个版本呢
这是因为有个重要的参数(QuotaOptions ScanOnLogin)只到1.3.1才开始支持
而最新的稳定版是1.3.0a
vim /usr/local/etc/proftpd.conf
编辑文件/usr/local/etc/proftpd.conf
添加如下几行:
AuthUserFile /usr/local/etc/ftp.passwd
AuthOrder mod_auth_file.c mod_auth_unix.c
# Using a file-based limit table
QuotaLimitTable file:/usr/local/etc/ftpquota.limittab
# Using a file-based tally table
QuotaTallyTable file:/usr/local/etc/ftpquota.tallytab
QuotaDirectoryTally on
QuotaDisplayUnits Kb
QuotaEngine on
QuotaLog /var/log/Quota.log
QuotaShowQuotas on
QuotaOptions ScanOnLogin
这里”AuthOrder mod_auth_file.c mod_auth_unix.c”是认证方式及其优先级
他会先到AuthUserFile指定的文件去认证用户,然后再去系统认证用户
这里的”QuotaOptions ScanOnLogin”算是个小tips吧
当时我配这个quota的时候
ftp server已经运行有段时间了
很多用户都已经上传、下载了不少东西了
如果没有这个,proftpd只能监控并限制从配上quota开始的时候的上传下载的数据
从proftpd1.3.1开始才有的参数”QuotaOptions ScanOnLogin”就很好的解决了这个问题
他在用户登录的时候去扫描系统
算出来他已经用了的空间数
只讲一下这里用到的三个配置文件ftp.passwd、ftpquota.limittab、ftpquota.tallytab的维护方法
ftp.passwd是用程序ftpasswd来维护的
ftpquota.limittab和ftpquota.tallytab都是由程序ftpquota来维护的
而程序ftpasswd和ftpquota在前面安装proftpd的时候都有提到
ftpquota.limittab和ftpquota.tallytab中后者相对简单
只需要ftpquota –create –type=tally –table-path=/usr/local/etc/ftpquota.tallytab
这样把文件建立一下就可以了
而ftpquota.limittab还需要一条一条add进去用户的quota的信息
就像这样:
ftpquota –type=limit –table-path=/usr/local/etc/ftpquota.limittab –add-record –quota-type=user –name=username –units=Gb –bytes-upload=50
这样都设置完了以后
启动proftpd
再ftp上去的时候
用命令site quota就可以看当前用户的quota信息
Trackback
http://www.haw-haw.org/node/213#more-213