构建平台创立空间

时间:2022-05-05 05:12:00

构建平台创立空间

[摘要]Excel软件的自动填充是一个非常实用的功能,为我们输入一些连续性的数据提供了极大的方便,以及它强大的函数功能在实际应用中发挥重要作用;Serv-U软件是现今Windows平台下最流行、功能最强大、使用最简单的FTP服务器软件之一,它可以对用户用数据库进行管理;笔者尝试用以上两个软件结合,构建学生FTP服务器。

[关键词]ExcelServ-U数据库FTP服务器

为了机房管理方便,学生机的硬盘往往是还原保护的,同一台计算机可能被不同班级的同学使用,学生的个人文件或没有完成的作业不能在计算机上正常保留;在平时的教学课堂中,常常要分发文件到学生机上,学生完成作业后又要回收,虽然电子教室软件具有这个功能,但是往往出现某些学生机不能正常分发和回收文件的情况,某台学生机因故障重启后,分发到桌面的文件须重新再发一次;基于以上两点原因,笔者想到了为学生建一个FTP服务器,用于存放学生的作业及个人文件。

一、安装Serv-U软件

执行安装文件,即可开始安装,全部选默认选项即可,安装完成后不需重新启动计算机。运行Serv-U软件,出现“SetupWizard(设置向导)”。此向导可以帮你轻松地完成基本设置,直接选“Next(下一步)”,随着安装向导按以下步骤来进行操作:

1.在“IPaddress(IP地址)”框中保持空白,表示使用任意地址;

2.在“Domainname(域名)”框中输入能表示自己机房或某个的名称,如“jf1”;

3.在“systemservice(安装成一个系统服务器吗)”框中选择“NO”;

4.在“anonymouseaccount(接受匿名登录吗)”框中选择“NO”,要求学生一定用自己的帐号登录;

5.在“Domainportnumber(端口号)”框中保持“21”端口不变;

6.在“Domaintype(域名类型)”框中务必选择“StoreinODBCdatabase”项,否则就不能用数据库进行管理用户了。

二、创建数据库

(一)数据库表及表中字段说明

由于Access软件能导入EXCEL工作表中的信息,所以笔者采用Access数据库来管理Serv-U的用户。须建立两个表(Useraccounts和Groupaccounts),其中Useraccounts表用来存储用户的信息,Groupaccounts表用来存储组的信息。

1.Useraccounts表中有以下字段名称及字段类型:

字段名称字段类型

User文本

Password文本

ChangePass是/否

HomeDir文本

Access文本

Groups文本

“User”字段的说明:用中文名作用用户名登录Serv-UFTP时容易出错,若用拼音缩写可能会造成重名,因此用数字编写用户名是一个不错的想法。用户名共六位数字,前两位表示所在班级,后四位表示该生在全校中的流水号,人数较少的学校可以考虑流水号用三位数字表示,与学籍管理中的学号统一起来。

“Password”字段的说明:Serv—U密码加密算法为随机码与MD532位加密,为了方便处理,为每个用户赋予一个统一的初始密码“1”,加密后的字符串为“es073DE74EFE4ACF3AEE0821BD57F539D5”。

“ChangePass”字段的说明:是否允许用户更改密码,在本文中,允许学生更改密码,更改的方法在下文说明。

“HomeDir”字段的说明:用户在服务器上的存储文件的物理位置,为了方便管理,每一个班级建立一个文件夹(用户名前两位数字命名),表示该班所有用户的文件夹(用学生的姓名命名)放在此文件夹中。例学生的主目录存放在D盘“学生FTP目录”文件夹中。

“Access”字段的说明:用户的权限,在用户的目录中赋予最大权限,即用户可以在他的目录中建立和删除文件及文件夹。

“Groups”字段的说明:用户属于哪个组的名称。

2.Groupaccounts表中有以下字段名称及字段类型:

字段名称字段类型说明

User文本组名

Access文本组目录权限规则

(二)利用EXCEL软件制作用户信息

从学籍管理软件中导出学生的姓名、班级、学号信息到一个EXCEL文件中备用,制作的表格示意如图一所示:

图一

