欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PureFTPd+Mysql+PHP_Manager實現(xiàn)虛擬用戶磁盤限額的配置方法

 更新時間:2013年06月08日 19:08:18   作者:  
前幾天為了讓全校老師都能用上校內(nèi)的FTP,決定在FreeBSD4.9下裝支持虛擬用戶帶磁盤限額的FTP軟件。開始的時候我想過用PROFTPD,可是試了一下,對Mysql數(shù)據(jù)的用戶管理支持不能滿足我的要求,聽大家說PureFTPd對Mysql等數(shù)據(jù)庫的支持不錯,于是開始轉(zhuǎn)向這個FTP軟件
在安裝PureFTPd以前,要做好以下準備工作:
1. 安裝FreeBSD4.9系統(tǒng)。
2. 定制內(nèi)核,在內(nèi)核中加入“options QUOTA”以實現(xiàn)用戶配額的支持(注:其他*nix系統(tǒng)如何實現(xiàn),請各位自己搜索實現(xiàn)。)
3. 安裝好APACHE+PHP平臺,因為我們后面要用PHP_Manager實現(xiàn)用戶在線管理。(注:關(guān)于這個安裝的內(nèi)容網(wǎng)上有很多教程,在FreeBSD下可以直接用PORTS方式安裝就可以了。)
做好以上準備工作之后,我們就可以開始進入真正的安裝過程了。
(注:以下安裝全部采用PORTS方式安裝)
一、 安裝Mysql
我安裝的Mysql是4.0版本的,所以如果有最新大家也可以嘗試啊。

# cd /usr/ports/databases/mysql40-server
# make install clean

安裝完后產(chǎn)生啟動腳本在 /usr/local/etc/rc.d/mysql-server.sh

你可以運行以下命令,看Mysql服務(wù)是否已經(jīng)啟動。

# ls | grep mysql

如果有返回信息,就表示Mysql已經(jīng)啟動了,如果沒有啟動,運行以下命令。

# cd /usr/local/etc/rc.d
# ./mysql-server.sh start

如果你要停止Mysql服務(wù)。

# /usr/local/etc/rc.d/mysql-server.sh stop

確認服務(wù)啟動后,我們來測試數(shù)據(jù)庫運行是否正常:
(注:默認情況下Mysql的用戶是root,密碼為空,所以請立即登錄Mysql修改root用戶的密碼)

# mysql

出現(xiàn)下面內(nèi)容表示運行正常。

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16 to server version: 4.0.18
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
輸入exit退出Mysql

Mysql的root用戶設(shè)置一個口令123456

# mysqladmin -u root password ‘123456'

設(shè)置完后我們再來測試一下密碼是否生效了。

# mysql -u root -p
Enter password:

出現(xiàn)提示密碼,輸入正確密碼并回車。
如果出現(xiàn)以下內(nèi)容,表示設(shè)置成功。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16 to server version: 4.0.18
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

如果出現(xiàn)以下內(nèi)容,表示設(shè)置失敗。(如果這樣,你就慘了,哈哈)

ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)


二、 安裝PureFTPd
1.下面我們開始安裝PureFTPd,同樣以FreeBSD的Ports方式安裝。

# cd /usr/ports/ftp/pure-ftpd
# make WITH_MYSQL=1 \ MYSQL數(shù)據(jù)庫支持
WITH_LANG=simplified-chinese \ 提示文字為簡體中文
CONFIGURE_ARGS= \
' --prefix=/usr/local/pureftpd \ 安裝目錄
--with-paranoidmsg \ //唔....不知該怎么說.算是可以給特定人的信息吧.
--with-welcomemsg \ //支持登錄后的信息顯示,我反正搞不定,哈哈
--with-uploadscript \ //當一個文件被完整上傳完后自動呼叫某一script去對這個文件
處理.當然.這個script得你自己寫.
--with-largefile \ //支持下載超過2G的文件.
--with-cookie \ //使用者進站看到的東東.類似進站畫面.
--with-virtualchroot \ //安全的chroot.
--with-virtualhosts \ //跟http的virtualhost有異曲同工之妙.
--with-virtualroot \ //虛擬root支持
--with-diraliases \ //跟Serv-U上面的link功能一樣.
--with-quotas \ // 使用quota.(非系統(tǒng)下的quota)
--with-sysquotas \ //允許使用操作系統(tǒng)的Quota(磁盤限額)
--with-ratios \ //上下傳比率支持.
--with-ftpwho \ //使用pure-ftpwho命令查看線上用戶.
--with-everything \ // 所有功能全上.(自己看著辦吧)
--with-throttling' \ //頻寬可設(shè)限.
install clean


