Pure-ftpd提供了一个轻量级、快速、多语言、具有基本功能特性的FTPServer配置方案。本文展现了如何在CentOS7.x上安装和配置Pure-ftpd,并在此过程当中阐述PUre-Ftpd的设计特性。html
首先须要开启epel,才有pure-ftpd的源,一条命令安装好:mysql
yum -y install epel-release && yum -y install pure-ftpd
不一样于其余的多数守护进程(daemon),Pure-FTPd 的配置比较特别:它不读取任何的配置文件,配置选项都是经过命令行参数来实现的。例如:参数 '-H' 被设计为经过避免 DNS 查询来加快服务器的速度。要启用该特性,咱们只须要将其加到命令行中: pure-ftpd -H 。备选的长参数也被支持的,下面是一个等价的命令 pure-ftpd --dontresolvesql
针对喜欢配置文件的用户,Pure-FTPd 官方给出了一种方案:经过一个封装(wrapper)工具,将配置文件解析并将其转换成命令行参数。首先根据本身的须要编辑配置文件 pure-ftpd.conf,然后经过下面的命令启动 pure-config.pl /etc/pure-ftpd.conf。pure-config.pl 是一个 perl 脚本,它根据配置文件采用合适的命令行选项来调用 pure-ftpd数据库
以上段落是抄的。原文在此服务器
因此咱们须要先配置一下pure-ftpd.conf 来预约义一下命令行参数,我的推荐如下配置:app
ChrootEveryone yes //锁定全部用户到家目录中 # TrustedGID 100 //信任组ID100,能够不锁定 MaxClientsNumber 50 //最大的客户端数量 MaxClientsPerIP 8 //同一个IP容许8个连接 DisplayDotFiles no //不显示隐藏文件 AnonymousOnly no //只容许匿名用户 NoAnonymous yes//不容许匿名用户 DontResolve yes //禁止反向解析 MaxIdleTime 10 //最大空闲10分钟 # LDAPConfigFile /etc/pureftpd-ldap.conf //LDAP配置文件目录 # MySQLConfigFile /etc/pureftpd-mysql.conf//MySQL配置文件目录 # PGSQLConfigFile /etc/pureftpd-pgsql.conf //PGSQL配置文件目录 PureDB etc/pure-ftpd/pureftpd.pdb //虚拟用户数据库,CentOS下默认位置 # UnixAuthentication yes //主机认证 LimitRecursion 2000 10 //别表最大显示2000个文件,最深8个目录 AnonymousCanCreateDirs no //是否容许匿名用户建立目录 #MaxLoad 4 //最多可下载的数量 # PassivePortRange 30000 50000 //主动链接的端口范围 ForcePassiveIP 192.168.0.1 //这个地址老是直到匿名目录 # AnonymousRatio 1 10 //匿名用户上传下载速度比率 # UserRatio 1 10 //用户上传下载速度比率 # Bind 127.0.0.1,21 //绑定IP和端口 # AnonymousBandwidth 8 //匿名用户带宽8KB # UserBandwidth 8 //用户带宽8KB Umask 133:022 //文件和目录的umask MinUID 1000 //用户ID至少要大于1000才能登录 AllowUserFXP no //是否容许用户使用FXP协议登录 AllowAnonymousFXP no //是否容许匿名用户使用FXP协议 ProhibitDotFilesWrite no //是否容许写入点文件 ProhibitDotFilesRead no //是否容许读取点文件 AnonymousCantUpload yes //不容许匿名用户上传 #NoChmod yes //不容许用户改变权限 #KeepAllFiles yes //容许用户断点续传 #Quota 1000:10//磁盘配额 MaxDiskUsage 80 //磁盘的最大利用率 #NoRename yes //不容许自动重命名 IPV4Only yes //只容许使用IPV4协议 ClientCharset utf-8 //客户端默认编码
其实在CentOS下,/etc/pure-ftpd/
下存在一个默认的pure-ftpd.conf
,每一行都有详尽的注释,有时间能够阅读一下。工具
首先咱们须要新建一个用户,此用户做为pure-ftpd虚拟用户的依托用户,此用户的home directory也将做为FTP root,固然你新建目录的时候也能够不指定home directory,并在创建完毕之后将FTP root chown给此用户。编码
groupadd ftpgroup //新建系统组 useradd -g ftpgroup -M -s /sbin/nologin ftpadmin //新建一个FTP用户,不建立用户目录,假定已经存在一个FTP root做为FTP的根目录。 chown –R ftpuser:ftpgroup ftproot/ //把FTP目录的所属用户和组改成虚拟用户所依托的系统用户和组 pure-pw useradd puser –u ftpuser –d /ftproot –m //命令格式很好懂,pure-pw 命令使用useradd 须要添加的用户名, -u标明虚拟用户而且与系统用户权限关联,-d指定了系统用户Home目录中的子目录,且被限制在这个子目录里面(此处是否被限制与上文的conf文件设定相关)若是须要访问系统用户的HOME Directory,则直接使用参数 -D,-m则写入用户数据库,用户设置即时生效,无需重启进程。 pure-config.pl etc/pure-ftpd/pure-ftpd.conf &//后台启动进程。
此处,咱们新建了一个FTPadmin用户,此用户对FTP ROOT拥有全部权限,若是须要一个只读用户,须要新建一个在ftpgroup内的用户,而后再使用pure-pw建立一个依托此用户的虚拟用户便可。即pure-pw虚拟用户对FTP目录的操做权限与其依托的系统用户对FTP目录的权限保持一致。命令行