Pure-ftpd提供了一個輕量級、快速、多語言、具有基本功能特性的FTPServer配置方案。本文展現瞭如何在CentOS7.x上安裝和配置Pure-ftpd,並在此過程當中闡述PUre-Ftpd的設計特性。mysql
首先須要開啓epel,纔有pure-ftpd的源,一條命令安裝好:sql
yum -y install epel-release && yum -y install pure-ftpd
複製代碼
不一樣於其餘的多數守護進程(daemon),Pure-FTPd 的配置比較特別:它不讀取任何的配置文件,配置選項都是經過命令行參數來實現的。例如:參數 '-H' 被設計爲經過避免 DNS 查詢來加快服務器的速度。要啓用該特性,咱們只須要將其加到命令行中: pure-ftpd -H 。備選的長參數也被支持的,下面是一個等價的命令 pure-ftpd --dontresolve數據庫
針對喜歡配置文件的用戶,Pure-FTPd 官方給出了一種方案:經過一個封裝(wrapper)工具,將配置文件解析並將其轉換成命令行參數。首先根據本身的須要編輯配置文件 pure-ftpd.conf,然後經過下面的命令啓動 pure-config.pl /etc/pure-ftpd.conf。pure-config.pl 是一個 perl 腳本,它根據配置文件採用合適的命令行選項來調用 pure-ftpd服務器
以上段落是抄的。原文已經掛了………………app
因此咱們須要先配置一下pure-ftpd.conf 來預約義一下命令行參數,我的推薦如下配置:工具
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給此用戶。spa
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目錄的權限保持一致。命令行