APP下载

基于FTP与NTFS权限的文件共享设计与实现

2020-06-08张伟

现代信息科技 2020年19期

摘  要:目前各类学校机房中使用最广泛的操作系统是微软的Windows系统。在机房的教学与考试中经常需要创建共享,以便下载与上传文件。由于Windows系统的连接数限制,多人访问共享存在问题。通过对多种文件共享方式的对比和对共享的需求分析,利用C#、FTP、NTFS等技术开发了Windows共享系统,实现了Windows环境下多人文件共享访问,提供了精细的权限控制,解决了机房内文件传输需求。

关键词:FTP;NTFS权限;文件共享

Abstract:At present,the most widely used operating system in all kinds of school computer rooms is Microsofts Windows system. In the teaching and examination of the computer room,it is often necessary to create a share in order to download and upload files. Due to the limited number of connections in the Windows system,there is a problem with multi-person access sharing. Through the comparison of various file sharing methods and the analysis of the sharing requirements,the Windows sharing system is developed by using C#,FTP,NTFS and other technologies. It realizes the multi-person file sharing access under Windows,provides fine permission control,and solves the file transmission requirements in the computer room.

Keywords:FTP;NTFS permission;file sharing

0  引  言

在教育部发布《教育信息化2.0行动计划》,信息技术飞速发展背景下,各类学校更加重视信息化教学,在机房中进行教学的课程越来越多,充分利用数字资源、多媒体资源与实训平台等,以期取得更好的教学与实训效果。在实际教学实施中,会遇到文件传输需求:如教学资料的下发,课后作业的上交,未完成的作业下次课下载继续完成,考试时作品、账套、截图的提交等等。以上需求可以具体总结为以下两点:(1)需要简便快捷的共享。最简便常用的方式是使用Windows文件共享来在机房中传输文件。但由于Windows系统有连接数限制,Win XP及Win 7为10个,Win 10为20个。多人访问局域网中的共享文件的时候,会遇到提示“达到连接数目限制”,进而无法访问共享。(2)需要权限控制。学生对共享文件夹要有下載和上传的权限,但特殊时候需要对上传的权限加以限制,如考试时,学生有上交文件的权限,但不能删除、打开、复制已经上交的文件,防止作弊和恶意行为。

为了实现上述需求,目前实践中一般采取的方法有以下几种:(1)利用教学软件收发,此种方式收作业方便,但需要二次整理。下发作业很麻烦,无法方便做到作业和学生的对应下发。(2)利用Windows系统的共享功能来实现,但是有连接数限制,远满足不了共享需求,且必须经过精心设计的权限控制才能避免对已上交文件的下载、删除。(3)机房内搭建FTP,利用FTP下载、上传功能来实现。可以解决连接数限制,但部署复杂,权限控制粒度粗糙,只有读、写两种权限。虽可利用“用户隔离”限制用户的权限[1],但账号密码管理是十分庞大的工作,且上传的文件分散到不同的文件夹中,不利于集中管理。

以上方法对于需求的解决均存在一定的不足。利用Windows系统自带的FTP及NTFS权限相结合的方法,在Windows环境下快速地实现文件传输是一种可行的解决方案[2]。但具体操作过程步骤较多,过于专业,在部署和改变需求时,需要完全理解每个设置的意义,才能有效地做好配置。这对于使用者来说非常不友好,甚至由于专业知识的欠缺,无法部署及应用。

作者依据FTP配合NTFS权限的方法思路进行了系统需求分析,详细设计,程序编写与功能测试,最终实现了程序自动化部署和应用,解决了机房内文件收发及权限控制的需求,在江苏联合职业技术学院徐州财经分院的机房内实现了很好的应用。

1  依赖技术介绍

1.1  FTP协议

FTP是TCP/IP协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。主要功能用于实现用户间文件分发共享,提供可靠和高效的数据传输。

1.2  NTFS权限

NTFS(New Technology File System)是Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式,并提供了若干附加扩展功能,如访问控制列表(Access Control List,ACL)和文件系统日志。

NTFS权限是基于NTFS分区格式实现的,NTFS权限可以实现高度的本地安全性,通过对用户或组赋予NTFS权限可以有效地控制用户对文件和文件夹的访问。分配了正确的访问权限后,用户才能访问其资源,可防止资源被篡改、删除。

NTFS分区的每一个文件和文件夹都有一个列表,称为ACL,该列表记录了每一用户和组对该资源的访问权限。

2  系统整体设计框架

为了描述清楚,先统一两个概念。“服务端”为需要提供共享文件夹服务的计算机,“客户端”为需要访问共享文件夹的计算机。

程序运行在服务端,客户端仅在桌面上放置由服务端生成的两个快捷方式“素材空间”和“学生空间”,分别指向服务端的对应文件夹,如图1所示。

素材空间为存放素材文件用,设置对用户只读属性。客户端仅能查看、下载。学生空间:允许客户端上传,可读写删除,或仅可上传,禁止打开、复制、删除文件。系统整体功能设计与运行流程如图2、图3所示。

3  主要功能详细设计与实现

3.1  自动安装IIS及FTP服务

程序运行后,需要先检测是否安装了IIS和FTP服务,通过遍历注册表“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Components”下的键值,匹配“FTPSvc”,如果不存在,则说明没有安装FTP服务。程序自动创进程,采用DISM命令来进行自动部署。DISM工具是Windows中可用的管理员级可执行文件命令,可用于修复Windows映像或修改Windows安装介质。DISM采用“/Online/Enable-Feature/FeatureName:IIS-WebServer/FeatureName:IIS-WebServerRole/FeatureName:IIS-BasicAuthentication/FeatureName:IIS-FTPServer/FeatureName:IIS-FTPSvc”作为参数运行,安装IIS和FTP。

