Serv-U是一種被廣泛運用的FTP服務器端軟件,支持3x/9x/ME/NT/2K等全Windows系列。可以設定多個FTP服務器、限定登錄用戶的權限、登錄主目錄及空間大小等,功能非常完備。 它具有非常完備的安全特性,支持SSl FTP傳輸,支持在多個Serv-U和FTP客戶端通過SSL加密連接保護您的數據安全等。
Serv-U 支持基于ODBC數據庫的用戶和用戶組設置,這為我們基于Serv-U編程提供了良好的接口,接下來我們介紹如何具體實現。
一、使用ODBC數據庫管理Serv-U
前提條件:企業版的Serv-U(4.1以上版本)才能夠支持ODBC,常見可支持的數據庫包括access、mysql、oracle和mssql等。
Serv-U英文官方網站上提供了部分數據庫示例,本站提供下載,請選擇:
·Access示例:MS Access ODBC Example
·Ms SQL示例:MS SQL Server ODBC Example
·MySQL示例:MySQL ODBC Example
·Oracle創建表結構的SQL文件:Oracle database for use with Serv-U
以下以Ms SQL為例介紹使用方法
1、安裝好Serv-U企業版(4.1以上版本),創建一個新的域,在第四步中,域類型選擇“存儲于ODBC數據庫中”,如圖:
2、下載MS SQL Server ODBC Example示例包,獲得CreateServUTables.sql(用于在mssql中創建Serv-U的對應表結構)文件,并在mssql中執
行該文件,創建六個表,分別為:
·ftp_users
·ftp_userIPs
·ftp_userAccess
·ftp_groups
·ftp_groupIPs
·ftp_groupAccess
其中ftp_users為存放用戶的表,最為重要。
3、建立ODBC。示例過程如下
(1)添加系統DSN(系統數據源),選擇SQL Server,填好數據源名稱和服務器(本機使用local)

(2)登錄驗證方式根據你的mssql設置決定,這里用SQL驗證的方式登錄

(3)更改數據庫為你創建好Serv-U表的數據庫,確認,完成ODBC設置。現在你有了一個名為Serv-U的系統數據源,記得這個名字和登錄使用用戶和密碼。

4、配置Serv-U
(1)關閉Serv-U,從MS SQL Server ODBC Example示例包中獲得Add-to-Ini.txt文件,打開此文件,完整復制以下代碼:
[Domain1]
ODBCTables=ftp_users|ftp_groups|ftp_userAccess|ftp_groupAccess|ftp_userIPs|ftp_groupIPs
ODBCColumns=ftpUserName|ftpPassword|sKey|dirHome|loginMsgFile|accessRule|disabled|sessionEncryption|dirHomeLock|hideHidden|alwaysAllowLogin|changePassword|quotaEnable|maxUsersLoginPerIP|speedLimitUp|speedLimitDown|maxUsersConcurrent|timeOutIdle|timeOutSession|ratioUp|ratioDown|ratioCredit|quotaCurrent|quotaMax|expiration|privilege|ftpPasswordType|ratioType|groups|notes|indexNo
(2)打開Serv-U的安裝目錄,找到ServUDaemon.ini文件,將對應[Domain1]及其后面的對應設置用上面的代碼替換。
(3)重新打開你的Serv-U,找到剛才你新建的域,在ODBC設置中應該已經能夠看到ODBC鏈接設置中,除了ODBC源名稱、帳號和密碼部分空的外,其他的表名和列名都已經設置好了。

(4)填寫好你的ODBC源名稱、帳號和密碼,應用設置,如果你的設置沒有問題的話,域前面的圖標將不再是禁止的樣子,表示已經設置好了
(5)隨便建立一個用戶,然后對應在你的ftp_users表中查找看是否存在,如果沒有問題,你已經完成了Serv-U的ODBC設置。
二、編程實現ODBC管理Serv-U用戶
有了數據庫,用編程實現管理Serv-U用戶應該是一件非常簡單而輕松的事情,唯一的難點在于密碼的加密。
我們知道Serv-U三種加密算法,默認情況下是32位的md5加密算法,這和有的16位和64位加密算法有所不同,因此我們在編程中要使用32位的
MD5加密算法來實現密碼的加密。以下以ASP編程為例:
用以下兩個函數完成對密碼的加密,32位MD5加密文件在此下載MD5.ASP
Function SerUPassEnCode(strPass)
Dim Char1,Char2,Seed,prePass,EncodePass,FinalPass
If IsNull(strPass) Or strPass="" Then Exit Function
Char1 = Chr(Rand(97,122))
Char2 = Chr(Rand(97,122))
Seed = Char1 Char2
prePass = Seed strPass
EnCodePass = Ucase(md5(prePass)) '32位md5
FinalPass = Seed EnCodePass
SerUPassEnCode = FinalPass
End Function
Function Rand(n,m)
Dim a,b,t
a = n : b = m
If b lt; a Then t = b : b = a : a = t
Randomize
Rand = Int(rnd*(b-a+1)+a)
End Function
本文完全原創,請尊重作者勞動,轉載請注明出處,謝謝。
您可能感興趣的文章:- 使用FTP下載目錄,即FTP命令批量自動下載的bat文件
- Linux下使用Shell腳本實現ftp的自動上傳下載的代碼小結
- 批處理bat下載FTP服務器上某個目錄下的文件
- JAVA技術實現上傳下載文件到FTP服務器(完整)
- php下連接ftp實現文件的上傳、下載、刪除文件實例代碼
- JAVA中使用FTPClient實現文件上傳下載實例代碼
- java操作ftp下載文件示例
- python實現支持目錄FTP上傳下載文件的方法
- 關于c#連接ftp進行上傳下載實現原理及代碼
- Java語言實現簡單FTP軟件 FTP軟件效果圖預覽之下載功能(2)