技术资料首页 >> 服务器专栏 >> FTP服务器 >> 人来疯技术文档再现江湖之pureftpd使用大全

人来疯技术文档再现江湖之pureftpd使用大全 (1)

2006-07-03 01:03:45作者: 来源:http://www.chinaunix.net/jh/15/860741.html 浏览次数:27 文字大小:【】【】【

人来疯技术文档之pureftpd使用大全
人来疯 root
人来疯论坛 http://www.d-1701.com/bbs
MSN:[email]xu1701@hotmail.com[/email]
                                                                 
版权信息:未经许可不得转载,转载本文章请与人来疯论坛坛主root联系!
[color=Red]人来疯论坛已于北京时间05.12.15日正式关闭,大家可以通过MSN联系我!
06年将考虑采用合作的形式办论坛,希望能找到提供服务器及域名的朋友![/color]
                                              联系方法:使用msn
环境:
RedHat  RHEL3U6
说明:
如果不做说明,一般安装命令均使用ROOT权限,用 # 表示;一般命令用$表示。

特别说明:无 

以下文章介绍Liunx 环境下 Pureftpd安装及使用情况

一、前言
Pureftpd是一款在多种类Unix上使用并符合GPL协议的原代码开放的软件,顾名思义,它就是一款纯粹的Ftp程序,目前的版本是1.0.21,文档版本号已经开发到1.0.22,这证明作者正在努力开发新版本,我们一起期待吧。
二、Puerftpd安装步骤
1、获取并安装Pureftpd版本
大家可以到 http://download.pureftpd.org/pub/pure-ftpd/releases/下载pureftpd的原代码,下载后进行安装,如下:
# cd /home/xuchen
# wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz .
# tar xzvf pure-ftpd-1.0.21.tar.gz
# cd pure-ftpd-1.0.21
# ./configure --prefix=/usr/local/pureftpd  --with-everything  --with-rfc2640\
 --with-mysql=/usr/local/mysql --with-language=simplified-chinese;make;make check;make install

--prefix是安装的目标目录
--with-eyerything是安装所有功能,因为是测试。
--with-rfc2640,此参数UTF-8,gb2312等异构系统的语言集转换
注意:如果是用Tar包安装的mysql,可能在编译时会遇到
configure: error: Your MySQL client libraries aren't properly installed
问题,解决的办法是
把/usr/local/mysql/lib/mysql/下的文件全部copy到/usr/lib中

# mkdir /usr/local/pureftpd/etc 安装系统时没建立这个文件夹??
# cd configuration-file
# chmod u+x pure-config.pl
# cp pure-config.pl /usr/local/pureftpd/bin
# cp pure-ftpd.conf /usr/local/pureftpd/etc
# cd ..
# cp pureftpd* /usr/local/pureftpd/etc/
到这里,所有安装已完成,就该测试功能了,我们用修改配置文件的方法来完成功能测试。

2、配置Pureftpd
启动pureftpd的方法是
# /usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
这个在每次测试后都要执行,就不一一写上了。
(1) 匿名用户登陆
# vi /usr/local/pureftpd/etc/pure-ftpd.conf 
如果要在默认的配置文件中只支持匿名登录,你只要稍微修改一下就可以了:
ChrootEveryone yes //限制所有用户在其主目录中
AnonymousOnly yes //是否只让匿名登录
NoAnonymous no //不允许匿名连接,仅允许认证用户使用
AnonymousCanCreateDirs yes //允许匿名用户创建新目录
MaxLoad  4  //如果系统被 loaded 超过下面的值,匿名用户会被禁止下载
AnonymousRatio   1 10 //匿名用户的上传/下载的比率
AnonymousBandwidth  8  //匿名用户的最大带宽(KB/s)
AllowAnonymousFXP  yes  //对匿名用户和非匿名用户允许进行匿名 FXP 传输
AnonymousCantUpload  no //不接受匿名用户上传新文件( no = 允许上传)

