您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 招标投标 > 基于Serv-U的公共计算机实验数据存储
第1页基于Serv-U的公共计算机实验数据存储引言由于公共计算机实验室中的微机是公用的,在发生机器故障、人为因素等原因后,实验数据得不到有效的存储,特别是综合性的实验往往需要多次上机才能完成,这些实验的数据量大,只能暂存在本地硬盘中,而且大部分公共实验室里的计算机为了管理的方便,都安装了还原系统,只要发生死机等导致机器重新启动,系统就会还原到初始状态,所有的操作和实验结果都需重做,因此很难保证存储在本机内数据的安全。在学生实验作业的提交与教师的批改问题方面,由于不能实现数据的网络存储,学生实验完成后,教师只能逐个机器检查学生的作业。这样不但增加了教师的负担,同时也降低了实验的利用率。实践教学管理问题方面,不能存储学生的实验结果、实验数据,就无法建立实践教学环节档案,规范高校实践教学管理。因此,实现公共计算机实验室数据的网络存储显得非常必要,比较易于实现,且节约成本的选择就是采用FTP服务器。一、Serv-U服务器的架构Serv-U是一款Windows平台下非常优秀的FTP服务器,它的安装非常简单,它支持断点续传、带宽限制、远程管理、虚拟目录、磁盘配额等,功能十分完备。与其它同类服务器相比它界面有好、性能稳定,其安装也非常简单。由于Serv-U版本更新很快,本文以Serv-U6.4.04为例介绍其安装和配置,其步骤如下:第一步,安装Serv-UFTP服务器,按照提示,选择安装目录,即可完成安装。第二步,修改配置文件ServUDaemo.INI,下面是一台Serv-U的ServUDaemo.INI内容:[GLOBAL]Version=6.4.0.4RegistrationKey=********************‘软件注册密钥AntiHammer=1AntiHammerWindow=3PacketTimeOut=300UseUPnP=0BlockFTPBounceAttack=1ProcessID=2140[Domain1]CacheTTL=60ODBCSource=ftpdsn/ftp/ftp‘此外设置你的ODBC源名/帐号名/帐号密码。ODBCTables=useraccounts|groupaccounts|useraccess|groupaccess|userIPaccess|groupIPaccess‘ODBC数据库的表名。ODBCColumns=user|password|skey|homedir|loginmessage|access|disable||relpaths|hidefile|alwaylogin|changepass|quotaenable|SameIp|maxrateup|maxratedown|maxconcurrentusers|ideovertime|processovertime|ratioup|ratiodown|ratiocredit|quotacurrent|quotamax|expiration|privilege|passtype|ratiotype|groups|notes|indexno|dueaccount|lastchgpsw‘ODBC数据库的字段名。VirPath1=D:\学生作业ftp目录\吴应嘉作业要求|%HOME%|作业要求‘虚拟路径设置[DOMAINS]第2页Domain1=210.40.132.3||21|stu|1|0|1‘此处设为你的服务器IP第三步,配置Serv-UFTPODBC。在日常管理中,学生人数众多,如果需要大量的建立用户,重复性的工作量就非常大了,Serv-U存储用户的方式有多种,比较方便管理的把用户信息存放在数据库中。安装完成后,打开Serv-U管理器,建立一个域,域名如stu,输入域IP地址(服务器的IP),然后在域类型中选择“存储于ODBC数据库中”,数据库本文中用的是ACCESS。配置完成后如图1所示图1二、Serv-U中用户帐号的加密方法。其加密算法工作原理是先随机选取两个任意的英语字母(大小写均可,简单起见,本文用小写)与用户的密码原码拼接密码字符串,然后取这个字符串的MD5,生成一个32位密码,最后密码就为刚才随机生成的两个字母加下整个字符串的MD5。例如:随机生成了两个字母ak,用户输入的密码:administrator777,那么生成的密码为:ak+MD5(akadmin777),此处“+”表示字符连接符号,并不是密码的一部分。以下用PHP实现该加密方法:FunctionSerUPassEnCode($strPass){$Char1=chr(rand(97,122));//随机产生一个小写字母$Char2=chr(rand(97,122));$Seed=$Char1.$Char2;$prePass=$Seed.$strPass;//把随机产生的这两个小写字母放在密码前面$EnCodePass=md5($prePass);//32位md5运算$FinalPass=$Seed.$EnCodePass;//把随机产生的这两个小写字母放在经过MD5运算后第3页的密码前面$SerUPassEnCode=$FinalPass;return$SerUPassEnCode;}三、批量生成帐号及实现WEB修改密码等。以下是实现Serv-U用户的远程在线帐号管理的部分PHP代码,限于篇幅,仅给出部分核心代码,如下:……require./config.php;//初始化数库等配置echo$ftpname[$j].br;//显示要建立FTP用户的文本文件的名单$directory=strtok($ftpname[$j],.);//去掉文件名的扩展名。$fp=fopen($ftpname[$j],r);//打开需要生成的用户名单文件if(!file_exists($ftpname[$j])){echo$ftpname[$j];die(文件未发现!);}$fp1=fopen($ftpname[$j].'用户密码名单.txt',w);//生成用户的密码文件$n=1;while(!feof($fp)){$username=fgets($fp);//取得每一行$username=rtrim($username);//除去字串右边的空格符等if(''==$username)//去掉空行,若为空行,结束本次循环,读下一行。continue;echo$username;//随机生成4位数密码部分$strPass=rand(1000,9999);//随机产生1000-9999的数;echo$strPass.'br';$strings='----------------------------------------------------------'.\r.\n;$somecontent=$strings.'姓名:'.$username.''.'用户名:'.$ftpuser.''.'密码:'.$strPass.\r.\n;if(!$deletemark[$j])//根据删除标志决定是写文件{fwrite($fp1,$somecontent);}$password=SerUPassEnCode($strPass);//生成密码第4页$password='.$password.';$homedir='.$directory.\\.$bh.$username.';$subhomedir=substr($homedir,1,strlen($homedir)-2);$access='.$subhomedir.'|RWAMLCDP'.';if(CreateDir($subhomedir)){$ftpuser='.$ftpuser.';$StrSql_makeuser=MakeUserSQL($tabname1,$ftpuser,$password,$access,$homedir);}if(!$deletemark[$j]){odbc_exec($connectID,$StrSql_makeuser);if($virtual)//是否建虚拟目录{$virtualhomedir='.$DiskFtpDir.$teachername[$j].'\\'.$virtualname[$j].'|RLP'.';$StrSql_virtualpath=MakeVirtualPathSQL($tabname2,$ftpuser,$virtualhomedir);odbc_exec($connectID,$StrSql_virtualpath);}}fclose($fp1);fclose($fp);odbc_close($connectID);……结束语将Serv-U的用户信息存储于Access数据库中,通过ODBC结合PHP编程实现对FTP帐号的建立、修改、删除等操作,给Serv-U的管理带来了很大的方便。本程序在Windows2003Server通过,效果相当理想。参考文献[1]闫静等.基于Serv-U的FTP服务器在实验教学中的应用[J].福建电脑,2007(6)[2]杜江.PHP5与MySQL5Web开发技术详解[M].北京:电子工业出版社,2007.[3]蔡研.FTP服务在机房作业管理中的应用[J].科技资讯,2009(19)
本文标题:基于Serv-U的公共计算机实验数据存储
链接地址:https://www.777doc.com/doc-2573350 .html