對比了幾個(gè)FTP服務(wù)器,發(fā)現還是Pure-ftpd好用,Proftpd空間配額都要打補丁,麻煩.
1.Download
http://www.pureftpd.org
不知國內的電信是干嘛的,Pure-ftpd,Proftpd都被封了,這些人真是無(wú)聊.
可以通過(guò)代理上這兩個(gè)網(wǎng)站,隨便找一個(gè)國外的代理服務(wù)器,設置好IE的連接就可以上了.
2.編譯安裝
#tar zxvf purexxxx.tgz
#cd purxxxxx
#./configure \
--prefix=/usr/local/pureftpd \
--with-mysql \
--with-paranoidmsg \
--with-welcomemsg \
--with-uploadscript \
--with-cookie \
--with-virtualchroot \
--with-virtualhosts \
--with-virtualroot \
--with-diraliases \
--with-quotas \
--with-sysquotas \
--with-ratios \
--with-ftpwho \
--with-throttling \
--with-language=simplified-chinese
這時(shí),我們只用Mysql用戶(hù)認證,不用LDAP,也不用其這的.
#make
#make check
#make install
3.測試
#/usr/local/pureftpd/sbin/pure-ftpd &
運行后,用FTP登錄一下看,此時(shí)是系統用戶(hù)認證.登錄成功,表示Pure-FTPD安裝好了
4.與Mysql結合
由于編譯時(shí)帶了--with-mysql選項,所以,無(wú)需修改Pure-FTPD.
A.
先在Mysql中建一個(gè)FTP用戶(hù)表(和數據庫):
CREATE TABLE tblUser (
UserID int(11) unsigned NOT NULL auto_increment,
UserName varchar(50) NOT NULL default '',
UserPasswd varchar(50) binary NOT NULL default '',
UserUID int(11) NOT NULL default '14',
UserGID int(11) NOT NULL default '5',
UserDir varchar(250) NOT NULL default '',
UserQF int(10) NOT NULL default '500',
UserQS int(10) NOT NULL default '30',
UserStatus tinyint(1) unsigned NOT NULL default '1',
PRIMARY KEY (UserID),
UNIQUE KEY User (UserName)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
說(shuō)明
UserID 用戶(hù)ID
UserName 用戶(hù)名
UserPasswd 用戶(hù)密碼,用MD5加密
UserUID 用戶(hù)對應的系統ID,請注意,默認情況下,低于100的UID不可以登錄
UserGID 用戶(hù)對應的系統組ID
UserDir 用戶(hù)主目錄
UserQF 用戶(hù)最大文件數
UserQS 用戶(hù)最大空間M
UserStatus 用戶(hù)狀態(tài),為1時(shí)可以使用(用SQL語(yǔ)句實(shí)現,見(jiàn)后面的Mysql.conf)
b.配置Pure-FTPD
我們用Pure-FPTD自帶的啟動(dòng)腳本啟動(dòng).
進(jìn)入Pure-fptd的源代碼目錄
[root@linux pure-ftpd-1.0.15]# cd configuration-file
[root@linux configuration-file]# chmod u+x pure-config.pl
[root@linux configuration-file]# cp pure-config.pl /usr/local/pureftpd/bin
[root@linux configuration-file]# mkdir /usr/local/pureftpd/etc
[root@linux configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc
[root@linux configuration-file]# cd ..
[root@linux pure-ftpd-1.0.15]# cp pureftpd-mysql.conf /usr/local/pureftpd/etc/mysql.conf
[root@linux pure-ftpd-1.0.15]# cd /usr/local/pureftpd/etc
[root@linux etc]#vi pure-ftpd.conf
修改pure-ftpd.conf的配置,詳細配置見(jiàn)后面
[root@linux etc]#vi mysql.conf
修改Mysql連接的配置,詳細配置見(jiàn)后面
c.啟動(dòng):
#/usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
d.測試
#groupadd ftpuser
#useradd -g ftpuser -s /sbin/nologin -d /ftp/ ftpwrite
#useradd -g ftpuser -s /sbin/nologin -d /ftp/ ftpread
#mkdir /ftp
#mkdir /ftp/ipaddr
#chown ftpwrite.ftpuser /ftp/ipaddr
加入兩個(gè)FTP系統用戶(hù),假設ftpuser的GID為500,ftpwrite的UID為500,ftpread的UID為501
加入一個(gè)Mysql用戶(hù):
UserID=100
UserName=ipaddr
UserPasswd=md5(ipaddr)
UserUID=500 (501時(shí),用戶(hù)只讀)
UserGID=500
UserDir=/ftp/ipaddr
UserQF=500
UserQS=30
UserStatus=1
重啟PureFTPD,再用FTP客戶(hù)端測試
#killall pure-ftpd
#/usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
e.自啟動(dòng).
可以將啟動(dòng)腳本寫(xiě)入/etc/rc.d/rc.local里,自啟動(dòng),但不太方便,
可以寫(xiě)一個(gè)腳本,如下:
#!/bin/sh
# Startup script for the FTP Server
#
# chkconfig: - 99 99
# description: FTP Serve
case "$1" in
start)
/usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
;;
stop)
killall pure-ftpd > /dev/null
;;
*)
echo "Usage: `basename $0` {start | stop}" >&2
;;
esac
exit 0
:w /etc/init.d/pureftpd (保存到/etc/init.d/pureftpd)
#chkconfig --add pureftpd
#chkconfig pureftpd on
f.用戶(hù)管理
用PHP寫(xiě)一個(gè)程序管理Mysql表就行了.
附錄:
A.mysql.conf
MYSQLSocket /var/lib/mysql/mysql.sock
MYSQLUser sqluser
MYSQLPassword password
MYSQLDatabase kk
MYSQLCrypt md5
MYSQLGetPW SELECT UserPasswd FROM tblUser WHERE UserStatus=1 and UserName="\L"
MYSQLGetUID SELECT UserUID FROM tblUser WHERE UserStatus=1 and UserName="\L"
MYSQLGetGID SELECT UserGID FROM tblUser WHERE UserStatus=1 and UserName="\L"
MYSQLGetDir SELECT UserDir FROM tblUser WHERE UserStatus=1 and UserName="\L"MySQLGetQTAFS SELECT UserQF FROM tblUser WHERE UserStatus=1 and UserName="\L"
MySQLGetQTAFS SELECT UserQF FROM tblUser WHERE UserStatus=1 and UserName="\L"
MySQLGetQTASZ SELECT UserQS FROM tblUser WHERE UserStatus=1 and UserName="\L"
B.pure-ftpd.conf
.....
MySQLConfigFile /usr/local/pureftpd/etc/mysql.conf
#把這個(gè)打開(kāi)就行了,其它的用默認
.....
C.定制PURE-FTPD的Banner
vi src/ftpd.c
4329 # ifdef BORING_MODE
4330 addreply_noformat(0, MSG_WELCOME_TO " Pure-FTPd.");
4331 # else
4332 addreply_noformat(0, "--------- " MSG_WELCOME_TO
4333 " Pure-FTPd" VERSION_PRIVSEP VERSION_TLS " ----------");
4334 # endif
將Pure-FPD改為自定義的名稱(chēng),比如:IPADDR-FTPD
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。