Debain系统下Pure-ftpd安装和使用详解

今天应老大要求搭了一个Pure-ftpd,过程是各种坎坷,本来很简单的一个任务硬生生花了我三四个小时,踩了各种坑

下面开始正题

安装

安装有两种方法,一种是安装源码包,一种是安装打包好的包

我的是debain系统,最开始我使用的是源码装包,在踩了很多坑以后最终服务起来了,也能正常访问,但是一个编码问题把我击溃了。因为Pure-ftpd默认的是英文编码,我安装网上的文档选择了with-language=simplified-chinese选择进行配置,--with-everything选项我也选择了,但是在Windows上访问ftp的时候中文显示为乱码,最后在网上找原因说是我自己的操作系统是英文系统,安装的时候选择的非英文系统所以会产生乱码问题,要修改配置文件中的ClientCharset和filesystemcharset两个参数,但是在最开始配置./configure的时候我少选了一个--with-rfc2640选择,导致在修改Pureftpd的这两个参数无法修改,最终我还是只能重装服务。之后我就选择了用apt-get命令安装,对比源码安装就简单很多了

首先是安装服务

sudo apt-get install pure-ftpd

配置

Pure-ftpd在ubuntu系列的系统中的配置文件很特别,都是放到 “/etc/pure-ftpd/conf” 目录下,每一个参数都是以文件的形式存在,文件的内容就是参数的值。比如说你要写一个ClientCharset选项,你就需要创建一个文件并写入值

echo gbk > /etc/pure-ftpd/conf/ClientCharset  #将ClientCharset的值设为gbk

因为Windows的编码格式是gbk,所以为了解决Windows访问乱码问题,需要将该参数设定为gbk,其他的参数也是这个做法

下面是pureftpd一些参数的解释

 

不解释主机名,选“yes”的话可以大大加快登录ftp的速度的

DontResolve yes 

客户端登录的时候的默认编码,开启这个选项的话,windows登录时就不会显示不了中文的了

ClientCharset gbk

这个应该是不允许客户端删除文件的

KeepAllFiles yes

每个IP的最大连接数

MaxClientsPerIP 5

配置好以后就可以启动服务了

启动服务我在网上看到的是用服务自带的脚本进行启动的,但是我试了一下,用systemctl也是可以对pureftpd进行管理

sudo /etc/init.d/pure-ftpd start   #或者直接使用systemctl
systemctl start pure-ftpd

这个时候不出问题的话服务已经启动了,pureftpd默认是禁止匿名登录的,如果需要打开的话修改对应参数就可以了

设置账户

在这里需要创建两个账户,一个账户是系统账户,一个账户是pureftpd的虚拟账户(也就是用来登录ftp的账户)

首先是创建系统用户组和系统用户

groupadd ftpgroup
useradd -G ftpgroup -d /dev/null -s /sbin/nologin

再就是创建虚拟账户

pure-pw useradd user1 -u ftpuser -g ftpgroup -d /var/www/site

#user1 虚拟账户名
#-u 指定虚拟账户映射的系统账户
#-d 指定虚拟账户的家目录,在用户登录时显示的目录,也就是你想要共享给别人的目录,

执行这条命令以后系统会提示输入密码,输入要为虚拟账户设定的密码就可以了

在创建好用户以后还需要创建pureftpd的数据库文件,也就是存储虚拟账户信息的文件,生成的数据库文件名叫pureftpd.pdb,默认是保存在/etc/pure-ftpd/目录下,同时在conf目录下也会生成一个PureDB的文件,就是用来指定数据库文件的路径的

pure-pw mkdb

最后还有一个问题就是修改共享目录的权限问题,一种是直接将目录的所属者和所属组修改为ftpuser和ftpgroup,一种是将权限修改为777

chown -R ftpuser.ftpgroup /var/www/test
#或者修改权限
chmod -R 777 /var/www/test

这个时候所有的设置基本上都已经设置完成了,不出问题的话你已经可以正常使用了

 

修改用户密码

pure-pw passwd user1        #修改用户密码
pure-pw mkdb                #更新数据库文件
systemctl restart pure-ftpd #重启pureftpd服务

可能会遇见的问题

一、访问时提示登录验证失败

1.可能是账号密码不对,这个需要自己验证

2.可能是PureDB文件中指定的purefile.pdb文件的路劲不对

3.可能是你的虚拟用户的UID号小于了配置文件中MixUID的值,只需要修改一下MixUID的值就可以了

pure-pw list   #可以查看所有的虚拟账户
pure-pw show user1 #可以查看user1用户的所有信息,包括映射的系统账户和主目录

二、在Windows上访问出现乱码问题

在/etc/pure-ftpd/conf目录下创建一个ClientCharset文件并写入gpk

echo gbk > /etc/pure-ftpd/conf/ClientCharset  #将ClientCharset的值设为gbk

 

文章参考:

http://wiki.ubuntu.org.cn/Pure-ftpd%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AE

 

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值