Pure-FTPd FTP server
Pure-FTPd is a fast, production-quality, standards-conformant FTP server based upon Troll-FTPd. Features include chrooted home directories, virtual domains, built-in 'ls', anti-warez system, configurable ports for passive downloads, FXP protocol, bandwidth throttling, ratios, fortune files, Apache-like log files, fast standalone mode, atomic uploads, text / HTML / XML real-time status report, virtual users, virtual quotas, privilege separation, SSL/TLS and more.
不翻譯了,中文的介紹就是:
快速,高質量,功能齊全的ftp服務器,最重要的是可以支持設置客戶端默認編碼,這樣windows和linux之間用這個ftp就解決了亂碼的問題了。這個功能vsftpd和proftpd都不具備,proftpd倒可以打補丁來支持,但傳說是不安全,最後那個補丁沒有更新了,貌似。
目錄[隱藏] |
[編輯]安裝
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
不解釋主機名,選“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” 組了。