您的位置:首页 >> 数据库 >> MySQL >> 正文
MySQL RSS
 

MySQL下数据备份系统解决方案

http://www.rdxx.com 06年02月23日 00:00 我要投稿

随着计算机网络的普及,计算机病毒有了快速传播的机会,并且对数据文件的破坏日益严重,用户需要经常对个人重要数据做异地备份。基于多用户和数据隐私的考虑,提出了个人数据备份系统解决方案。它利用网络存储设备具有的大容量、高可靠性、高安全性特点,为用户提供一定容量的空间来保存个人数据,同时利用软件的权限管理很好地实现个人数据的保密性。

目前Linux下FTP服务器软件主要有Wu-FTP和ProFTPD两种。Wu-FTP是Red Hat Linux预装软件,但安全漏洞很多。ProFTPD针对Wu-FTP的弱项而开发,除改进了安全性外,还具备许多特点,如设置简单、能以Stand-alone模式运行等。ProFTPD已经成为继Wu-FTP之后最为流行的FTP服务器软件之一。

ProFTPD在1.2版本之前使用Linux用户账号来管理用户,即使用口令文件。该方式存在很多不足,与数据库操作相比,用户账号的增加、口令的修改及账号的删除显得十分复杂,并且文件无法支持并发读写;在Linux中用户账号具有Telnet的权限,安全上存在隐患;口令文件只有root账号可以修改,如果使用浏览器方式修改此文件,在技术上有一定难度。

在ProFTPD 1.2.4版中增加了数据库管理用户的功能,目前只支持MySQL数据库,并且该账号只适用于FTP 服务器,不存在安全上的隐患。本文使用的开发平台是Linux + ProFTPD + MySQL组合。

总体设计

系统后台采用FTP服务器来为用户提供管理文件功能,可使用支持FTP 功能的各种软件来操作数据文件。解决方案实现用户账号自动申请受理、密码修改,网络管理人员可以使用浏览器来管理账号修改空间限量、修改口令及删除账号等功能。

系统的核心是如何使用开发语言来动态地配置ProFTPD,实现对数量众多用户的账号管理。

解决方案详细内容

有关ProFTPD的安装和配置文件内容的资料可以详见系统文档,本文重点介绍和数据库有关的部分。

1. 安装ProFTPD

(1)安装MySQL数据库,创建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中创建FTPusers数据库和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', 
   //登陆次数
   ftime timestamp(14), 
   //最后一次登陆时间
   shell varchar(255) DEFAULT '  /bin/bash',
   PRIMARY KEY (userid) 
   //主关键字
);


在proftpd.conf中增加有关MySQL的配置,代码如下:

SQLConnectInfo ftpusers@MySQL服务器名 username password 
//数据库连接
SQLDoGroupAuthoff
SQLAuthTypesPlaintext
SQLDoAuthon
SQLHomedirOnDemandon
SQLUserTableusers  
//指定使用的表名
SQLUsernameFielduserid  
//以下信息需要与users表中的字段对应
SQLPasswordFieldpassword
SQLHomedirFieldhomedir  
SQLLoginCountFieldcount
SQLShellFieldshell
SQLAuthoritativeoff
SQLLogStatson
SQLMinUsergid99
SQLMinUseruid14
SQLLogDirsfcdir
SQLDefaultgid99


创建用户时需要在表中增加记录,即完成账号的增加。在用户第一次使用该账号登陆时,系统自动创建用户主目录并依据uid和gid的值来设置目录的用户
共2页  1 2

 
 
标签: 数据备份 , 解决方案 , MySQL , 系统 , SQL , 数据 , 备份 , 方案 , 解决 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站