IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁數(shù)據(jù)庫MYSQL → MySQL下數(shù)據(jù)備份系統(tǒng)解決方案

MySQL下數(shù)據(jù)備份系統(tǒng)解決方案

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

??? 隨著計算機(jī)網(wǎng)絡(luò)的普及,計算機(jī)病毒有了快速傳播的機(jī)會,并且對數(shù)據(jù)文件的破壞日益嚴(yán)重,用戶需要經(jīng)常對個人重要數(shù)據(jù)做異地備份?;诙嘤脩艉蛿?shù)據(jù)隱私的考慮,提出了個人數(shù)據(jù)備份系統(tǒng)解決方案。它利用網(wǎng)絡(luò)存儲設(shè)備具有的大容量、高可靠性、高安全性特點(diǎn),為用戶提供一定容量的空間來保存?zhèn)€人數(shù)據(jù),同時利用軟件的權(quán)限管理很好地實現(xiàn)個人數(shù)據(jù)的保密性。

??? 目前Linux下FTP服務(wù)器軟件主要有Wu-FTP和ProFTPD兩種。Wu-FTP是Red Hat Linux預(yù)裝軟件,但安全漏洞很多。ProFTPD針對Wu-FTP的弱項而開發(fā),除改進(jìn)了安全性外,還具備許多特點(diǎn),如設(shè)置簡單、能以Stand-alone模式運(yùn)行等。ProFTPD已經(jīng)成為繼Wu-FTP之后最為流行的FTP服務(wù)器軟件之一。

??? ProFTPD在1.2版本之前使用Linux用戶賬號來管理用戶,即使用口令文件。該方式存在很多不足,與數(shù)據(jù)庫操作相比,用戶賬號的增加、口令的修改及賬號的刪除顯得十分復(fù)雜,并且文件無法支持并發(fā)讀寫;在Linux中用戶賬號具有Telnet的權(quán)限,安全上存在隱患;口令文件只有root賬號可以修改,如果使用瀏覽器方式修改此文件,在技術(shù)上有一定難度。

??? 在ProFTPD 1.2.4版中增加了數(shù)據(jù)庫管理用戶的功能,目前只支持MySQL數(shù)據(jù)庫,并且該賬號只適用于FTP 服務(wù)器,不存在安全上的隱患。本文使用的開發(fā)平臺是Linux + ProFTPD + MySQL組合。

??? 總體設(shè)計

??? 系統(tǒng)后臺采用FTP服務(wù)器來為用戶提供管理文件功能,可使用支持FTP 功能的各種軟件來操作數(shù)據(jù)文件。解決方案實現(xiàn)用戶賬號自動申請受理、密碼修改,網(wǎng)絡(luò)管理人員可以使用瀏覽器來管理賬號修改空間限量、修改口令及刪除賬號等功能。

??? 系統(tǒng)的核心是如何使用開發(fā)語言來動態(tài)地配置ProFTPD,實現(xiàn)對數(shù)量眾多用戶的賬號管理。

??? 解決方案詳細(xì)內(nèi)容

??? 有關(guān)ProFTPD的安裝和配置文件內(nèi)容的資料可以詳見系統(tǒng)文檔,本文重點(diǎn)介紹和數(shù)據(jù)庫有關(guān)的部分。

??? 1. 安裝ProFTPD

??? (1)安裝MySQL數(shù)據(jù)庫,創(chuàng)建MySQL的安裝目錄的符號,連接到/usr/local/mysql。

??? (2)編譯前的配置,將MySQL和空間限量模塊增加到編譯的選項中,代碼如下:

??? # ./configure --with-includes = /usr/local/mysql/include --with-libraries=/usr/local/mysql/lib/mysql --with- modules=mod_sql:mod_sql_mysql:mod_quota

??? 2. 增加用戶

??? 在MySQL中創(chuàng)建FTPusers數(shù)據(jù)庫和users表用來保存FTP賬號信息,代碼如下:

CREATE TABLE users (

   userid varchar(50) NOT NULL, 

   //用戶的FTP 賬號名稱

   password varchar(50), 

   // 用戶的FTP賬號密碼

   uid int(5) DEFAULT '0' NOT NULL, 

   //用戶主目錄的 uid

   gid int(5) DEFAULT '65533' NOT NULL, 

   //用戶主目錄的 gid

   homedir varchar(255), 

   //用戶主目錄

   count int(11) DEFAULT '0', 

   //登陸次數(shù)

   ftime timestamp(14), 

   //最后一次登陸時間

   shell varchar(255) DEFAULT '  /bin/bash',

   PRIMARY KEY (userid) 

   //主關(guān)鍵字

);


??? 在proftpd.conf中增加有關(guān)MySQL的配置,代碼如下:

SQLConnectInfo ftpusers@MySQL服務(wù)器名 username password 

