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目錄的權限保持一致。命令行