對比了幾個FTP服務器,發(fā)現(xiàn)還是Pure-ftpd好用,Proftpd空間配額都要打補丁,麻煩.
1.Download
http://www.pureftpd.org
不知國內(nèi)的電信是干嘛的,Pure-ftpd,Proftpd都被封了,這些人真是無聊.
可以通過代理上這兩個網(wǎng)站,隨便找一個國外的代理服務器,設置好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
這時,我們只用Mysql用戶認證,不用LDAP,也不用其這的.
#make
#make check
#make install
3.測試
#/usr/local/pureftpd/sbin/pure-ftpd &
運行后,用FTP登錄一下看,此時是系統(tǒng)用戶認證.登錄成功,表示Pure-FTPD安裝好了
4.與Mysql結(jié)合
由于編譯時帶了--with-mysql選項,所以,無需修改Pure-FTPD.
A.
先在Mysql中建一個FTP用戶表(和數(shù)據(jù)庫):
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 ;
說明
UserID 用戶ID
UserName 用戶名
UserPasswd 用戶密碼,用MD5加密
UserUID 用戶對應的系統(tǒng)ID,請注意,默認情況下,低于100的UID不可以登錄
UserGID 用戶對應的系統(tǒng)組ID
UserDir 用戶主目錄
UserQF 用戶最大文件數(shù)
UserQS 用戶最大空間M
UserStatus 用戶狀態(tài),為1時可以使用(用SQL語句實現(xiàn),見后面的Mysql.conf)
b.配置Pure-FTPD
我們用Pure-FPTD自帶的啟動腳本啟動.
進入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的配置,詳細配置見后面
[root@linux etc]#vi mysql.conf
修改Mysql連接的配置,詳細配置見后面
c.啟動:
#/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
加入兩個FTP系統(tǒng)用戶,假設ftpuser的GID為500,ftpwrite的UID為500,ftpread的UID為501
加入一個Mysql用戶:
UserID=100
UserName=ipaddr
UserPasswd=md5(ipaddr)
UserUID=500 (501時,用戶只讀)
UserGID=500
UserDir=/ftp/ipaddr
UserQF=500
UserQS=30
UserStatus=1
重啟PureFTPD,再用FTP客戶端測試
#killall pure-ftpd
#/usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
e.自啟動.
可以將啟動腳本寫入/etc/rc.d/rc.local里,自啟動,但不太方便,
可以寫一個腳本,如下:
#!/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.用戶管理
用PHP寫一個程序管理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
#把這個打開就行了,其它的用默認
.....
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改為自定義的名稱,比如:IPADDR-FTPD
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。