• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
数据备份系统解决方案
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
数据备份系统解决方案
软件发布 数据备份系统解决方案
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 数据库类 >> MySQL Server >> 数据备份系统解决方案

数据备份系统解决方案

添加时间: 2006-2-19 18:52:26  作者: MySQL教程  阅读次数:45   来源: http://www.d9soft.com

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

  目前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

  //数据库连接

  SQLDoGroupAuth off

  SQLAuthTypes Plaintext

  SQLDoAuth on

  SQLHomedirOnDemand on

  SQLUserTable users

  //指定使用的表名

  SQLUsernameField userid

  //以下信息需要与users表中的字段对应

  SQLPasswordField password

  SQLHomedirField homedir

  SQLLoginCountField count

  SQLShellField shell

  SQLAuthoritative off

  SQLLogStats on

  SQLMinUsergid 99

  SQLMinUseruid 14

  SQLLogDirs fcdir

  SQLDefaultgid 99  

  创建用户时需要在表中增加记录,即完成账号的增加。在用户第一次使用该账号登陆时,系统自动创建用户主目录并依据uid和gid的值来设置目录的用户和组。根据配置文件中的缺省空间限量的值生成限量文件。以下是ProFTPD.conf中设置缺省空间限量的配置:   

  DefaultQuota 204800000 //200MB大小

  QuotaType hard  

  3. 删除用户

  删除用户需要完成两方面工作:一方面需要对MySQL的users表做相应的删除;另一方面要删除用户主目录。需要注意的是,由于采用浏览器方式,开发系统的执行用户应具有对用户主目录的写权限。用户主目录的用户和组是由users表中的uid和gid来确定的。

  4. 修改空间限量

  在用户主目录创建后,系统自动生成.quota空间限量文件。该文件只能被root修改,文件的格式为“总容量 使用的容量”,账号管理系统只需使用新的限量文件覆盖即可。对“使用的容量”,FTP服务器每次登陆时会自动计算。如何使软件系统具有root权限,可以参看“sudoers”。

  5.日志记录

  从安全角度考虑,日志是很重要的一部分。传统的日志都是记录到文件中,而ProFTPD提供了将日志记录到数据库中的功能。这既方便了日志的查询,又极大地提高了日志查询速度。

  首先需要在MySQL数据库中创建FTP_log数据表,代码如下:  

  CREATE TABLE FTP_log (

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

   //主关键字

   filename varchar(255),

   //文件名

   filesize int(10) unsigned,

   //文件大小

   email varchar(20) NOT NULL,

   //用户的账号

   ip varchar(15) NOT NULL,

   //用户的ip地址

   action varchar(255),

   //用户操作的内容

   ftime datetime,

   //操作的时间

   PRIMARY KEY (id)

  );  

  修改ProFTPD.conf文件,将“日志记录到文件”关闭,设置如下:

    

  TransferLog none  

  增加关于日志的配置,需要把用户的上载和下载及删除操作记录到日志中,记录的内容用户可以定置。例如:  

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

  被记录的操作有以下几个:

  ◆RETR,文件的下载;

  ◆STOR,文件的上传;

  ◆DELE,文件的删除。

  其中日志记录有以下内容:

  ◆%f,上载或下载的文件名称包含绝对路径;

  ◆%b,文件的大小,以字节为单位;

  ◆%u,用户使用的FTP账号;

  ◆%h,用户的IP地址;

  ◆now(),为MySQL提供系统时间函数。

  结束语

  在详细了解系统关键技术后,开发语言可以根据实际情况来选择,并可结合电子邮件服务器,实现账号和密码的统一,方便用户操作。有关MySQL和ProFTPD的详细配置等问题,由于篇幅有限就不一一阐述。

 

上下文章:

 

上一篇文章: MySQL中修改密码及访问限制设置详解 下一篇文章: MySQL安装与使用

相关文章:

  • 艾瑞数据显示:暴风影音市场优势明显
  • Vista找不到Config文件夹的解决办法
  • 解瘳Vista系统OpenGL驱动问题整理
  • Vista系统的官方优化指南文档下载
  • 六类综合布线系统施工经验小结

相关软件:

  • 雨过天晴电脑保护系统 V1.0.060612
  • YlmF XP 系统 DIY Y1.6[1205] 绿色版
  • Windows系统服务终结者 V3.3 绿色版
  • 海啸系统间谍 1.42.080815 免杀版
  • 胜新通用条形码设计打印系统 6.09
  • 中国车牌号查询系统(ChinaCar) V1.1

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

数据库类分类导航

  • SQL Server
  • MySQL Server
  • DB2
  • Oracle
  • ACCESS
  • Foxpro
  • PowerBuilder
  • Sybase

本类经典文章推荐

  • 怎样在vc、delphi中使用mysql(mys...
  • MySQL数据导入与导出之二
  • 如何实现MySQL中的用户管理?
  • win 2000 安装 mysql-shareware-3...
  • Mysql字段长度
  • 如何把ACCESS的数据导入到Mysql中
  • 如何为用户设置密码(MYSQL)
  • 如何恢复MYSQL的ROOT口令
  • MySQL数据库备份
  • MYSQL初学者使用指南 上篇

MySQL Server阅读排行

  • MySQL中的SQL-- TEXT、DATE、和SE...
  • MYSQL初学者使用指南 上篇
  • 怎样在vc、delphi中使用mysql(mys...
  • MySQL数据导入与导出之二
  • MYSQL初学者使用指南 下篇
  • 如何为用户设置密码(MYSQL)
  • 如何把ACCESS的数据导入到Mysql中
  • Mysql字段长度
  • MySQL数据库技术(01)
  • MySQL数据库简介

数据库类阅读总排行

  • MySQL中的SQL-- TEXT、DATE、和SE...
  • MYSQL初学者使用指南 上篇
  • 怎样在vc、delphi中使用mysql(mys...
  • MySQL数据导入与导出之二
  • MYSQL初学者使用指南 下篇
  • SQL Server数据库技术(96)
  • SQL Server数据库技术(98)
  • SQL Server数据库技术(60)
  • 精通数据库系列之入门-基础篇
  • 如何为用户设置密码(MYSQL)

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有