1.2创建ftp数据库表
创建表
CREATE TABLE `admin` (
`Username` varchar(35) NOT NULL default '',
`Password` char(32) character set latin1 collate latin1_bin NOT NULL default '',
PRIMARY KEY (`Username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
设置管理员用户
INSERT INTO admin VALUES ('Admin',MD5('ABC601*op'));
创建用户信息表
CREATE TABLE `users` (
`User` varchar(16) NOT NULL default '',
`Password` varchar(32) character set latin1 collate latin1_bin NOT NULL default '',
`Uid` int(11) NOT NULL default '14',
`Gid` int(11) NOT NULL default '5',
`Dir` varchar(128) NOT NULL default '',
`QuotaFiles` int(10) NOT NULL default '500',
`QuotaSize` int(10) NOT NULL default '30',
`ULBandwidth` int(10) NOT NULL default '80',
`DLBandwidth` int(10) NOT NULL default '80',
`Ipaddress` varchar(15) NOT NULL default '*',
`Comment` tinytext,
`Status` enum('0','1') NOT NULL default '1',
`ULRatio` smallint(5) NOT NULL default '1',
`DLRatio` smallint(5) NOT NULL default '1',
PRIMARY KEY (`User`),
UNIQUE KEY `User` (`User`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
数据表说明:
User:帐号名;
status:0 表示帐号被禁用,无法登录服务器;Password:密码,使用MD5加密;
Uid:前面创建的ftpuser帐户号,我们填写的是2001;
Gid:前面创建的ftpgroup组号,我们填写的是2001;
Dir:虚拟用户的个人目录路径,将在/home下创建(第一次登录);
ULBandwidth:上传文件限制速度,KB/s,0为不限制;
DLBandwidth:下载文件限制速度,KB/s,0为不限制;
comment:备注信息;
ipaccess:* 表示任意IP都可以访问此ftp服务器,输入具体IP地址可以只允许此IP连接服务器;
QuotaSize:用户磁盘空间分配,单位:MB,0表示不加限制;
QuotaFiles:用户可以保存的文件数量限制,0表示不加限制。
设置用户
INSERT INTO `users` VALUES ('gaoh1',md5('nmc601'),1000,100,'/mnt/oss/ftpdata/t1',100,100,10240,10240,'*','','1',0,0);
ECS服务器创建FTP用户
useradd -u 1000 ftpd
创建目录
mkdir /usr/local/ftpd
chown -R ftpd:ftp /usr/local/ftpd/
上传pure-ftpd-1.0.36.tar.gz 压缩包到服务器/home/ok目录下
解压
tar -zxvf pure-ftpd-1.0.36.tar.gz
进入解压后的目录下:
cd pure-ftpd-1.0.36
#使用这个安装,先安装mysql,防止报错
yum install mysql-devel
./configure --prefix=/usr/local/pureftpd --with-mysql --with-paranoidmsg --with-shadow --with-welcomemsg --with-uploadscript --with-quotas --with-cookie --with-virtualhosts --with-diraliases --with-sysquotas --with-ratios --with-ftpwho --with-throttling --with-language=simplified-chinese
PureFTPd有很多的编译配置选项,下面就列出部分主要的配置
–prefix =PREFIX 安装路径
–with-sysquotas 使用系统磁盘配额 ( 非虚拟)–with-altlog 支持选择日志格式( 类似Apache)
–with-puredb 支持虚拟用户 ( FTP登陆用户而非系统用户)
–with-extauth 支持扩展验证模块
–with-pam 启用PAM验证支持 ( 默认=禁用)
–with-cookie 启用Cookie支持 ( -F 选项)
–with-throttling 支持带宽控制 ( 默认=禁用)
–with-ratios 支持 上传/ 下载 速度控制
–with-quotas 支持 .ftpquota 文件(指定磁盘配额使用)
–with-ftpwho 支持pure-ftpwho(查看在线用户的程序)
–with-largefile 支持大于2G的文件
–with-welcomemsg 支持 welcome.msg 向后兼容(已经过时)
–with-uploadscript 上传后允许执行外部脚本 ( 测试阶段)
–with-virtualhosts 在不同的IP地址提供虚拟服务器功能
–with-virtualchroot 允许在chroot 的环境下通过符合连接跳转到外部
–with-diraliases 启用目录别名
–with-nonroot 普通模式或者说是限制模式. 如果你在该服务器上没有root权限那只有启用该项
–with-peruserlimits 支持每个用户的并发限制
–with-language = 语言支持< english | traditional-chinese | simplified-chinese>
–with-ldap 在LDAP目录中提供用户数据库
–with-mysql 在MySQL数据库中存放用户数据
–with-pgsql 在PostgreSQL数据库中存放用户数据
make
make install
mkdir -p /usr/local/pureftpd/etc
cp pureftpd-mysql.conf /usr/local/pureftpd/etc/
cd configuration-file
cp pure-config.pl /usr/local/pureftpd/sbin/
cp pure-ftpd.conf /usr/local/pureftpd/etc/
cd /usr/local/pureftpd/sbin/
chmod 755 pure-config.pl
vi /usr/local/pureftpd/etc/pure-ftpd.conf
Cage in every user in his home directory
# 限制每个用户到自己的根目录
ChrootEveryone yes
# Disallow anonymous connections. Only allow authenticated users.
# 取消anonymous用户
NoAnonymous yes
# MySQL configuration file (see README.MySQL)
# pureftpd-mysql.conf文件的位置
MySQLConfigFile /usr/local/pureftpd/etc/pureftpd-mysql.conf
CreateHomeDir yes
vi /usr/local/pureftpd/etc/pureftpd-mysql.conf
MYSQLServer mysql数据库地址
MYSQLUser ftp用户名
MYSQLPassword ftp密码
#密码在数据表中的存储方式,这里选择md5加密
MYSQLCrypt md5
MYSQLSocket /temp/mysql.sock
mkdir -p /usr/local/pureftpd/log
vi /etc/rsyslog.conf
在这行的cron.none后面添加 ;ftp.none 使ftp的日志信息成私有
*.info;mail.none;authpriv.none;cron.none /var/log/messages
变为:
*.info;mail.none;authpriv.none;cron.none;ftp.none /var/log/messages
在/etc/syslog.conf文件最后加上pureftpd日志(centos6起/etc/syslog.conf不再有!而是/etc/rsyslog.conf代替!)
#pureftp日志
ftp.* -/usr/local/pureftpd/log/pureftpd.log
注意: 不要去掉/usr前面的-号,否则日志会在/var/log/messages与usr/local/pureftpd/log/purefpd.log里各记录一份. 添加了-号,就只会记录在usr/local/pureftpd/log/purefptd.log内
重启rsyslog服务
service rsyslog restart
sudo /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
测试:
在浏览器地址栏输入ftp://gaoh1:nmc601@服务器IP地址/,如果能看到对应的目录和文件,则说明pureftpd安装部署成功。