论文部分内容阅读
摘要:由于学生用户数量大,使用Serv-U 提供的管理软件创建大量学生账户工作量巨大。该文介绍了如何将Serv-U的账户信息保存ODBC数据库中。论文详细讨论了数据库结构的设计、相关参数的设置及大批量账号管理程序的实现。
关键词:Serv-U;数据库;账号管理;网络存储
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)33-1347-02
File Network Storage System in Common Computer Lab Based Serv-U
JIANG Liang-hua,CHEN Chao-quan,CUI Jian-ming
(Modern Education Technology Center,Guilin University of Technology,Guilin 541004,China)
Abstract: Because the amount of students is very large,it is time cost to create an account for every student on Serv-U FTP server.This paper introduces how to store Serv-U account information in an ODBC database.The design of database’s construct, setting of relational parameters and the implementation of a program which can manage large quantities of accounts are discussed detailedly.
Key words: Serv-U; database; account management; network storage
1 引言
Serv-U 是Windows 平台下性能优越、功能强大的FTP 服务器软件。通过Serv—U构建FTP服务器,用户本地电脑可以通过网络和FTP服务器相连,使用TCP/IP协议,进行文件的复制、移动、创建和删除等。目前公共计算机实验室大多采用Serv-U 构建FTP服务器,为上机学生提保存文件的网络存储空间[1-2]。笔者所在的计算机基础实验室也从2004年起采用Serv-U 构建FTP服务器为学生提供网络存储空间。因为学生人数往往数千甚至上万,如何高效地管理众多的学生用户账号是需要解决的一个关键问题。笔者查阅了相关文献,发现目前常见的方案有:(1) 只为教师开设账户或为整个班级开设一个公共账户;2) 直接使用Serv-U提供的管理工具开设账户 [2];3) 编程直接读写Serv-U 的账户信息及配置信息文件ServUDaemon. ini [3-5], 实现批量账号管理;4) 将账户信息存放在数据中,使用Serv-U 数据库插件访问数据库[6]。第1)种方案因为没有为每个学生开设独立的账号,不能满足每个学生独立保存文件的需求;第2)种方案管理大量学生账户效率低下,只有在学生人数不是很多情况下才可行。第3) 种方案能快速创建大量账户,但账户很多时,客户端连接服务器时响应速度极慢,必须将账户分布在多个域上才能提高性能[5],但采用多域方式配置管理较复杂。第4)种方案需要安装Serv-U 数据库插件。其实Serv-U 5及以上版均支持将账户信息保存在ODBC数据库中。在用户账户很多的情况下,账户信息保存在ODBC数据库中可显著提高客户端连接服务器时响应速度,可更加容易地开发大批量账户管理程序。该文在分析Serv-U 帐户管理机制的基础上,详细讨论了将Serv-U的帐号信息保存在Access数据库中情况下数据库结构的设计、相关参数的设置和大批量账号管理程序的设计。
2 Serv-U简介
Serv-U 是一个非常好的FTP 服务器软件,它设置简单,功能强大,性能稳定。Serv-U FTP 服务器并不是简单地提供文件的下载,还为用户的系统安全提供了相当全面的保护,可以应用于Internet 范围内文件共享的解决方案。其主要功能特点有:1) 流量控制及带宽限制。支持对上传、下载流量和网络带宽设定限制,以确保带宽不会被少数FTP 用户独占;2) 磁盘空间限制。可以设定每个帐号可使用的磁盘空间; 3) 断点续传能有效地降低重复下载;4) 远程管理方便用户从任何地方管理FTP Server ,提高工作效率;5) 安全机制通过严格的权限控制,提供系统安性和稳定性;6) 支持多宿主IP 站点;7) 作为系统服务运行。Serv-U 的安装和设置非常简单,在此不作介绍。
3 采用ODBC数据库保存账户信息
Serv-U 5 及以后版本的域账户信息可以存放在:ini文件、计算机注册表或ODBC数据库中。对于用户量较大情况,一般应将账户信息保存在计算机注册表或ODBC数据库中较好。因为在公共计算机实验室环境,学生账户数巨大,且更新频繁,需要自己开发账户管理程序,故采用ODBC数据库存放较好。由于Access数据库管理系统是Office的一个组件,且其操作简便,功能强大,故建议采用Access数据库保存账户信息。
采用ODBC数据库存放用户账户信息需要在新建域时选择。Serv-U不会自动产生空数据库,数据库需要管理员自行创建。Serv-U非常灵活地处理数据库账户信息,数据库中可包含账户及组的所有信息,数据库至少应包含一张用户账号表,该表至少应包含account name, home directory, password, and directory access rule等4列,分别代表账户名称、主目录、密码和目录权限。
图1 Serv-U批量账户创建删除程序主界面
采用ODBC数据库保存账户信息的具体操作步骤为:1) 在Serv-U安装目录或其它目录中创建一个用于保存账户信息的Access数据库“账号数据库.MDB”;2) 在该数据库中创建一张“账号表”, 在对实际需求进行分析后,笔者认为该表较合理的结构如表1所示;
3) 创建系统ODBC数据源:进入“开始|控制面板|管理工具|ODBC数据源|系统DSN”添加一个系统DSN,名称不妨取 FTPUsers,连接Access数据库“账号数据库.MDB”;4) 在Serv-U与数据库间建立连接:进入Serv-U管理程序“Domain | ODBC” 选项卡,完成ODBC database coupling settings参数的设置,即将ODBC数据源名、账户表名、账户表的字段名称设置到相应行中。至此采用ODBC数据库保存账户信息所有设置完成。如果域不能启用,即在该域名上有一个经色“X”符号,说明某处设置不正确,可进入Serv-U管理程序“Server | Activity | Session Log”选项卡,查看系统日志找出错误之处并改正错误。
4 大批量账户成批创建和删除
通过上面介绍的操作可以将Serv-U的账户信息保存在ODBC数据库中,我们仍然可以通可Serv-U的管理程序来管理账户,包括创建账户、删除账户及更改密码等操作。但用这种方法一次创建或删除五六千学生用户账号,并创建相应的用户主目录及相关参数的设置,工作量巨大。为了能够快束完成大批量账户成批创建和删除工作,笔者结合所在学校的实际情况,用Visual Basic 6.0 设计了一个能够大批量账户成批创建和删除的程序,程序的主界面如图1所示。使用该程序创建大批量账号的操作步骤为:1) 学生用户用学生的10位数字的学号作账户名称,需要先将欲创建的账户名保存在一个纯文本文件中,一行一个账户号;2) 从账户名文件文件读取账户名;3) 检查欲新建的账户名与账户数据库的账户名是否存在重复,如存在重复,先解决重复问题;4) 使用循环结构对账户名文件文件中的每个账户名在账户数据库中创建记录,即创建账户及设置相关参数,并创建账户的主目录。指定创建账户的时间段可以成批删除账户。
下面介绍一下实现该程序的主要内容:1) 程序使用ADO对象连接和操作账户数据库;2) 密码字段(Passdword)的保存:Serv-U的账户密码可用加密码形式保存,也可用不密码形式保存。加密的方法是随机生成两个字母,然后将字母和密码进行拼接,再求它们的MD5值,最后将随机字母放在MD5值的前面便是加密后的密码。考虑到在公共计算机实验室为学生用户提供存储服务安全性安求较低,为便于设计账户管理程序,笔者采用数据库中保存不加密的密码,进入Serv-U管理程序“Domain | Settings | Advanced”选项卡,不选定“Store passwords in encrypted form”前的复选框;3) 用户主录目的创建:用户主目录包括用户目录位置、账户名前缀(可选)和账户名组成,调用函数Shell("cmd /c md "
关键词:Serv-U;数据库;账号管理;网络存储
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)33-1347-02
File Network Storage System in Common Computer Lab Based Serv-U
JIANG Liang-hua,CHEN Chao-quan,CUI Jian-ming
(Modern Education Technology Center,Guilin University of Technology,Guilin 541004,China)
Abstract: Because the amount of students is very large,it is time cost to create an account for every student on Serv-U FTP server.This paper introduces how to store Serv-U account information in an ODBC database.The design of database’s construct, setting of relational parameters and the implementation of a program which can manage large quantities of accounts are discussed detailedly.
Key words: Serv-U; database; account management; network storage
1 引言
Serv-U 是Windows 平台下性能优越、功能强大的FTP 服务器软件。通过Serv—U构建FTP服务器,用户本地电脑可以通过网络和FTP服务器相连,使用TCP/IP协议,进行文件的复制、移动、创建和删除等。目前公共计算机实验室大多采用Serv-U 构建FTP服务器,为上机学生提保存文件的网络存储空间[1-2]。笔者所在的计算机基础实验室也从2004年起采用Serv-U 构建FTP服务器为学生提供网络存储空间。因为学生人数往往数千甚至上万,如何高效地管理众多的学生用户账号是需要解决的一个关键问题。笔者查阅了相关文献,发现目前常见的方案有:(1) 只为教师开设账户或为整个班级开设一个公共账户;2) 直接使用Serv-U提供的管理工具开设账户 [2];3) 编程直接读写Serv-U 的账户信息及配置信息文件ServUDaemon. ini [3-5], 实现批量账号管理;4) 将账户信息存放在数据中,使用Serv-U 数据库插件访问数据库[6]。第1)种方案因为没有为每个学生开设独立的账号,不能满足每个学生独立保存文件的需求;第2)种方案管理大量学生账户效率低下,只有在学生人数不是很多情况下才可行。第3) 种方案能快速创建大量账户,但账户很多时,客户端连接服务器时响应速度极慢,必须将账户分布在多个域上才能提高性能[5],但采用多域方式配置管理较复杂。第4)种方案需要安装Serv-U 数据库插件。其实Serv-U 5及以上版均支持将账户信息保存在ODBC数据库中。在用户账户很多的情况下,账户信息保存在ODBC数据库中可显著提高客户端连接服务器时响应速度,可更加容易地开发大批量账户管理程序。该文在分析Serv-U 帐户管理机制的基础上,详细讨论了将Serv-U的帐号信息保存在Access数据库中情况下数据库结构的设计、相关参数的设置和大批量账号管理程序的设计。
2 Serv-U简介
Serv-U 是一个非常好的FTP 服务器软件,它设置简单,功能强大,性能稳定。Serv-U FTP 服务器并不是简单地提供文件的下载,还为用户的系统安全提供了相当全面的保护,可以应用于Internet 范围内文件共享的解决方案。其主要功能特点有:1) 流量控制及带宽限制。支持对上传、下载流量和网络带宽设定限制,以确保带宽不会被少数FTP 用户独占;2) 磁盘空间限制。可以设定每个帐号可使用的磁盘空间; 3) 断点续传能有效地降低重复下载;4) 远程管理方便用户从任何地方管理FTP Server ,提高工作效率;5) 安全机制通过严格的权限控制,提供系统安性和稳定性;6) 支持多宿主IP 站点;7) 作为系统服务运行。Serv-U 的安装和设置非常简单,在此不作介绍。
3 采用ODBC数据库保存账户信息
Serv-U 5 及以后版本的域账户信息可以存放在:ini文件、计算机注册表或ODBC数据库中。对于用户量较大情况,一般应将账户信息保存在计算机注册表或ODBC数据库中较好。因为在公共计算机实验室环境,学生账户数巨大,且更新频繁,需要自己开发账户管理程序,故采用ODBC数据库存放较好。由于Access数据库管理系统是Office的一个组件,且其操作简便,功能强大,故建议采用Access数据库保存账户信息。
采用ODBC数据库存放用户账户信息需要在新建域时选择。Serv-U不会自动产生空数据库,数据库需要管理员自行创建。Serv-U非常灵活地处理数据库账户信息,数据库中可包含账户及组的所有信息,数据库至少应包含一张用户账号表,该表至少应包含account name, home directory, password, and directory access rule等4列,分别代表账户名称、主目录、密码和目录权限。