#(”.”)开头的文件能不能被读/写
按以上设置就可以进行匿名Ftp连接了,但如果出现了“421 无法建立安全匿名FTP”错误,请检查你的系统帐号,有可能你在系统建立时把FTP这个帐户给优化了,如果是这样,那么运行
# useradd ftp -g ftp -d /var/ftp -s /sbin/nologin
如果发现帐户是存在的,那么请检查帐户的主目录是否存在,如果不存在,也会提示上述错误。
经测试,按上述配置文件配置后,重新启动服务器,匿名用户可以上传文件,但无法下载,也无法删除文件。实现了安全的匿名上传ftp功能。
当你下载文件时看到,没有被管理员核准下载,这个是怎么做到的呢?其实很简单,一个参数搞定
AntiWarez   yes //意思是不接受所有者为 "ftp" 的文件的下载,我们把它设置为 “no”会怎么样呢?结果很显然,我们可以下载文件了,但由于AnonymousRatio 参数的存在,我们需要先上传后下载,很有意思,好了,匿名用户登陆就介绍到这里了。

[ 本帖最后由 初学vb 于 2006-11-27 10:58 编辑 ]



 初学vb 回复于:2006-11-24 15:37:09

(2)系统真实用户方法
# vi /usr/local/pureftpd/etc/pure-ftpd.conf 
如果要在默认的配置文件中只支持系统真实用户登录,你只要稍微修改一下就可以了:
ChrootEveryone yes
NoAnonymous  yes
UnixAuthentication yes //用/etc/passwd 中的用户认证
只需以上三行就可以实现系统真实用户登陆Ftp了,系统真实用户会登陆到自己的主系统中,可下载,可上传,可删除,没有任何限制,类似于平常我们用的sftp,就是由于有chroot的限制,所以无法去其他文件夹而已。在实际应用中,这种用法并不多见,我也就不费篇幅介绍了。


 初学vb 回复于:2006-11-27 08:36:32

(3) puredb虚拟用户支持
自从 0.99.2 版本开始, pure-ftpd 就开始支持虚拟用户。为了使 pure-ftpd 支持虚拟用户,需要在编译的时候加入选项 --with-puredb,或是和我们测试一样,用--with-everything,当然这个是随各用户使用而定。虚拟用户方式十分类似 /etc/passwd ,将用户的相关信息,如口令、姓名、 uid 、目录等,存入文件。但是该文件只适用于 FTP 。这意味着,可以为 FTP 设置虚拟用户,而不需要在系统中添加系统用户。同时,可以为这些用户单独设置配额、 ratio 、带宽等限制。很多虚拟用户可以共享同一个系统用户的属性,因此建议为这些虚拟用户单独创建一个系统用户,从而方便管理。我们选择新建系统用户(经测试,如果用linux系统自带的Ftp用户,在用虚拟用户登陆时会出现不被信任的提示,大家也可以做做实验,看是不是这样)。建立方法如下:
# groupadd ftpgroup
# useradd -g ftpgroup -d /dev/null -s /sbin/nologin ftpuser
系统帐号建立好后,我们就开始着手准备虚拟用户了。

虚拟用户建立方法
可以使用 ”pure-pw” 来创建虚拟用户。虚拟用户的信息以每个用户一行的方式存放在相应的文件中,除了帐号、口令、 uid 、 gid 和 home 目录之外,其它的可以是空值。
pure-pw useradd的语法规范如下: 
pure-pw useradd <login> [-f <passwd file>] -u <uid> [-g <gid>] 
      -D/-d <home directory> [-c <gecos>] 
      [-t <download bandwidth>] [-T <upload bandwidth>] 
      [-n <max number of files>] [-N <max Mbytes>] 
      [-q <upload ratio>] [-Q <download ratio>] 
      [-r <allow client host>[/<mask>][,<allow client host>[/<mask>]]...] 
      [-R <deny client host>[/<mask>][,<deny client host>[/<mask>]]...] 
      [-i <allow local host>[/<mask>][,<allow client host>[/<mask>]]...] 
      [-I <deny local host>[/<mask>][,<deny local host>[/<mask>]]...] 
  
[1] [2] [3] [4] [5] [6]

相关文章