安裝完后,就會在/usr/local目錄下生成一個pureftpd目錄,我們要使用的文件都在這個目錄中。

2.下面我們開始配置pure-ftpd.conf文件
在這里我全使用默認值,只修改下面內(nèi)容以支持MYSQL。(注:Pureftpd可以同時支持ldap,mysql,pgsql,puredb認證)

# MySQL configuration file (see README.MySQL)
MySQLConfigFile /usr/local/pureftpd/etc/pureftpd-mysql.conf

3.配置文件詳解(摘自網(wǎng)上陳景峰所著《Pure-FTPd + LDAP + MySQL + PGSQL + Virtual-Users + Quota How To》)
ChrootEveryone yes
chroot每一個用戶,等同于Proftpd 中的DefaultRoot~ , 可以限制用戶在某個地方活動,增強服務(wù)器的安全性。使用過wu-ftpd的使用都應(yīng)該知道cd /會發(fā)生什么!
TrustedGID 50
#以上兩者要一起用
BrokenClientsCompatibility no
MaxClientsNumber 50
#最大鏈接數(shù)
Daemonize yes
#Fork in background 以守護進程方式在后臺運行
MaxClientsPerIP 5
#每個ip最多鏈接數(shù),最好設(shè)小點。
VerboseLog no
#是否要把所有client端的指令都log下來
DisplayDotFiles no
#顯示開頭的文件
AnonymousOnly no
#是否只讓匿名登錄
NoAnonymous no
#不開放匿名登入
SyslogFacility ftp
#應(yīng)該是對日志做一下過濾 (auth, authpriv, daemon, ftp, security, user, local*)可以讓日志只記錄想要的信息
DontResolve yes
#不反向解釋客戶端的ip
MaxIdleTime 5
#最大閑置時間
#LDAPConfigFile /usr/local/pureftpd/etc/pureftpd-ldap.conf
#使用LDAP認證,
MySQLConfigFile /usr/local/pureftpd/etc/pureftpd-mysql.conf
#使用MySQL認證
#PGSQLConfigFile /usr/local/pureftpd/etc/pureftpd-pgsql.conf
#使用PGSQL認證
#PureDB /ftp/etc/pureftpd.pdb
#使用者資料的DB存放地點 [由于我是用PureFTPD的內(nèi)建DB.固有此選項]
#ExtAuth /var/run/ftpd.sock
#pure-authd socket 路徑 (詳細請看 README.Authentication-Modules)
#PAMAuthentication yes
#開啟PAM認證
#UnixAuthentication yes
#如果你想要有簡單的Unix(/etc/passwd)的認證的話
FortunesFile /usr/local/pureftpd/etc/.welcome
#顯示的歡迎信息文件,你可以創(chuàng)建該文件,輸入一些文字,然后你重啟你的FTP服務(wù),就會有意外的發(fā)現(xiàn)。
LimitRecursion 2000 8
#ls最多列出3000個文件.最深8層
AnonymousCanCreateDirs no
#匿名用戶可以創(chuàng)建目錄
MaxLoad 4
#當system load超過4時.使用者將不能再下載
PassivePortRange 30000 50000
#被動連接應(yīng)答范圍
ForcePassiveIP 192.168.0.1
#不會譯:(
AnonymousRatio 1 10
#Anonymous連接上傳/下載比率
UserRatio 1 10
#用戶上傳/下載比率(注:如果使用ldap,mysql,pgsql,pam不要啟用該功能,否則你在ldap等中設(shè)置的Ratio無校)
AntiWarez no
#上傳的文件不能被下載(owner is ftp).等到local admin確認
Bind 127.0.0.1,8021
#要綁定和ip/port,在你的系統(tǒng)中有兩個FTP Server這樣你其中一個FTP就要使用其它端口。
#格式-> 127.0.0.1,21 如果只寫port表All ip,port
AnonymousBandwidth 8
#Anonymous 帶寬,單位KB/s
UserBandwidth 8
#用戶帶寬,單位KB/s
Umask 133:022
#上傳文件的Umask.(<umask for files>:<umask for dirs> )
MinUID 1000
# UID至少多少才能登錄
AllowUserFXP yes
#支不支持FXP
AllowAnonymousFXP no
#Anonymous支不支持FXP
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
#(”.”)開頭的文件能不能被讀/寫,UNIX Like下以點開頭的文件是隱藏文件ls –a才能列出
#Pureftpd Quota模式下做產(chǎn)生” .ftpquota”文件。
AutoRename no
#上傳文件若有相同文件名自動改名(file.1,file.2...)
AnonymousCantUpload no
#匿名用戶上傳文件
TrustedIP 10.1.1.1
#鎖IP.
LogPID
#Log文件添加PID
AltLog stats:/ftp/etc/log/pureftpd.log
#log存放地點,注日志有幾種常用的格式
#clf 類似apache格式,stats UNIX log格式,w3c 標準W3C格式,可能是HTML格式
NoChmod yes
#不給Chmod指令的權(quán)限
KeepAllFiles no
#使用者可續(xù)傳.但不可刪除文件
CreateHomeDir yes
#如果user的home不存在自動建立(我把這個設(shè)為YES)
Quota 1000:10
#Quota <文件數(shù)>:<容量Megabytes >,F(xiàn)TP限制10M空間,可以上傳1000個文件(注:如果使用ldap,mysql,pgsql,pam不要啟用該功能,否則你在ldap等中設(shè)置的Quota無校)
PIDFile /ftp/etc/log/pure-ftpd.pid
#記錄pure-ftpd的PID文件
CallUploadScript yes
#呼叫UploadScript
MaxDiskUsage 99
#當硬盤使用率到多少時將停止上傳
NoRename yes
#用戶不能重命名文件名
CustomerProof yes
PerUserLimits 3:20
#<每個賬號最多可登入幾次:Anonymous最多可同時登入幾次>

