频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

我在Redhat7.3的环境下Proftpd1.2.5+mysql3.23.49+mod_quota.c

来源: 作者: 出处:巧巧读书 2006-08-19 进入讨论组
关 键 词:access  dns  dos  ftp  ie  

  贴出我的步聚:
mod_quota.c这个文件需要vi一下.改28.29行
把QUOTA_FILE注释,然后去掉QUOTA_MYSQL前的注释

我的选项是:

./configure --prefix=/usr/local/
--with-modules=mod_sql:mod_sql_mysql
--with-includes=/usr/include/mysql
--with-libraries=/usr/lib/mysql

vi Make.modules
MODULES=mod_core.o后边加入mod_quota.o
BUILD_MODULES=modules/mod_core.o后边加上modules/mod_quota.o

然后开始编译

make
make install


3、建立数据库

#建立数据库proftpd
CREATE DATABASE proftpd;

#建立组表
DROP TABLE IF EXISTS `groups`;
CREATE TABLE `groups` (
`groupname` varchar(255) binary NOT NULL default '',
`gid` int(11) NOT NULL default '0',
`members` text NOT NULL,
PRIMARY KEY (`groupname`)
)TYPE=MyISAM;

#建立用户表
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`userid` varchar(255) binary NOT NULL default '',
`passwd` varchar(255) binary NOT NULL default '',
`uid` int(11) default NULL,
`gid` int(11) default NULL,
`homedir` varchar(255) default NULL,
`shell` varchar(255) default NULL,
`count` int(11) default NULL,
`used` double(10,1) default '0.0',
`quota` double(10,1) default '10000000.0',
PRIMARY KEY (`userid`)
) TYPE=MyISAM;

#如果表已经存在,不想删除,可以使用以下命令更改表的结构
alter table users add column used double(10,1) default '0.0';
alter table users add column quota double(10,1) default '10000000.0';


然后可以用phpmyadmin来插入记录

或直接运行此语句也行!

INSERT INTO `users` valueS ('ftpuser', 'ftpuser', 10000, 10000, '/home/ftpuser', '/bin/bash', 0, 0, 10240000);

4、配置proftpd.conf
在这里我把我的proftpd.conf贴出来,并给以相应的注释,仅供参考
# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

ServerName "aaa"
ServerType standalone
DefaultServer on
ServerIdent on "aaa: aaa is ready. Please you login."
ServerAdmin aa@aa.com

Port 2121
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 002

#允许尝试3次登录
MaxLoginAttempts 3

#关于超时
TimeoutLogin 120
TimeoutIdle 600
TimeoutNoTransfer 900
TimeoutStalled 3600

#限制连接数
MaxClients 10 "最大允许10个用户同时访问"
MaxClientsPerHost 1 "对不起,一台主机只允许一个连接"

#不使用SHELL
RequireValidShell no

#允许断点续传
AllowOverwrite no
AllowStoreRestart on

#不使用反解析
UseReverseDNS off

#磁盘配额限制
Quotas on
QuotaCalc on
QuotaType soft
#默认的配额
DefaultQuota 100000
#这里默认的是一子节为单位,我改成了K
QuotaBlockSize 1024
QuotaBlockName "K bytes"


MultilineRFC2228 on
SystemLog /var/proftpd/log/proftpd.log

#MySQL的信息写入了另一个文件中
Include /var/vmysql.conf

#连接时的MSG
DisplayConnect /var/proftpd/etc/connect.msg
DisplayGoAway /var/proftpd/etc/goway.msg
#输入quit命令后的MSG
DisplayQuit /var/proftpd/etc/quit.msg

#Disable Ident protecol(RFC 1413)
IdentLookups off

#configation手册中说这是一种安全的上传模式
HiddenStor on

DisplayLogin welcome.msg
DisplayFirstChdir .message
AllowOverwrite yes

# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30

# Set the user and group that the server normally runs at.
User nobody
Group nogroup

PathDenyFilter "(.ftpaccess)|(.htaccess)$"
# Normally, we want files to be overwriteable.

AllowOverwrite on

#删除了anonymous登录的设置

vmysql.conf的内容
#mod_sql的设置
###############DATABASE@SERVER:PORT MySQL-User passwd
SQLConnectInfo proftpd@localhost root xxxxxx
SQLAuthenticate users*
#密码未加密
SQLAuthTypes Plaintext
#用户表信息
############表名 user字段名 pass uid gid 用户目录 SHELL
SQLUserInfo users userid passwd uid gid homedir shell
#组表信息
#############表名 组名字段 组值字段 成员字段
SQLGroupInfo groups groupname gid members

####用户登录后,将用户的登录次数+1
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1 WHERE userid='%u'" users
#####用户登录后,显示已经登录过的次数(特别说明,已经登录过的次数,不算当前的连接
SQLNamedQuery count SELECT "count FROM users WHERE userid='%u'"
SQLShowInfo PASS "230" "You've logged on %{count} times, %u"

###如果用户目录不存在,自动创建目录
SQLHomedirOnDemand on

#mod_quota的相关设置
#Quota信息的表名
SQLQuotaTable users
#MySQL的连接参数#Server User Password 数据库
SQLQuotaInfo localhost root xxxxxxx proftpd
#保存用户名的字段名
SQLQuotaName userid
#保存用户已经使用空间的字段名
SQLQuotaUsed used
#保存用户磁盘配额的字段名
SQLQuotaQuota quota

5、测试proftpd
启动proftpd看看吧。然后根据出现的情况作出修改。 更多文章 更多内容请看MySQL  MySQL安全  MySQL数据备份专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
·MySQL数据备份 (1697篇文章)
·MySQL (1598篇文章)
·MySQL安全 (8506篇文章)
·城域网专题 (6805篇文章)
热点标签: access  dns  dos  ftp  ie  
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容
Web 全站
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章