- 论坛徽章:
- 0
|
本文原文在这里:[url]http://www.taolang.com/surain/post/21.html
一、下载pureftp源代码,并确定mysql已经安装好
先从http://www.pureftpd.org下载最新版的pureftp源代码,目前的最新版是1.0.20
假设你下载到的源代码文件为pure-ftpd-1.0.20.tar.bz2,下面解压缩文件
- tar jxf pure-ftpd-1.0.20.tar.bz2
复制代码
进入解压后的目录
我们现在要安装的pureftpd是使用mysql数据库的表来进行用户认证的,所以需要先安装mysql
如果你没有安装,请到这里下载:http://www.mysql.com
如果你已经安装,使用下面的指令可以看到你的mysql安装路径
我现在是使用redhat AS 3提供的RPM包安装的,版本为4.1.7
二、编译安装pureftpd
确定你的mysql能正常运行后,开始编译pureftpd
- ./configure --prefix=/usr/local/pureftpd --with-mysql=/usr --with-paranoidmsg --with-shadow --with-welcomemsg --with-uploadscript --with-quotas --with-cookie --with-virtualhosts --with-virtualroot --with-diraliases --with-sysquotas --with-ratios --with-ftpwho --with-throttling --with-language=simplified-chinese
复制代码
注意--prefix=/usr/local/pureftpd 参数指定了pureftpd的安装路径
--with-mysql=/usr 参数指定了mysql的安装路径
--with-language=simplified-chinese 参数指定了pureftpd服务器返回信息使用的语言
下面开始编译源代码
安装pureftpd到指定路径
复制配置文件到安装路径
- cp pureftpd-mysql.conf /usr/local/pureftpd/etc/pureftpd-mysql.conf
复制代码- cp pure-ftpd.conf /usr/local/pureftpd/etc
复制代码
复制pure-config.pl脚本到安装路径
- cp pure-config.pl /usr/local/pureftpd/bin
复制代码 增加执行权限
- chmod a+x /usr/local/pureftpd/bin/pure-config.pl
复制代码
三、初步测试pureftpd
下面使用默认的配置运行一下pureftpd,服务端口为2121
- /usr/local/pureftpd/sbin/pure-ftpd -S 2121
复制代码
现在在客户端使用浏览器打开http://服务器IP:2121
匿名登陆即可看到服务器的ftp用户的家目录下的文件
(说明:pureftpd的匿名用户是映射到系统的ftp用户的)
到这里,如果仅作为一个匿名服务器,不需要提供认证用户的服务的话,这个服务器已经可以基本运行起来了
四、建立mysql认证数据库表
在mysql服务器中建立pureftpd数据库
- CREATE DATABASE pureftpd;
复制代码
建立mysql用户pureftpd_mysqluser,登陆密码为123456789
- grant all on pureftpd.* to pureftpd_mysqluser@localhost identified by '123456789';
复制代码
在pureftpd数据库中新建数据表users
- CREATE TABLE `users` (
- `id` int(32) unsigned NOT NULL auto_increment,
- `User` varchar(16) NOT NULL default '',
- `Password` varchar(64) NOT NULL default '',
- `Uid` varchar(11) NOT NULL default '-1',
- `Gid` varchar(11) NOT NULL default '-1',
- `Dir` varchar(128) NOT NULL default '',
- `QuotaSize` smallint(5) NOT NULL default '0',
- `QuotaFiles` int(11) NOT NULL default '0',
- `ULBandwidth` smallint(5) NOT NULL default '0',
- `DLBandwidth` smallint(5) NOT NULL default '0',
- `ULRatio` smallint(6) NOT NULL default '0',
- `DLRatio` smallint(6) NOT NULL default '0',
- `comment` tinytext NOT NULL,
- `ipaccess` varchar(15) NOT NULL default '*',
- `status` enum('0','1') NOT NULL default '0',
- `create_date` datetime NOT NULL default '0000-00-00 00:00:00',
- `modify_date` datetime NOT NULL default '0000-00-00 00:00:00',
- PRIMARY KEY (`id`,`User`),
- UNIQUE KEY `User` (`User`)
- ) TYPE=MyISAM AUTO_INCREMENT=5 ;
复制代码
五、建立用于pureftpd认证用户的系统信息
建立用于pureftpd认证用户的登陆目录
建立用于pureftpd认证用户的系统组和系统用户
- groupadd pureftpusers -g 2000
复制代码- useradd pureftpusers -u 2000 -g pureftpusers -d /data/ftp/Ftp_Root -s /sbin/nologin
复制代码
分配目录权限
- chown pureftpusers /data/ftp/Ftp_Root
复制代码- chgrp pureftpusers /data/ftp/Ftp_Root
复制代码
设置目录只读
- chmod 500 /data/ftp/Ftp_Root
复制代码
如果要设置目录可写,请设置
- chmod 700 /data/ftp/Ftp_Root
复制代码
六、修改pureftpd的配置文件
下面修改配置文件,以适合我们的需要
- vi /usr/local/pureftpd/etc/pureftpd.conf
复制代码- MaxClientsNumber 100
- MaxClientsPerIP 3
- MaxIdleTime 5
- MySQLConfigFile /usr/local/pureftpd/etc/pureftpd-mysql.conf
- # Disallow downloading of files owned by "ftp", ie.
- # files that were uploaded but not validated by a local admin.
- AntiWarez no
- Bind *,2121
- # Maximum bandwidth for anonymous users in KB/s
- AnonymousBandwidth 800
- # Allow FXP transfers for authenticated users.
- AllowUserFXP yes
- NoChmod yes
- IPV4Only yes
复制代码
具体的pure-ftpd.conf的配置选项请看这里:http://www.chinaunix.net/jh/15/145846.html 由jeffwu翻译
- vi /usr/local/pureftpd/etc/pureftpd-mysql.conf
复制代码- MYSQLUser pureftpd_mysqluser
- MYSQLPassword 123456789
- #密码在数据表中的存储方式,这里选择加密
- MYSQLCrypt crypt
复制代码
注意:
在/tmp下建立mysql.sock的链接,这一步很重要,确保你在/tmp下有这个文件,否则登陆ftp时会提示验证失败
- ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
复制代码
或者你也可以修改pureftpd-mysql.conf中的选项,指向正确的路径
- MYSQLSocket /var/lib/mysql/mysql.sock
复制代码
七、运行pureftpd
在mysql数据表中先加入一个测试用户test,密码也是test
- INSERT INTO `users` VALUES (1, 'test', encrypt('test'), '2000', '2000', '/data/ftp/Ftp_Root', 0, 0, 0, 0, 0, 0, '', '*', '1', '2005-03-29 20:04:33', '2005-03-29 20:04:33');
复制代码
运行pureftpd服务器
- /usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
复制代码
现在在客户端使用浏览器打开http://服务器IP:2121
使用用户test:test即可登陆,可看到/data/ftp/Ftp_Root下的内容
八、高级应用
pureftpd认证用户是使用其影射到的系统用户的uid和gid来访问文件系统的,所以要设置目录的写权限,只需要设置对应的系统用户的对该目录的写入权限即可。
参考文档:http://www.cnfug.org/journal/archives/000016.html writed by Netkiller(陈景峰)[/url] |
|