4. 創(chuàng)建Mysql數(shù)據(jù)庫中的FTP虛擬用戶管理數(shù)據(jù)庫ftpusers
將以下內(nèi)容存為script.mysql文件

INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update
_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Proces
s_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES
('127.0.0.1','ftp',PASSWORD('123456'),'Y','Y','Y','Y','N','N','N','N','N','N
','N','N','N','N');

FLUSH PRIVILEGES;

CREATE DATABASE ftpusers;

USE ftpusers;

CREATE TABLE admin (
Username varchar(35) NOT NULL default '',
Password char(32) binary NOT NULL default '',
PRIMARY KEY (Username)
) TYPE=MyISAM;

INSERT INTO admin VALUES ('Administrator',MD5('123456'));

CREATE TABLE users (
User char(16) NOT NULL default '',
Password char(32) binary NOT NULL default '',
Uid int(11) NOT NULL default '2000',
Gid int(11) NOT NULL default '2000',
Dir char(128) NOT NULL default '',
QuotaFiles int(10) NOT NULL default '500',
QuotaSize int(10) NOT NULL default '30',
ULBandwidth int(10) NOT NULL default '80',
DLBandwidth int(10) NOT NULL default '80',
status enum('0','1') NOT NULL default '1',
ipaccess varchar(15) NOT NULL default '*',
comment tinytext NOT NULL,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;

INSERT INTO `users` VALUES ('kevin',MD5('123456'),1001,2000,'/home/kevin',500,30,
80,5);

先在Mysql數(shù)據(jù)庫建立一個對數(shù)據(jù)庫有操作權(quán)限的用戶ftp,密碼為123456。
再創(chuàng)建新數(shù)據(jù)庫ftpusers,并新建兩個表admin和users,往admin表中加入管理用戶帳號,往users表中加入新的FTP用戶kevin,密碼為123456。

然后我們運行以下命令來生成數(shù)據(jù)庫ftpusers。

# mysql -u root -ppassword < script.mysql
注意,-p是輸入密碼,它和后面你輸入的password中沒有空格。

5.修改/usr/local/pureftpd/etc/pureftpd-mysql.conf配置文件
內(nèi)容如下所示:

MYSQLServer 127.0.0.1
#MYSQL服務(wù)器的IP
MYSQLPort 3306
#MYSQL 端口號
MYSQLSocket /var/lib/mysql/mysql.sock
#使用UNIX.sock本地連接
注:MYSQLServer 與 MYSQLSocket 選擇一種即可

MYSQLUser ftp
#MYSQLUser 數(shù)據(jù)用戶名
MYSQLPassword 123456
#MYSQL數(shù)據(jù)庫用戶的密碼
MYSQLDatabase ftpusers
#FTP數(shù)據(jù)數(shù)據(jù)庫
MYSQLCrypt md5
#密碼加密方式"cleartext", "crypt", "md5" and "password"
# cleartext 明文,crypt,md5,password是Backend password(‘your-passwd')函數(shù)(MYSQL數(shù)據(jù)庫所使用的password()函數(shù))
MYSQLGetPW SELECT Password FROM users WHERE User="\L"
# 密碼字段,我使用users表中的Password做為密碼字段
MYSQLGetUID SELECT Uid FROM users WHERE User="\L"
#UID用戶ID字段
MYSQLDefaultUID 1000
#默認的UID (注:如何開啟該選項,MYSQLGetUID將失去作用)
MYSQLGetGID SELECT Gid FROM users WHERE User="\L"
#GID組ID字段
MYSQLDefaultGID 1000
#默認的GID (注:如何開啟該選項,MYSQLGetGID將失去作用)
MYSQLGetDir SELECT Dir FROM users WHERE User="\L"
#FTP用戶目錄如/home/web/www-9812-net
MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L"
#磁盤限額,文件數(shù)限制。如1000,允許用戶上傳1千個文件
MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L"
#磁盤限額,F(xiàn)TP用戶空間限制(單位為M),如:100M
MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L"
MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L"
#上傳/下載比率。MySQLGetRatioUL為上傳比,MySQLGetRatioDL下載比。如:1:5
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L"
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L"
#下傳/下載帶寬(單位KB/s)。MySQLGetBandwidthUL上傳帶寬,MySQLGetBandwidthDL下載帶寬。如上傳500KB/s,下載50KB/s
MySQLForceTildeExpansion 1
MySQLTransactions On
#不會翻譯


修改好該配置文件后,我們繼續(xù)。

6.運行PureFTPd
為了實現(xiàn)匿名登錄,需要在系統(tǒng)中加一個ftp用戶。

有了ftp.理所當然得也要有賬號才行.
#vipw
ftp:*:2000:2000::0:0:ftp:/home/ftp:
/sbin/nologin
#vi /etc/group
ftpusers:*:2000:

操作完后我們就添加一個ftp帳號屬于ftpusers組,用戶id和組id都是2000

啟動PureFTPd
# /usr/local/pureftpd/bin/pure-config.pl ../etc/pure-ftpd.conf

為了以后方便的進行Ftp服務(wù)的管理,我自己在/usr/local/etc/rc.d中新建了一個pureftpd.sh文件。

# vi pureftpd.sh

#!/bin/sh

case "$1" in
start)
[ -x /usr/local/pureftpd/etc/pure-ftpd.conf ] && \
/usr/local/pureftpd/bin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.c
onf > /dev/null && \
echo -n ' pure-ftp'


stop)
killall pure-ftpd > /dev/null && \
echo -n ' pure-ftp'