//數(shù)據(jù)庫連接

SQLDoGroupAuthoff

SQLAuthTypesPlaintext

SQLDoAuthon

SQLHomedirOnDemandon

SQLUserTableusers  

//指定使用的表名

SQLUsernameFielduserid  

//以下信息需要與users表中的字段對應(yīng)

SQLPasswordFieldpassword

SQLHomedirFieldhomedir  

SQLLoginCountFieldcount

SQLShellFieldshell

SQLAuthoritativeoff

SQLLogStatson

SQLMinUsergid99

SQLMinUseruid14

SQLLogDirsfcdir

SQLDefaultgid99


??? 創(chuàng)建用戶時需要在表中增加記錄,即完成賬號的增加。在用戶第一次使用該賬號登陸時,系統(tǒng)自動創(chuàng)建用戶主目錄并依據(jù)uid和gid的值來設(shè)置目錄的用戶和組。根據(jù)配置文件中的缺省空間限量的值生成限量文件。以下是ProFTPD.conf中設(shè)置缺省空間限量的配置:

DefaultQuota204800000 //200MB大小

QuotaTypehard


??? 3. 刪除用戶

??? 刪除用戶需要完成兩方面工作:一方面需要對MySQL的users表做相應(yīng)的刪除;另一方面要刪除用戶主目錄。需要注意的是,由于采用瀏覽器方式,開發(fā)系統(tǒng)的執(zhí)行用戶應(yīng)具有對用戶主目錄的寫權(quán)限。用戶主目錄的用戶和組是由users表中的uid和gid來確定的。

??? 4. 修改空間限量

??? 在用戶主目錄創(chuàng)建后,系統(tǒng)自動生成.quota空間限量文件。該文件只能被root修改,文件的格式為"總?cè)萘?使用的容量",賬號管理系統(tǒng)只需使用新的限量文件覆蓋即可。對"使用的容量",F(xiàn)TP服務(wù)器每次登陸時會自動計算。如何使軟件系統(tǒng)具有root權(quán)限,可以參看"sudoers"。

??? 5.日志記錄

??? 從安全角度考慮,日志是很重要的一部分。傳統(tǒng)的日志都是記錄到文件中,而ProFTPD提供了將日志記錄到數(shù)據(jù)庫中的功能。這既方便了日志的查詢,又極大地提高了日志查詢速度。

??? 首先需要在MySQL數(shù)據(jù)庫中創(chuàng)建FTP_log數(shù)據(jù)表,代碼如下:

CREATE TABLE FTP_log (

   id int(12) unsigned DEFAULT '0' NOT NULL auto_increment,

   //主關(guān)鍵字

   filename varchar(255), 

   //文件名

   filesize int(10) unsigned,

   //文件大小

   email varchar(20) NOT NULL, 

   //用戶的賬號

   ip varchar(15) NOT NULL, 

   //用戶的ip地址

   action varchar(255), 

   //用戶操作的內(nèi)容

   ftime datetime, 

   //操作的時間

   PRIMARY KEY (id)

);


??? 修改ProFTPD.conf文件,將"日志記錄到文件"關(guān)閉,設(shè)置如下:

TransferLognone


??? 增加關(guān)于日志的配置,需要把用戶的上載和下載及刪除操作記錄到日志中,記錄的內(nèi)容用戶可以定置。例如:

SQLLog RETR,STOR,DELE insert FTP_log "null,'%f', %b, '%u','%h','%r',now()"


??? 被記錄的操作有以下幾個:

◆RETR,文件的下載;

◆STOR,文件的上傳;

◆DELE,文件的刪除。

其中日志記錄有以下內(nèi)容:

◆%f,上載或下載的文件名稱包含絕對路徑;

關(guān)鍵詞標(biāo)簽:解決方案,系統(tǒng),用戶,文

相關(guān)閱讀

文章評論
發(fā)表評論

熱門文章 Xbox Game Pass Xbox Game Pass 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL常用維護(hù)管理工具 MySQL常用維護(hù)管理工具 MySQL數(shù)據(jù)庫啟動失敗1067進(jìn)程意外終止的解決辦法總結(jié) MySQL數(shù)據(jù)庫啟動失敗1067進(jìn)程意外終止的解決辦法總結(jié)

相關(guān)下載

    人氣排行 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL數(shù)據(jù)庫啟動失敗1067進(jìn)程意外終止的解決辦法總結(jié) Mysql 1045錯誤解決辦法 MySQL服務(wù)器進(jìn)程CPU占用100%解決辦法 MySQL導(dǎo)出導(dǎo)入命令的用例 MySQL連接字符串的實際操作步驟匯總 MySQL無法啟動、無法停止各種解決方法總結(jié) 三種常用的MySQL建表語句