摘 要:Ftp Serv-U是一款功能強(qiáng)大的FTP服務(wù)器軟件,但是用戶只能通過DOS命令來修改自身密碼,本文提出了用戶如何實(shí)現(xiàn)通過Web頁在線修改密碼的方法。
關(guān)鍵詞:Ftp Serv-U 修改密碼
中圖分類號(hào):TP309.2 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1673-8454(2008)23-0085-02
一、引言
FTP 全稱是 File Transfer Protocol,是一個(gè)被廣泛應(yīng)用的文件傳輸協(xié)議,它使得我們能夠在網(wǎng)絡(luò)上方便地傳輸文件。FTP Serv-U(以下簡稱Serv-U)是現(xiàn)今Windows下最流行、功能最強(qiáng)大、使用最簡單的FTP服務(wù)器軟件之一,同時(shí)也是目前國內(nèi)應(yīng)用最多的FTP服務(wù)器軟件。其主要功能特點(diǎn)有:(1)流量控制及帶寬限制。支持對(duì)上傳、下載流量和網(wǎng)絡(luò)帶寬設(shè)定限制,以確保帶寬不會(huì)被少數(shù)FTP用戶獨(dú)占;(2)磁盤空間限制??梢栽O(shè)定每個(gè)賬號(hào)可使用的磁盤空間;(3)斷點(diǎn)續(xù)傳能有效地降低重復(fù)下載;(4)遠(yuǎn)程管理方便用戶從任何地方管理FTP Server,提高工作效率;(5)安全機(jī)制通過嚴(yán)格的權(quán)限控制,提供系統(tǒng)安全性和穩(wěn)定性;(6)支持“多宿主”IP站點(diǎn);(7)作為系統(tǒng)服務(wù)運(yùn)行。
一般情況下FTP用戶的密碼需要在FTP工具下(如 cuteftp、flashfxp等)用DOS 命令來修改,操作麻煩,不便記憶,以致很多教師一直使用初始密碼,或者要修改密碼就直接找FTP管理員來修改,這樣在給工作加重負(fù)擔(dān)的同時(shí),無疑對(duì)用戶個(gè)人的信息安全也是一個(gè)威脅, 甚至成了攻擊服務(wù)器的一個(gè)安全缺口。為此,筆者結(jié)合實(shí)際設(shè)計(jì)了一個(gè)簡單的程序,通過登錄Web頁來修改個(gè)人用戶密碼。
二、程序的實(shí)現(xiàn)
1.程序的總體思路
Serv-U用戶的基本信息,包括用戶的名稱、密碼、操作權(quán)限等都是存儲(chǔ)在ServUDaemon.ini文件中,我們當(dāng)然可以通過操作該文件來實(shí)現(xiàn)我們的密碼修改,但是考慮到以后用戶的批量處理和歸檔等,本程序采用了ASP+ODBC的方法,那就是將Serv-U用戶的基本信息存儲(chǔ)到數(shù)據(jù)庫中,然后通過ASP對(duì)數(shù)據(jù)庫進(jìn)行操作來實(shí)現(xiàn)密碼的修改。
2.Serv-U的配置
Serv-U的安裝比較簡單,筆者不在這作詳細(xì)介紹,裝完以后如何能讓該臺(tái)機(jī)器充當(dāng)FTP服務(wù)器,并與數(shù)據(jù)庫連接起來,以便實(shí)現(xiàn)密碼的修改呢?第一步,我們需要新建一個(gè)域,并為其配上IP地址(服務(wù)器的IP);第二步,為新建域取一名稱;第三步,設(shè)置端口(通常默認(rèn)是21);第四步,為域選擇一個(gè)存儲(chǔ)的地方,如存儲(chǔ)于ODBC數(shù)據(jù)庫中,這樣才能達(dá)到Serv-U與數(shù)據(jù)庫連接的目的。
3.數(shù)據(jù)庫與Serv-U的連接
當(dāng)Serv-U的域選擇了存儲(chǔ)于ODBC中后,接著在ODBC中創(chuàng)建一個(gè)數(shù)據(jù)源,以實(shí)現(xiàn)Serv-U和數(shù)據(jù)庫之間的連接。如圖1、2、3,筆者依次建立了數(shù)據(jù)源ftp,為其選擇的驅(qū)動(dòng)是Microsoft Access,然后選擇了數(shù)據(jù)庫文件ftp.mdb,其中ftp.mdb就是存儲(chǔ)Serv-U個(gè)人用戶的基本信息。
經(jīng)過上述幾步完成了數(shù)據(jù)源的建立和數(shù)據(jù)庫的選擇,最后修改ServUDaemon.ini文件,將“ODBCSource=||” 改為“ODBCSource=ftp||”(ftp就是我們剛才建立的數(shù)據(jù)源),這樣ftp.mdb中的個(gè)人信息就成功地導(dǎo)入Serv-U中了。
4.程序主要代碼
UserName = Session(\"MM_kasak\")
OldPassword = Request.form(\"OldPassword\")
NewPassword = Request.form(\"NewPassword\")
reNewPassword = Request.form(\"reNewPassword\")
UserName = Replace(UserName,\"'\",\"'\")
if len(UserName)<1 or len(OldPassword)<1 or len(NewPassword)<1 or len(reNewPassword)<1 then
alert(\"表單沒有填寫完整\")
end if
if trim(NewPassword)<>trim(reNewPassword) then
alert(\"密碼與確認(rèn)密碼不一樣\")
end if
Dim check_user
Dim check_user_numRows
Set check_user = Server.CreateObject(\"ADODB.Recordset\")
check_user.ActiveConnection = \"Driver={Microsoft Access Driver (*.mdb)};DBQ=\"\"d:\\ServU\\data\\ftp.mdb\"
check_user.Source = \"SELECT top 1 User,PasswordFROM User_accountsWHERE User = ′\" UserName \"′\"′User_accounts是ftp.mdb中的一張表,UserName表中的一個(gè)字段,用來存放FTP用戶的賬號(hào)名。
check_user.CursorType = 0
check_user.CursorLocation = 2
check_user.LockType = 1
check_user.Open()
if check_user.eof and check_user.bof then
alert(\"用戶名不存在\")
else
dbname = check_user(\"User\")
dbpassword = check_user(\"Password\")
end if
check_user.Close()
Set check_user = Nothing
cdbpassword = left(dbpassword,2) md5(left(dbpassword,2) OldPassword) 'md5的加密方法
if trim(cdbpassword) <> trim(dbpassword) then
alert(\"舊密碼錯(cuò)誤!\")
else
rndstr = MyRandc(2) '兩位隨機(jī)字母
newdbpassword = rndstr md5(rndstr NewPassword)
set Command1 = Server.CreateObject(\"ADODB.Command\")
Command1.ActiveConnection =\"Driver={Microsoft Access Driver (*.mdb)};DBQ=\"\"d:\\ServU\\data\\ftp.mdb\"
Command1.CommandText = \"update User_accounts set Password = ′\" newdbpassword \"' where User=′\" UserName \"′\"
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
alert(“密碼已經(jīng)更改,可能要幾鐘后才能生效”)
end if
三、結(jié)束語
利用高版本Serv-U(筆者采用的是6.0.0.1)的ODBC數(shù)據(jù)庫功能,結(jié)合ASP編程,實(shí)現(xiàn)了用戶在線修改密碼的需求。這對(duì)FTP管理員的工作效率有進(jìn)一步的提高,用戶可以自主的修改密碼,即時(shí)生效;同時(shí)用戶只要通過Web頁來修改密碼,比起DOS命令操作更簡單。本程序在Windows 2003 Server通過實(shí)踐使用,效果相當(dāng)理想,同時(shí)在用戶賬號(hào)管理方面,又拓展了更多的功能。
參考文獻(xiàn):
[1]劉新向.Serv-U的FTP服務(wù)器快速配置[J].實(shí)驗(yàn)室科學(xué),2005(1).
[2]俞自強(qiáng).ASP技術(shù)訪問Web數(shù)據(jù)庫[J].中國科技信息,2006(3).
[3]劉瑞新.ASP 動(dòng)態(tài)網(wǎng)站開發(fā)畢業(yè)設(shè)計(jì)指導(dǎo)與實(shí)例[M].北京:機(jī)械工業(yè)出版社,2005.