Ubuntu Server 10.04下pure-ftpd配置大全
Pureftpd是一款快速,高質(zhì)量,功能齊全的ftp服務(wù)器,最重要的是可以支持設(shè)置客戶端默認(rèn)編碼,Ubuntu Server 10.04下pure-ftpd的配置過程如下。
在Ubuntu中pure-ftpd是什么樣
Ubuntu/Debian 提供了三個(gè)不同的 Pure-FTPd 的 deb 安裝包,分別是 pure-ftpd、pure-ftpd-ldap 和 pure- ftpd-mysql,其中 ldap 和 mysql 分別表示 Pure-FTPd 跟 ldap 和 mysql 集成,另外這三個(gè)包都依賴于 pure-ftpd-common。如果我們不需要 ldap 和 mysql 的話,選擇 pure-ftpd 就可以了。
配置方式
不同于其他的多數(shù)守護(hù)進(jìn)程(daemon),Pure-FTPd 的配置比較特別:它不讀取任何的配置文件,配置選項(xiàng)都是通過命令行參數(shù)來實(shí)現(xiàn)的。例如:參數(shù) '-H' 被設(shè)計(jì)為通過避免 DNS 查詢來加快服務(wù)器的速度。要啟用該特性,我們只需要將其加到命令行中: pure-ftpd -H 。備選的長參數(shù)也被支持的,下面是一個(gè)等價(jià)的命令 pure-ftpd --dontresolve
針對喜歡配置文件的用戶,Pure-FTPd 官方給出了一種方案:通過一個(gè)封裝(wrapper)工具,將配置文件解析并將其轉(zhuǎn)換成命令行參數(shù)。首先根據(jù)自己的需要編輯配置文件 pure-ftpd.conf,而后通過下面的命令啟動(dòng) pure-config.pl /etc/pure-ftpd.conf。pure-config.pl 是一個(gè) perl 腳本,它根據(jù)配置文件采用合適的命令行選項(xiàng)來調(diào)用 pure-ftpd。
在 Ubuntu/Debian 中,開發(fā)人員采用了另外的一種 wrapper 方式:它沒有采用單一的配置文件,而是在/etc下建立一個(gè)pure-ftpd的目錄,其下又有 conf、auth、db 這三個(gè)目錄和一個(gè)名為 pureftpd-alias-dir 的文件。每一個(gè)配置選項(xiàng)都以一個(gè)文件的形式存在于 /etc/pure-ftpd/conf 目錄中,而且是以選項(xiàng)為文件名,選項(xiàng)值為文件內(nèi)容。例如如果想配置AnonymousOnly=yes(只允許匿名用戶),則在 /etc/pure-ftpd/conf 中創(chuàng)建一個(gè)名為 AnonymousOnly 的文件,里面只有一行內(nèi)容:yes。
在 Ubuntu 中,我們只關(guān)注***一種配置方式。
環(huán)境:
1,在一臺Ubuntu server 10.4 服務(wù)器上安裝pure-ftpd配置成FTP服務(wù)器
2,在客戶端上用FileZilla Client登錄測試
操作:
1,安裝pure-ftpd
#sudo apt-get install pure-ftpd
#sudo netstat –nl
查看21端口是否已開啟。
2,在FileZilla Client用本地一賬號登錄,會(huì) 出現(xiàn)如下錯(cuò)誤

解決:在/etc/pure-ftpd/conf下創(chuàng)建DontResolve文件內(nèi)容為yes,即可解決。這時(shí)本地賬戶已經(jīng)可以使用FTP服務(wù)了。
3,利用虛擬賬戶的方式管理用戶。
(1)手動(dòng)創(chuàng)建主目錄
- #sudo mkdir /var/ftp
- #sudo mkdir /var/ftp/js
(2)創(chuàng)建組及用戶
- #sudo groupadd ftpadmins
- #sudo groupadd ftpusers
- #sudo useradd –g ftpadmins –d /dev/null –s /bin/false ftpadmin
- #sudo useradd –g ftpusers –d /dev/null –s /bin/false js
(3)改變相應(yīng)的訪問權(quán)限
- #sudo chown –R ftpadmin /var/ftp/
- #sudo chmod -R 775 /var/ftp/js
*:為了防止同組中的一個(gè)用戶刪除另一個(gè)用戶的文件作以下設(shè)置
在/etc/pure-ftpd/conf下建KeepAllFiles文件內(nèi)容為yes #禁止用戶刪除文件,TrustedGID組中的除外
在/etc/pure-ftpd/conf下建TrustedGID文件內(nèi)容為2002 #管理員組ftpadmins的GID,允許管理員刪除文件,此處的2002是ftpadmins的GID
(4)增加虛擬用戶
- #sudo pure-pw useradd admin –u ftpadmin –d /var/ftp
- #sudo pure-pw useradd js001 –u js –d /var/ftp/js
這時(shí)會(huì)在/etc/pure-ftpd/下新增pureftpd.passwd及pureftpd.pdb兩個(gè)文件
- #sudo pure-pw list
- #sudo pure-pw show js001
用以上兩個(gè)命令查看相應(yīng)用戶信息,更多的pure-pw用法可以 man pure-pw查看
(5)使虛擬用戶生效
- #sudo pure-pw mkdb
(6)使用pureDB驗(yàn)證方式,如果沒有以下步驟,虛擬用戶是無法登錄的,會(huì)出現(xiàn)530的錯(cuò)誤信息。
- #cd /etc/pure-ftpd/auth
- #sudo ln –s ../conf/PureDB 60puredb
(7)重啟pure-ftpd服務(wù)
- #sudo /etc/init.d/pure-ftpd restart
總結(jié):pure-ftpd配置完成了,簡單的一個(gè)FTP搭建起來了。
可是權(quán)限問題來了,在pure-ftpd的配置中沒有看到嚴(yán)格的權(quán)限設(shè)置,相關(guān)的有:
1,如果你的 pure-ftpd 編譯時(shí)加入了 pure-uploadscript 支持,這個(gè)指令將會(huì)使 pure-ftpd
發(fā)送關(guān)于新上傳的情況信息到 /var/run/pure-ftpd.upload.pipe,這樣 pure-uploadscript
就能讀然后調(diào)用一個(gè)腳本去處理新的上傳。
在/etc/pure-ftpd/conf下建CallUploadScript內(nèi)容為 yes 就會(huì)在/var/run下產(chǎn)生pure-ftpd.upload.pipe,pure-ftpd.upload.lock
這個(gè)方法我還沒試用。
2,KeepAllFiles=yes #禁止用戶刪除文件,TrustedGID組中的除外
TrustedGID=1001 #管理員組ftpadmins的GID,允許管理員刪除文件
ChrootEveryone=yes #把所有用戶限制在其homedir下
3,把虛擬用戶映射到不同的本地用戶上,這樣就可控制權(quán)限了。缺點(diǎn)是要建不同本地組和用戶。
通過文章完整的描述,想必大家都知道了Ubuntu Server 10.04下pure-ftpd配置過程。
【編輯推薦】