*)
echo "Usage: `basename $0` {start | stop}" >&2

esac

exit 0

設(shè)置該文件的可執(zhí)行權(quán)限

# chmod u+x pureftpd.sh

以后可以用下列命令啟動PureFTPd服務(wù)

# /usr/local/etc/rc.d/pureftpd.sh start

用下列命令停止PureFTPd服務(wù)

# /usr/local/etc/rc.d/pureftpd.sh stop

測試FTP是否正常了。
# ftp 你的IP
Connected to 127.0.0.1.
220---------- 歡迎來到 Pure-FTPd ----------
220-您是第1個使用者,最多可達50個連接
220-現(xiàn)在是本地時間 09:02。服務(wù)器端口: 21。
220 在15分鐘內(nèi)沒有活動,您將被斷線。
Name (127.0.0.1:kevin):kevin
Password:
230-使用者kevin 有以下組的權(quán)限: ftpusers
230-這個服務(wù)器支持FXP傳輸
230-OK. 目前限制的目錄是 /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

恭喜你,你的FTP服務(wù)已經(jīng)正常工作了。

三、 使用PHP_Manager進行用戶管理

下載最新的PHP_Manager軟件

# tar zxvf ftp_v1.3.1.tar.gz
# mv ftp_v1.3.1 /www/path/data/ftp
# cd /www/path/data/ftp
# vi config.php
修改config.php配置文件

$LANG = $ZH_CN; //你的PHP_Manager所用的語言
$DBHost = “l(fā)ocalhost”; //你的Mysql服務(wù)器的Host
$DBLogin = “ftp”; //登錄數(shù)據(jù)庫的用戶
$DBPassword = “123456”; //登錄數(shù)據(jù)庫的用戶密碼
$DBDatabase = “ftpusers”; //實現(xiàn)虛擬用戶管理的數(shù)據(jù)庫的名字
$FTPAddress = “61.132.35.21:21”; //你的FTP服務(wù)的IP地址和端口號

然后使用網(wǎng)頁方式登錄管理。

http://你的服務(wù)器域名/ftp

管理員是administrator,密碼是123456,這在前面建數(shù)據(jù)庫的時候可以修改的。
進入之后全是中文,不要我多寫了吧。
祝大家快樂!

我已經(jīng)把PHP_Manager修改為支持中文的了,現(xiàn)傳上來給大家用。

http://www.linuxsir.org/bbs/attachment.php?s=&postid=578136

有關(guān)其他系統(tǒng)下的安裝方法,可以參照陳景峰所著《Pure-FTPd + LDAP + MySQL + PGSQL + Virtual-Users + Quota How To》
您可能感興趣的文章:

相關(guān)文章

最新評論