配置 pure-ftpd debian/centos
现在用Linux搞个ftp,ftp目录时网站目录,本想用vsftpd的,但是我现在用的是Debian系统,他的vsftpd和CentOS差的好多,搞得我都不会玩了,然后就不想用vsftpd了,打算找一个第三方的ftp软件来用,嗯,总算是找到了,并且配置很简单,装完之后几条命令就完事了,现在并没有涉及到权限这一块的东西,具体操作如下。
debian
1. 安装 pure-ftpd 软件
root@localhost:~# apt-get update
root@localhost:~# apt-get install pure-ftpd
2. 配置虚拟用户
root@localhost:~# groupadd ftpg #添加组
root@localhost:~# useradd -s /sbin/nologin -g ftpg ftpu -M #添加用户到组
3. 创建 ftp 虚拟用户
语法
pure-pw useradd 用户名 -m -u ftpu -d ftp的根路径
实例
root@localhost:~# pure-pw useradd test1 -m -u ftpu -d /www/ #用户名test1 根目录/www
Password: #输入两次密码
Enter it again:
4. 进入到 pure-ftpd 安装目录, 链接认证方式
root@localhost:~# cd /etc/pure-ftpd/auth
root@localhost:/etc/pure-ftpd/auth# ln -s ../conf/PureDB 60db
root@localhost:/etc/pure-ftpd/auth# ln -s /etc/pure-ftpd/conf/PureDB 60puredb
链接完成之后所有的文件
root@localhost:/etc/pure-ftpd/auth# ls -l
总用量 0
lrwxrwxrwx 1 root root 14 5月 20 09:28 60db -> ../conf/PureDB
lrwxrwxrwx 1 root root 26 5月 20 09:29 60puredb -> /etc/pure-ftpd/conf/PureDB
lrwxrwxrwx 1 root root 26 10月 9 2012 65unix -> ../conf/UnixAuthentication
lrwxrwxrwx 1 root root 25 10月 9 2012 70pam -> ../conf/PAMAuthentication
5. 重启 pure-ftpd 自行测试
root@localhost:~#chown ftpu.ftpg -R /www
root@localhost:~# /etc/init.d/pure-ftpd restart
更改密码
root@localhost:~# cd /etc/pure-ftpd
root@localhost:~# pure-pw passwd test1 -f pureftpd.passwd -m
root@localhost:~# pure-pw userdel test1 -f pureftpd.passwd -m #删除用户
centos配置
1.安装 yum 源
[root@iZ2ze97fdsfo ~]# yum -y install epel-release
[root@iZ2ze97fdsfo ~]# yum clean all
2.yum 安装
[root@iZ2ze97fdsfo ~]# yum -y install pure-ftpd
3. 编辑配置文件
[root@iZ2ze97fdsfo ~]# vim /etc/pure-ftpd/pure-ftpd.conf
PureDB /etc/pure-ftpd/pureftpd.pdb
#去掉这行注释,指定路径,PureDB用户数据库文件
VerboseLog yes
#开启日志 /var/log/pureftpd.log
NoAnonymous yes
#拒绝匿名用户登录
PassivePortRange 48000 50000
#使用被动模式,限制端口。
4. 添加用户
[root@iZ2ze97fdsfo ~]# groupadd ftpgroup
[root@iZ2ze97fdsfo ~]# useradd -g ftpgroup -s /sbin/nologin -d /dev/null ftpuser
创建虚拟账户
[root@iZ2ze97fdsfo ~]# pure-pw useradd test -d /data/ftp/ -u ftpuser -m
配置目录权限
[root@iZ2ze97fdsfo ~]# mkdir /data/ftp -p
[root@iZ2ze97fdsfo ~]# chown ftpuser.ftpgroup /data/ftp/ -R
[root@iZ2ze97fdsfo ~]# /ect/init.d/pure-fptd start
可能会出现的问题
可能你虚拟用户用使用的不是ftpu,而是其他的,譬如现在我用的www-data,添加完用户之后使用连接软件连接FTP会出现一个问题,如图所示
这个问题也是最近才出现的,说一下解决办法。就拿我现在的情况来举例子,我现在pure-ftpd的用户是www-data,UID为33
但是在pure-ftpd的配置文件里默认是1000,只要将1000改成自己使用用户的UID重启服务即可,配置文件路径。
root@iZbp1fcqc8bu4iu65ow0bqZ:~# cat /etc/pure-ftpd/conf/MinUID
1000
root@iZbp1fcqc8bu4iu65ow0bqZ:~# echo "33" > /etc/pure-ftpd/conf/MinUID
root@iZbp1fcqc8bu4iu65ow0bqZ:~# /etc/init.d/pure-ftpd restart
如果你开启了iptables防火墙,光开21端口是不够的,被动端口也要开,比如我的是从48000到50000,你不可能一个一个的开,涉及到了iptables批量开放端口,操作如下。
[root@iZ2ze97fdsfodnhh1iuz4xZ ~]# iptables -I INPUT -p tcp --dport 48000:50000 -j ACCEPT
[root@iZ2ze97fdsfodnhh1iuz4xZ ~]# /etc/init.d/iptables save > /etc/sysconfig/iptables
[root@iZ2ze97fdsfodnhh1iuz4xZ ~]# /etc/init.d/iptables restart
直接编辑配置文件也可以,加入这条,然后重启即可。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 48000:50000 -j ACCEPT
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。