3.2  创建FTP用户

首部署FTP站点的时候,同时检测是否存在用于登录FTP的用户,如不存在,则利用C#中System.Directory Services

命名空间的DirectoryEntry对象利用Active Directory服务接口(ADSI)自动创建用户。创建用户需要注意的是账户的属性“密码永不过期”为真,避免一段时间后密码失效无法登录。

3.3  自动部署FTP站点

通过建立FTP站点的方式来提供两个共享空间。FTP的最大连接数为232-1,完全不存在连接数限制的问题。

3.3.1  IIS配置系统介绍

Internet信息服务(IIS)7和更高版本引入了全新的配置系统,使用基于结构化的XML的配置系统来存储IIS设置,该系统取代了IIS 6.0和更早版本中使用的配置数据库。这个新的配置系统是ASP.NET引入的,它基于使用*.config文件的管理系统的分层系统,多个文件在不同层级配置,可以帮助Web应用、站点、机器分别配置自己的扩展配置数据。IIS启动的时候会加载配置文件中的配置信息,然后缓存这些信息。在运行过程中ASP.NET应用程序会监视配置文件的变化情况,一旦编辑了这些配置信息,就会重新读取这些配置信息并缓存。其配置文件的层级关系如图4所示。在继承层次结构方面,根文件是Machine.config,然后是同一目录中的Web.config(称为根Web.config),接着是ApplicationHost.config,最后是各站點中的可选Web.config文件。

使用IIS 7及更高版本时,ApplicationHost.config是配置系统的根文件,Administration.config与Redirection.config是用于IIS自身管理的配置文件,它们位于%WinDir%\System32\Inetsrv\Config文件夹中。图4中各个配置文件的作用如表1所示。

在配置文件中,“节”为最小单元、以结构化方式来组织,这些节进一步分为与逻辑相关的集合,称为“节组”。节组可以嵌套,但一个节始终仅属于一个节组。以下为一个配置示例:

3.3.2  利用配置文件创建FTP站点

对FTP站点的创建与管理,主要配置的内容为:system. applicationHost/sites节组、节和节,其功能如表2所示。

基于XML的配置系统大大方便了通过代码的方式进行站点的部署与配置。C#中的Microsoft.Web.Administration.ServerManager类提供对配置系统的读写访问,使用此类需要先引入Microsoft.Web.Administration.dll。ServerManager类可以访问应用程序集合、网站集合、WorkerProcess集合、绑定对象和VirtualDirectory集合,其公开的属性是只读的,属性返回的对象是具有读取和写入权限的。对配置对象所做的更新必须使用CommitChanges显式写入配置系统,更新后IIS会自动读取新配置并应用。

3.4  共享与模式设置

共享的允许与禁止,通过ApplicationHost.config配置文件中元素的Start或Stop方法启动、停止FTP站点。调用Start、Stop方法后,可以通过state属性的值确定FTP站点的运行时状态。

权限控制方面,素材空间较简单,直接设置FTP站点权限为只读即可。学生空间需要设置FTP权限为读写,更细粒度的访问权限则要用相应文件夹的NTFS权限来控制。

NTFS权限是基于ACL的,一个ACL条目表示定义文件或目录访问规则的访问控制项(ACE)[3,4],包含表3中的要素。

C#的System.Security.AccessControl命名空间提供了对安全对象的访问权限以及审核、安全相关的操作。命名空间中的FileSystemSecurity类表示文件或目录的访问控制和审核安全,其派生了DirectorySecurity类和FileSecurity类,用于更方便的对目录和文件的操作。

在服务端对“学生空间”文件夹进行NTFS权限设置的步骤如图5所示,其中“用户”指的是用于访问FTP的用户。

4  生成快捷方式

服务端部署完成后,利用程序自动生成分别指向“素材空间”与“学生空间”的两个快捷方式,使用FTP协议指向服务端站点,如图6所示。并把它们发送到学生桌面上,学生只需双击桌面上的对应图标即可访问。生成的快捷方式地址可以为服务端的计算机名或计算机IP地址,两者区别是使用IP地址的快捷方式打开要快一些,因为省去了名称到IP地址的转换。在服务端IP地址不会轻易改变的情况下,建议使用IP地址。

5  软件功能测试

生成系统小巧简单,仅一个EXE程序,运行在Win 7及以上系统,完全利用系统自带的功能与环境,无须安装额外软件。在江苏联合职业技术学院徐州财经分院机房教学与考试中完成了实验验证,所有功能运行正常,操作简单,如图7、图8所示。实现了所需功能,解决了Windows下的共享连接限制与权限控制需求。

6  结  论

本文为了实现在机房Windows系统环境下文件传输及权限控制的目的,分析了目前解决需求几种方式的不足,在《Windows桌面版操作系统在机房环境中“文件共享”研究与实现》的思路上,进一步研究了FTP部署、配置及NTFS权限分配的机制,利用C#不仅完成了Windows共享工具的开发,还实现了共享设置的自动化,并应用在了联合职业技术学院徐州财经分院的机房教学中,解决了在机房中的文件传输及可控管理需求。

参考文献:

[1] 庄晓华.FTP用户隔离及应用 [J].价值工程,2010,29(32):176-177.

[2] 张伟.Windows桌面版操作系统在机房环境中“文件共享”研究与实现 [J].信息与电脑(理论版),2019,31(22):44-46.

[3] 李德水.WindowsDACL权限继承和传播机制研究 [J].信息技术,2012(12):29-31.

[4] 戴祖旭.Windows NTFS文件(夹)权限计算模型 [J].计算機工程与设计,2009,30(12):2902-2904.

作者简介:张伟(1981.12—),男,汉族,江苏徐州人,实验师,网络工程师,本科,研究方向:实验室管理、信息化建设。