proftpd+mysql與pureftpd+mysql互相轉移的方法
用哪個ftp到無所謂,因為用戶信息都存放在資料庫之中,只要將數據表欄位的對應關係找清楚,平滑轉移也應該沒有問題:)
對於proftpd+mysql的users數據表信息,在proftpd.conf中如下描述:
SQLUserInfo users userid passwd uid gid homedir shell
具體參數含義請參照http://www.proftpd.org/docs/directives/linked/config_ref_mod_sql.html
pureftpd+mysql的配置信息是在pure-ftpd.conf其中包含配置
MySQLConfigFile /path/to/pureftpd-mysql.conf
具體與資料庫的連接還有用戶表等參數在pureftpd-mysql.conf中:
#如下幾個欄位是users表基本項。
#如果對sql語言熟悉,錶轉換可以很少更改欄位名如Dir在proftpd中是homedir,修改為SELECT homedir FROM users WHERE User="\L"即可。
#
MYSQLGetPW SELECT Password FROM users WHERE User="\L"
MYSQLGetUID SELECT Uid FROM users WHERE User="\L"
MYSQLGetGID SELECT Gid FROM users WHERE User="\L"
MYSQLGetDir SELECT Dir FROM users WHERE User="\L"
#如下是可選設置,根據需要設定表結構
MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L"
MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L"
MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L"
MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L"
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L"
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L"
#有了如下2項,用戶表可不要uid,gid欄位,我們可不要這麼做:),如果用戶表gid為空,則必須設定默認值,認證過程需要。
#MYSQLDefaultUID 65533 //設定為ftp賬號的組id
MYSQLDefaultGID 65533
==============================================================================
#如果要加快查詢速度,可以用文檔推薦的存儲過程(Mysql5)。
MYSQLGetDir CALL get_path_from_name("\L")
替代了
MYSQLGetDir SELECT Dir FROM user WHERE User="\L"
===============================================================================
簡單轉換后,都能正常運行,如果需要進一步的控制設定,可自行調整,包括sql語句的修改。
順便問一下,pureftpd的匿名賬號必須用系統中的ftp么?應該和apache,proftpd一樣可以選定吧~有知道的說一聲啊
《解決方案》
虛擬用戶還是很好的