图1 Serv-U批量账户创建删除程序主界面
采用ODBC数据库保存账户信息的具体操作步骤为:1) 在Serv-U安装目录或其它目录中创建一个用于保存账户信息的Access数据库“账号数据库.MDB”;2) 在该数据库中创建一张“账号表”, 在对实际需求进行分析后,笔者认为该表较合理的结构如表1所示;
3) 创建系统ODBC数据源:进入“开始|控制面板|管理工具|ODBC数据源|系统DSN”添加一个系统DSN,名称不妨取 FTPUsers,连接Access数据库“账号数据库.MDB”;4) 在Serv-U与数据库间建立连接:进入Serv-U管理程序“Domain | ODBC” 选项卡,完成ODBC database coupling settings参数的设置,即将ODBC数据源名、账户表名、账户表的字段名称设置到相应行中。至此采用ODBC数据库保存账户信息所有设置完成。如果域不能启用,即在该域名上有一个经色“X”符号,说明某处设置不正确,可进入Serv-U管理程序“Server | Activity | Session Log”选项卡,查看系统日志找出错误之处并改正错误。
4 大批量账户成批创建和删除
通过上面介绍的操作可以将Serv-U的账户信息保存在ODBC数据库中,我们仍然可以通可Serv-U的管理程序来管理账户,包括创建账户、删除账户及更改密码等操作。但用这种方法一次创建或删除五六千学生用户账号,并创建相应的用户主目录及相关参数的设置,工作量巨大。为了能够快束完成大批量账户成批创建和删除工作,笔者结合所在学校的实际情况,用Visual Basic 6.0 设计了一个能够大批量账户成批创建和删除的程序,程序的主界面如图1所示。使用该程序创建大批量账号的操作步骤为:1) 学生用户用学生的10位数字的学号作账户名称,需要先将欲创建的账户名保存在一个纯文本文件中,一行一个账户号;2) 从账户名文件文件读取账户名;3) 检查欲新建的账户名与账户数据库的账户名是否存在重复,如存在重复,先解决重复问题;4) 使用循环结构对账户名文件文件中的每个账户名在账户数据库中创建记录,即创建账户及设置相关参数,并创建账户的主目录。指定创建账户的时间段可以成批删除账户。
下面介绍一下实现该程序的主要内容:1) 程序使用ADO对象连接和操作账户数据库;2) 密码字段(Passdword)的保存:Serv-U的账户密码可用加密码形式保存,也可用不密码形式保存。加密的方法是随机生成两个字母,然后将字母和密码进行拼接,再求它们的MD5值,最后将随机字母放在MD5值的前面便是加密后的密码。考虑到在公共计算机实验室为学生用户提供存储服务安全性安求较低,为便于设计账户管理程序,笔者采用数据库中保存不加密的密码,进入Serv-U管理程序“Domain | Settings | Advanced”选项卡,不选定“Store passwords in encrypted form”前的复选框;3) 用户主录目的创建:用户主目录包括用户目录位置、账户名前缀(可选)和账户名组成,调用函数Shell("cmd /c md "