免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2174 | 回复: 1
打印 上一主题 下一主题

[FTP] pureftpd 1.0.20 在 redhat AS 3安装手记 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-31 10:05 |只看该作者 |倒序浏览
本文原文在这里:[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,下面解压缩文件
  1. tar jxf pure-ftpd-1.0.20.tar.bz2
复制代码

进入解压后的目录
  1. cd pure-ftpd-1.0.20
复制代码

我们现在要安装的pureftpd是使用mysql数据库的表来进行用户认证的,所以需要先安装mysql
如果你没有安装,请到这里下载:http://www.mysql.com
如果你已经安装,使用下面的指令可以看到你的mysql安装路径
  1. whereis mysql
复制代码

我现在是使用redhat AS 3提供的RPM包安装的,版本为4.1.7

二、编译安装pureftpd

确定你的mysql能正常运行后,开始编译pureftpd
  1. ./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服务器返回信息使用的语言
下面开始编译源代码
  1. make
复制代码

安装pureftpd到指定路径
  1. make install
复制代码

复制配置文件到安装路径
  1. cp pureftpd-mysql.conf /usr/local/pureftpd/etc/pureftpd-mysql.conf
复制代码
  1. cd configuration-file
复制代码
  1. cp pure-ftpd.conf /usr/local/pureftpd/etc
复制代码

复制pure-config.pl脚本到安装路径
  1. cp pure-config.pl /usr/local/pureftpd/bin
复制代码
增加执行权限
  1. chmod a+x /usr/local/pureftpd/bin/pure-config.pl
复制代码


三、初步测试pureftpd

下面使用默认的配置运行一下pureftpd,服务端口为2121
  1. /usr/local/pureftpd/sbin/pure-ftpd -S 2121
复制代码

现在在客户端使用浏览器打开http://服务器IP:2121
匿名登陆即可看到服务器的ftp用户的家目录下的文件
(说明:pureftpd的匿名用户是映射到系统的ftp用户的)
到这里,如果仅作为一个匿名服务器,不需要提供认证用户的服务的话,这个服务器已经可以基本运行起来了

四、建立mysql认证数据库表

在mysql服务器中建立pureftpd数据库
  1. CREATE DATABASE pureftpd;
复制代码

建立mysql用户pureftpd_mysqluser,登陆密码为123456789
  1. grant all on pureftpd.* to pureftpd_mysqluser@localhost identified by '123456789';
复制代码

在pureftpd数据库中新建数据表users
  1. CREATE TABLE `users` (
  2.   `id` int(32) unsigned NOT NULL auto_increment,
  3.   `User` varchar(16) NOT NULL default '',
  4.   `Password` varchar(64) NOT NULL default '',
  5.   `Uid` varchar(11) NOT NULL default '-1',
  6.   `Gid` varchar(11) NOT NULL default '-1',
  7.   `Dir` varchar(128) NOT NULL default '',
  8.   `QuotaSize` smallint(5) NOT NULL default '0',
  9.   `QuotaFiles` int(11) NOT NULL default '0',
  10.   `ULBandwidth` smallint(5) NOT NULL default '0',
  11.   `DLBandwidth` smallint(5) NOT NULL default '0',
  12.   `ULRatio` smallint(6) NOT NULL default '0',
  13.   `DLRatio` smallint(6) NOT NULL default '0',
  14.   `comment` tinytext NOT NULL,
  15.   `ipaccess` varchar(15) NOT NULL default '*',
  16.   `status` enum('0','1') NOT NULL default '0',
  17.   `create_date` datetime NOT NULL default '0000-00-00 00:00:00',
  18.   `modify_date` datetime NOT NULL default '0000-00-00 00:00:00',
  19.   PRIMARY KEY  (`id`,`User`),
  20.   UNIQUE KEY `User` (`User`)
  21. ) TYPE=MyISAM AUTO_INCREMENT=5 ;
复制代码


五、建立用于pureftpd认证用户的系统信息

建立用于pureftpd认证用户的登陆目录
  1. mkdir /data/ftp/Ftp_Root
复制代码

建立用于pureftpd认证用户的系统组和系统用户
  1. groupadd pureftpusers -g 2000
复制代码
  1. useradd pureftpusers -u 2000 -g pureftpusers -d /data/ftp/Ftp_Root -s /sbin/nologin
复制代码

分配目录权限
  1. chown pureftpusers /data/ftp/Ftp_Root
复制代码
  1. chgrp pureftpusers /data/ftp/Ftp_Root
复制代码

设置目录只读
  1. chmod 500 /data/ftp/Ftp_Root
复制代码

如果要设置目录可写,请设置
  1. chmod 700 /data/ftp/Ftp_Root
复制代码


六、修改pureftpd的配置文件

下面修改配置文件,以适合我们的需要
  1. vi /usr/local/pureftpd/etc/pureftpd.conf
复制代码
  1. MaxClientsNumber            100
  2. MaxClientsPerIP             3
  3. MaxIdleTime                 5
  4. MySQLConfigFile             /usr/local/pureftpd/etc/pureftpd-mysql.conf
  5. # Disallow downloading of files owned by "ftp", ie.
  6. # files that were uploaded but not validated by a local admin.
  7. AntiWarez                   no
  8. Bind                      *,2121
  9. # Maximum bandwidth for anonymous users in KB/s
  10. AnonymousBandwidth            800
  11. # Allow FXP transfers for authenticated users.
  12. AllowUserFXP                yes
  13. NoChmod                     yes
  14. IPV4Only                    yes
复制代码

具体的pure-ftpd.conf的配置选项请看这里:http://www.chinaunix.net/jh/15/145846.html 由jeffwu翻译

  1. vi /usr/local/pureftpd/etc/pureftpd-mysql.conf
复制代码
  1. MYSQLUser       pureftpd_mysqluser
  2. MYSQLPassword   123456789
  3. #密码在数据表中的存储方式,这里选择加密
  4. MYSQLCrypt      crypt
复制代码


注意:
在/tmp下建立mysql.sock的链接,这一步很重要,确保你在/tmp下有这个文件,否则登陆ftp时会提示验证失败
  1. ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
复制代码

或者你也可以修改pureftpd-mysql.conf中的选项,指向正确的路径
  1. MYSQLSocket     /var/lib/mysql/mysql.sock
复制代码


七、运行pureftpd

在mysql数据表中先加入一个测试用户test,密码也是test
  1. 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服务器
  1. /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]
ataman 该用户已被删除
2 [报告]
发表于 2005-05-15 19:47 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP