Linux下基于数据库支持虚拟用户FTP的实现

时间:2022-08-26 02:30:57

Linux下基于数据库支持虚拟用户FTP的实现

摘要:FTP是一种校园网中常见的文件共享及存储网络服务, LINUX平台与Windows平台相比,在网络服务方面具有硬件要求配置低,安全性能好等诸多优点。如何有效管理FTP用户及相应用户设置是网络管理人员必须面对的问题,PureFTP支持MySQL数据库管理虚拟用户,非常便捷,是FTP服务架设的首选。该文介绍pureftp的安装,数据库配置,及用户如何通过网页对密码修改等方面内容。

关键词:FTP;虚拟用户;数据库

中图分类号:TP391 文献标识码:A文章编号:1009-3044(2011)36-0000-0c

FTP文件传输服务是一种校园网中常见的文件共享及存储网络服务,是最基本的网络服务之一。Linux操作系统具有性能稳定、安全性好的特点,基于Linux环境构建FTP服务一直受到广大用户的好评。

Linux下可选用的FTP服务器软件比较多,常见的有wu-ftpd、pureftpd、proftpd和vsftpd等。在用户数比较多的情况下,综合考虑FTP服务安全性、易用性及用户管理方便性,pureftp是一个不错的选择,特别是基于MySQL数据库的虚拟用户支持,直接操作数据库表就可以完成一些基本的用户配置。

1 软件安装

首先下载软件包,这里以pure-ftpd-1.0.21为例介绍pureftp的基本安装,安装前要确认系统已安装好MySQL数据库,及gcc编译支持。

1)解压安装包

tar zxvf pure-ftpd-1.0.21.tar.gz

2)进入解压目录

cd pure-ftpd-1.0.21

3)配置pure-ftpd各种安装选项

要支持mysql数据库,必须指定--with-mysql选项。

4)编译

make

5)安装

make install

6)生成配置脚本

cp configuration-file/pure-config.pl/usr/local/pureftpd/sbin/

cp configuration-file/pure-ftpd.conf/usr/local/pureftpd/etc

7)修改配置脚本权限

chmod +x /usr/local/pureftpd/sbin/pure-config.pl

8)建立FTP主目录、添加ftp系统账户

mkdir /var/ftp

useradd ftp -g ftp -d /var/ftp -s /sbin/nologin

至此匿名ftp服务已经配置好了。

2 mysql虚拟用户的支持

1)添加虚拟用户对应的系统账户

groupadd ftpgroup

useradd -g ftpgroup -d /dev/null -s /sbin/nologin ftpuser

2)创建MySQL数据库及数据库用户

Create database ftpusers

grant all on ftpusers.* to ftpadmin@localhost identified by ‘ftpadmin’

3)在刚创建的数据库中建立users表

表结构如下:

Users(user,password,uid,gid,dir,quotafiles,qutosize,ulbandwidth,dlbandwidth,ipaddress,comment,status,ulratio,dlratio)

其中字段uid、gid是指前面建立的系统用户和用户组 ftpuser、ftpgroup,是指虚拟用户对应的系统真实账户,dir指用户主目录,其它字段主要是一些指定用户特性的配置,如空间大小,传输速率等。

4)修改配置文件,让PureFTP连接、使用ftpusers数据库

打开配置文件 Vi /etc/pureftpd-mysql.conf

修改下面几项

MYSQLServer //数据库服务器地址

MYSQLUser//数据库用户

MYSQLPassword //用户密码

MYSQLDatabase //数据库名称

MYSQLCrypt//密码加密方式

打开pureftp配置文件 vi /usr/local/pureftpd/etc/pure-ftpd.conf

修改下面的项:

MySQLConfigFile /usr/local/pureftpd/etc/pureftpd-mysql.省略网页让用户可以修改自己的密码

在.NET平台下连接MySQL数据库需要安装MySQL Connector Net 数据接口,在网页中要通过引用MySql.Data.MySqlClient来使用。以下是连接数据库代码:

string constr = "server=数据库服务地;User Id=ftpadmin;password=ftpadmin;Database=ftpusers"

MySqlConnection mycon = new MySqlConnection(constr)

mycon.Open()

其他操作就是一般的数据库数据读取、修改操作。其流程是先比对用户输入老密码是否正确,在正确的情况下修改数据为新密码。

3 结束语

Pureftp结合MySQL数据库实现虚拟FTP用户,方便了网管的日常用户管理。本文所述操作经实践检验正确可行,以上是pureftp安装配置的粗略介绍,具体详细安装步骤需要在安装过程中实践。在具体的使用过程中还需要注意FTP服务器的安全性问题,配置过程中要对安全性配置选项作一定的设置。

参考文献:

[1] 冷罡华.Ubuntu Server最佳方案[M].北京:电子工业出版社 ,2009.

上一篇:分布式数据库中数据复制及数据分片的应用 下一篇:浅析绿色数据中心的标准要求与信息技术