安裝
sudo apt-get install pure-ftpd
配置
ubuntu 的 pure-ftpd 的配置檔案很特別,都是放到 “/etc/pure-ftpd/conf” 目錄下,而且是以選項為檔名,選項值為檔案內容。譬如你需要啟用–trustedgid 選項,你只需要在該目錄下建立一個名為:TrustedGID 的檔案,並且把信任的 GID 寫入到檔案中即可。
下面介紹的配置請把選項名作為檔名在 “/etc/pure-ftpd/conf” 下新建一個文字檔案,然後內容就寫選項的值。
匿名登入功能
預設情況下不開啟匿名登入功能的,把 /etc/pure-ftpd/conf/NoAnonymous 的內容改為 no 在“系統->系統管理->使用者名稱和組” 新建一個叫 “ftp” 的使用者名稱(一定要是這個名字),“高階” 裡面的主組的話可以新建一個叫 “ftpgroup” 的組來方便管理,如果不想 “ftp” 具備登入本地系統的功能,可以在賬戶屬性的 “高階” 裡的 “高階設定” 的 “Shell” 裡選 “/bin/false”,主目錄就選一個你想要匿名使用者登入是所在的目錄就可以了,我是設定了 “/var/ftp/public” 。
到這裡設定完畢後,重啟 ftp 服務(最好重啟系統)
sudo /etc/init.d/pure-ftpd restart
匿名使用者應該就能登入了
虛擬使用者設定
在“系統->系統管理->使用者名稱和組” 新建一個叫 “ftpuser” 的使用者名稱(ftpuser 可以是你自己喜歡的一個名字),主組的話可以推薦選 “ftpgroup” 來方便管理,如果不想 “ftpuser” 具備登入本地系統的功能,可以在賬戶屬性的 “高階” 裡的 “高階設定” 的 “Shell” 裡選 “/bin/false”,主目錄就選一個你想要該使用者登入是所在的目錄就可以了(其實是我沒有測試如果虛擬使用者和實際使用者的主目錄設定了不同的目錄的結果),我是設定了 “/var/www/site” 。
然後
sudo pure-pw useradd user1 -u ftpuser -g ftpgroup -d /var/www/site
會提示你設定一個密碼的。 這個命令就是用本地系統中的 “ftpuser” 使用者登入,虛擬使用者名稱為 “ftpuser”,“ftpuser” 的主目錄在 “/var/www/site” 虛擬使用者和本地使用者的名字可以不一樣的,自己改,其實 ftpuser 不建立也行,可以直接用 “ftp” 這個使用者的。使用者登入 ftp 後的主目錄是以這條命令所指定的主目錄為準的。
新增完之後,讓 pure-ftpd 建立虛擬使用者資料
sudo pure-pw mkdb
在/etc/pure-ftpd/auth 下,建立一個軟連結
ln -s /etc/pure-ftpd/conf/PureDB 60puredb
生成的檔案在 “/etc/pure-ftpd/pureftpd.pdb”
常用配置
注意:源裡面的 pure-ftpd 編譯的時候應該沒有新增所有的功能,所以可能某些選項不能用,在虛擬終端執行
sudo /etc/init.d/pure-ftpd restart
的時候看有沒有錯誤資訊,有的話就看哪個選項說有錯誤之類的,不要用那個選項就行了。
授權登入使用者的最小 Uid,預設 uid 小於 100 的使用者,不允許登入
MinUID 100
你也可以
sudo cat /etc/passwd | grep ftpuser
檢視一下 uid,把 MinUID 改為 ftpuser 的使用者 ID
匿名使用者的最大頻寬(KB/s)
AnonymousBandwidth 8
不解釋 WordPress 主機名,選 “yes” 的話可以大大加快登入 ftp 的速度的
DontResolve yes
客戶端登入的時候的預設編碼,開啟這個選項的話,windows 登入時就不會顯示不了中文的了
ClientCharset gbk
這個應該是不允許客戶端刪除檔案的
KeepAllFiles yes
每個 IP 的最大連線數
MaxClientsPerIP 5
資料夾許可權
讓 “/var/ftp/public” 目錄什麼人都能讀寫
sudo chmod -R 777 /var/ftp/public
具體的許可權設定請自己設定,對許可權不熟悉的可以自己搜尋教程(其實我也不熟悉的)
我自己的設定(僅供參考):
“/var/ftp” 屬於 “fanhe” 使用者,“ftpgroup” 組,許可權 775
“var/ftp/public” 屬於 “ftp” 使用者,“ftpgroup” 組,許可權 775
因為我把 “fanhe” 加入了 “ftpgroup” 組了。