“User”列可以用EXCEL中的文本函数“CONCATENATE()”将班和学号信息列合并成一个字符串,操作方法:单击D2单元格,单击“插入”菜单下的“函数”项,在选择类别中选择“文本”,选中“CONCATENATE”函数后单击“确定”按钮,在TEXT1框中选择B2单元格,在TEXT2框中选择C2单元格,单击“确定”按钮,D2单元格的函数为“=CONCATENATE(B2,C2)”,向下填充,完成“User”列的操作,例如张三的用户名就是“010001”。

制作“HomeDir”列的信息:将字符串“D:\学生FTP目录\”、“班”列、字符串“\”及“姓名”列合并为一个字符串,H2单元格的函数为“=CONCATENATE("D:\学生FTP目录\",B2,"\",A2)”,向下填充,完成“HomeDir”列的操作,例如张三的文件存放路径为“D:\学生FTP目录\01班\张三”。

制作“Access”列的信息:同理,将“HomeDir”列和字符串“|RWAMLCDP”合并为一个字符串,“RWAMLCDP”表示用户对目录及文件各种权限,在这里赋予用户最大权限。

利用填充功能将“Access”列填充为“TRUE”,将“Groups”列填充为“Group1|Group2”,(Group2备用)将“Password”列填充为“es073DE74EFE4ACF3AEE0821BD57F539D5”。

(三)创建数据库

将“User”列到“Groups”列所有信息用EXCEL的“选择性粘贴”→“数值”命令复制到一个新的工作表(Sheet2)中,保存备用。

启动Access软件,创建一个Access数据库,名为“ftp.mdb”,在“表”对象窗口中,单击“新建”→“导入表”命令,在文件类型框中选择“MicrosoftExcel(*.xls)”,导入准备的EXCEL文件,在“工作表”选项中选择“Sheet2”,单击“下一步”,选择“第一行包含列标题”,最后在“导入到表”框中输入“Useraccounts”,完成Useraccounts表的创建。

导入后的Useraccounts表的结构如图二所示。

图二

在“表”对象窗口中,单击“新建”→“设计”命令,在表设计窗口中输入字段名称“User”,选择数据类型为“文本”;输入字段名称“access”,选择数据类型为“文本”,单击“保存”按钮,将表保存为“Groupaccounts”,双击Groupaccounts表,在第一条记录的User字段中输入Group1,在第二条记录的User字段中输入Group2,完成Groupaccounts表的创建。新建后的Groupaccounts表结构如图三所示,最终完成的数据表如图四所示,其他数据表可以不输入数据。

图三

三、建立Serv-U软件与数据库的关联

(1)建立系统DSN数据源

单击“控制面板”→“管理工具”下的“数据源(ODBC)”命令,单击“系统DSN”窗口中的“新建”按钮,在名称框中选择“MicrosoftAccessDriver(*.mdb)”(如图五所示),在“数据源名”框中输入“studentftp”,单击“选择”按钮,选择上面建立的数据库名(),两次单击“确定”按钮,完成系统DSN数据建立(如图六所示)。

图五图六

(2)配置Serv-U软件ODBC面板

建立Serv-U软件与数据库的联接,运行Serv-U软件,单击建立的域名(jf1),在Domain中的ODBC面板设置不同字段映射,如图七所示。

图七

数据库字段映射和表名映射可以参照下表,当然可以在数据库中增加其他字段,如为每个用户分配的最大磁盘配额等等。

数据库字段映射和表名映射关系备注

ODBCsourcename(ODBC源名称)studentftp系统数据源名

Tablenameofusrers(用户的表名)UseraccountsAccess数据库中建立两个的表

Tablenameofgroups(组的表名)Groupaccounts

Columnnameofaccountname(用户目录访问权限的表名)UserUseraccounts表中的字段

Columnnameofpassword(密码的列名)Password

Columnnameofallowchangepassword(允许更改密码的列名)ChangePass

Columnnameofhomedirectory(主目录的列名)HomeDir

Columnnameofdiraccessrule(目录访问规则列名)Access

Columnnameofmembergroupnames(成员组名称的列名)Groups

四、建立学生文件夹

在图一所示EXCEL表中的“HomeDir”列就是表示存放学生文件的路径,只要在表格的最后插入一列,该列中所有行中都填充为“MD”单词,后一列中复制“HomeDir”列中信息,将这两列的信息复制到一个文本文件中,将这个文件另存为“.bat”批处理文件类型,双击执行这个文件就可以建立学生文件。

为了方便教师查找学生作业,也可以利用这个方法为学生建立每一次回收作业的文件夹,例如在回收“EXCEL练习一”时,用字符连接函数连接“HomeDir”列与字符“EXCEL练习一”,保存为批处理文件,下次作业时,可以将“EXCEL练习一”替换为下次作业的名称。

五、建立虚拟路径的映射关系

对于不同用户对某些文件及文件夹需要不同的操作权限,如教师布置的作业文件夹,为了防止学生误删,他们只有读取和列表的权限。“D:\作业要求”是存放教师布置作业的文件夹,将这个文件夹(目录)设为“Group1”,在“组”中的“Group1”中设置文件权限为“读取”,目录权限为“列表”,子目录为“继承”。此时各用户只能访问自己的目录,不能访问“Group1”设置的目录,需设置“Group1”为虚拟路径,映射到各个用户的目录中去。如果手动配置需花费大量时间,可以通过修改“ServUDaemon.ini”文件达到这个目的。在配置文件“ServUDaemon.ini”的最后加上格式为“VirPath1=D:\作业要求|d:\学生FTP目录\01\张三|作业要求”的字符串,具体的操作可以用到EXCEL软件的填充与函数功能,在图一中,将“VirPath”列、“=D:\作业要求|”字符串、“HomeDir”列和“|作业要求”合并为一个字符串,K2单元格的函数为“=CONCATENATE(J2,"=D:\作业要求|",H2,"|作业要求")”,向下填充,完成“虚拟路径”列的操作。。

将“虚拟路径”列中的信息复制到“ServUDaemon.ini”文件中,重启Serv—U后生效。参照以上方法,可能开发需要特殊权限的目录,例如将学生上交作业的文件夹存放在一起,赋予学生文件的最大操作权限,但不允许他们创建和删除文件夹。

六、更改FTP密码的方法

在同一台主机上配置一个WEB站点,并使其执行ASP代码。编写一个ASP网页,与FTP共用一个数据库,先从数据库中读出用户输入的用户名及密码,若用户输入的旧密码与原来的密码相同,则将新密码经过MD5加密后写入数据库。更改密码的界面如图八所示。

图八

更改数据库的主要代码如下所示:

dimact,UserName,OldPassword,NewPassword,reNewPassword

act=Request.form("act")

ifact="update"then

UserName=Request.form("UserName")''''用户名

OldPassword=Request.form("OldPassword")''''旧密码

NewPassword=Request.form("NewPassword")''''新密码

reNewPassword=Request.form("reNewPassword")''''重新输入的新密码

UserName=Replace(UserName,"''''","''''")''''去除输入的用户名中首尾空格

iflen(UserName)<1orlen(OldPassword)<1orlen(NewPassword)<1orlen(reNewPassword)<1then''''判断输入的信息是否为空

alert("表单没有填写完整")

endif

iftrim(NewPassword)<>trim(reNewPassword)then''''判断两次输入的密码是否一致

alert("密码与确认密码不一样")

endif

Sql0="selecttop1user,[password]from[Useraccounts]whereuser=''''"&Username&"''''"''''从数据库中查询该用户密码

setrs0=conn.execute(Sql0)''''将查询结果保存在rs0中

ifrs0.eofandrs0.bofthen

alert("用户名不存在")

else

dbname=rs0("user")''''取出用户名

dbpassword=rs0("password")''''取出密码

endif

cdbpassword=left(dbpassword,2)&md5(left(dbpassword,2)&OldPassword)''''将输入的旧密码进行MD5加密

iftrim(cdbpassword)<>trim(dbpassword)then''''判断新旧密码是否一致

alert("密码错误")

else

rndstr=MyRandc(2)''''两位随机字母

newdbpassword=rndstr&md5(rndstr&NewPassword)''''将输入的新密码进行MD5加密

sql2="update[Useraccounts]set[password]=''''"&newdbpassword&"''''whereuser=''''"&Username&"''''"''''用新密码去替换数据库中旧密码

conn.execute(sql2)

alert("密码已经更改,可能要几钟后才能生效")

endif

endif

FTP服务器在平时学生作业管理上起了很大作用,特别是多媒体的作品制作课中,一堂课的时间不可能完成一个多媒体作品,学生将信息保存在服务器上,确保了信息的安全。在今后的实践中,将进一步改进FTP的功能。