TECHNOLOGY AND INFORMATION
科学与信息化2022年2月上 193
文件共享安全管理方案探讨
林建华
柯达(中国)图文影像有限公司信息系统部 福建 厦门 361022
摘 要 针对局域网中,文件服务器上的共享文件目录传统的安全管理方式存在的各种不足,文章提出相应的解决方案和JQuery+ASP信息系统的实现方式。实际应用情况表明这种方案可以有效提高管理效益。关键词 文件共享;安全;用户组维护
Discussion on Security Management Scheme for File Sharing Lin Jian-hua
Kodak (China) Graphic Communications Company Ltd., Information System Department, Xiamen 361022, Fujian Province, China
Abstract This paper analyzes the various shortcomings of the traditional security management method o
f the shared file directory on the file server in the local area network, and proposes corresponding solutions and information system implementation methods by JQuery+ASP. Application practice shows that this solution effectively improves management efficiency.
Key words shared file; security; user group management
引言
文件共享是局域网应用的一个基础功能,也是信息共享,提高办公效率的基本要求。数据文件尤其是核心的财务、科研、生产数据,是一个单位重要的知识资产和机密,需要按保密要求严格保存管理,因此,如何保障数据文件在网络中的安全访问,严格控制用户按照授权访问共享文件,是一个重要的课题。
在实践中,通常由域管理员或其代理在共享文件服务器上按部门和部门下的项目组组织并创建共享文件目录,在各个共享目录的安全属性中为不同用户或用户组授予不同的只读或编辑权限,用户按授予的授权从终端在不同的目录中写入或读取文件,这些文件自动继承其所在目录的访问授权,从而实现控制终端用户对文件的不同读写授权。
1 问题
在实践中,这种传统的共享文件管理方式存在以下几个问题:
第一,集中由域管理员或其代理进行文件服务器共享目录的访问授权,每次有文件授权需要变更,都必须由文件所有者通知管理人员或代理进行,效率偏低,尤其是在授权变动频繁,或者域用户组数量较多的情况。
第二,大中型的企业单位中,共享文件往往数量巨大,目
录层级巨多,如果授权都由域管理员或代理进行,无疑工作量偏大。
第三,每个目录用户授权发生变更时,如果所涉及的目录包含的子目录和文件数量很多,则需要耗费很长的时间来遍历并更改该目录下每个文件的访问授权,效率偏低。
第四,共享文件的所有者无法及时、直观地获知文件授权情况并定期来审核文件的授权。
2 解决方案
为了克服这些问题,我们提出并实现了以下解决方案:与授权相关的用户组的名称和共享文件的目录挂钩,使得用户看到目录就知道授权的用户组,看到用户组就知道对应的目录。例如针对目录:Production-Workshop1-TeamA ,分别新建两个用户组
Grp-Production-Workshop1-TeamA-R Grp-Production-Workshop1-TeamA-C
前者只授予只读权限,后者授予可编辑修改权限。域管理员在共享文件目录的安全属性里给相关用户组授予不同的只读或编辑权限,今后只通过增减用户组里的用户,便可以控制用户访问共享文件目录的不同权限,而且,每次用户访问权限的变更不再需要遍历相关目录下的所有子目录和文件。
给每个和共享文件目录授权相关的域用户组指定一个或多
TECHNOLOGY AND INFORMATION
194 科学与信息化2022年2月上
个所有者,并记录到一个数据库表中。今后由用户组所有者负责增减该用户组的所有用户成员;
在此基础上开发一个信息系统来管理域中的相关用户组,并授权给每个域用户组所有者,可以随时通过该系统,直观地自助管理或审核其负责的每个用户组的成员,从而以达到管理用户访问文件授权权限的目的;
应用此方案后,域管理员只负责在需要的情况下新建域用户组,给共享文件目录授予相关用户组相应的只读或者编辑权限,并且在数据库中维护用户组的所有者。日常中更多地给某个具体用户变更授权文件读写权限的工作,则分散由用户组所有者负责在相应的用户组中增减用户,由此实现了共享文件授权由各个部门或项目组自行管理的目标。
3 系统分析
经过对以上解决方案的深入分析,进一步归纳整理并总结出该信息系统需要实现以下几个功能:
能够根据当前登录的用户身份自动判断罗列出其负责的所有域用户组;
根据某个域用户组从域中读取其所有用户成员;判断某个用户是否是某个域用户组的成员;从某个指定的用户组中删除某个指定的用户;给某个指定的用户组增加某个指定的用户;从域中根据用户ID 获得用户名称和描述等详情。
4 系统实现
我们采用了jQuery+ASP 来实现系统。jQuery 是一款高效敏捷的前端javascript 库,可以便捷精准地定位每个前端页面元素,具有丰富的前端功能,其AJAX 技术通过简单的代码即可实现在无网页刷新情况下对部分网页的更新,结合ASP 的webservice 技术,可以轻松实现各种精彩的前后端交互技术和功能要求。
4.1 数据库设计
给每个与目录授权相关的域用户组指定一个或多个所有者,记录在表Grps
里,表结构如下:
序号字段名称
类型
大小
允许为空索引
备注
1GrpName nvarchar 50F 用户组名2
GrpOwner
nchar
8
F
IDX
用户组所有者
当所有者用户登录该系统时,由于系统运行在域环境下,
通过HttpContext.Current.User.Identity.Name 语句返回当前用户域账号,系统再根据当前登录用户的域身份,从数据库表Grps 中查询出该用户负责的所有用户组,并显示在界面“用户组管理”页签下的用户组列表中,见图1。
图1 用户界面
代码如下:
共享文件如何加密Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsPostBack Then Exit Sub Dim usr As String
usr = HttpContext.Current.User.Identity.Name
If usr <> “” Then usr = usr.Remove(0, usr.IndexOf(“\”) + 1)
lblUsr.Text = “欢迎您!” + usr Dim conn As SqlConnection
conn=New SqlConnection(ConfigurationManager.ConnectionStrings(“HelpIT ”).ConnectionString)
Dim cmd As SqlCommand
cmd = New SqlCommand(“Select GrpName from Grps where GrpOwner=@GrpOwner ”, conn)
cmd.Parameters.AddWithValue(“@GrpOwner ”, usr) Dim rdr As SqlDataReader lstGrps.Items.Clear() Try
conn.Open()
rdr= cmd.ExecuteReader(CommandBehavior.CloseConnection)
Do While rdr.Read
lstGrps.Items.Add(rdr.GetValue(0)) Loop
Catch ex As Exception End Try conn.Close()End Sub
4.2 添加成员
以添加用户成员为例,其他功能如查看、删除等可以类推。
如果要为用户组添加用户成员,则从用户组列表中选中该用
TECHNOLOGY AND INFORMATION
科学与信息化2022年2月上 195
户组,点击右边的“增加成员”按钮,激发系统通过前端JQuery 调用后端ASP 相应的W eb Service 进行,JQuery 代码如下:function AddGrpUsr(grp,usr){ $.ajax({ type: “POST ”,
d a t a : “{‘U s
e r I D ’:‘” + u s r + “’,’GroupName ’:’” + grp + “’}”,
contentType: “application/json; charset=utf-8”, url: “/WebService.asmx/AddUserToGroup ”,
datatype: “json ”,
success: function(data) {
if(data.d==’success ’){ getGrpUsrs();} else {alert(data.d)}; },
error: function(XMLHttpRequest, textStatus, errorThrown) { alert(‘ajax:AddUserToGroup 将用户加入用户组过程出错’)}
}); };
以上JQuery 代码通过Ajax 调用后端的Web Service 方法AddUserToGroup(), 同时传入用户ID 和用户组两个参数,将用户加入用户组,如果成功则继续调用getGrpUsrs()函数刷新当前用户组成员,失败则弹窗提醒用户。对应的Web Service 代码如下:
<WebMethod()> _
Public Function AddUserToGroup(ByVal UserID As String, ByVal GroupName As String) As String
‘将用户UserID 加入用户组GroupName Dim s As String Try
Dim grp As GroupPrincipal Dim usr As UserPrincipal
grp = GroupPrincipal.FindByIdentity(gpc, GroupName) usr = UserPrincipal.FindByIdentity(pc, UserID) If Not grp.Members.Contains(usr) Then grp.Members.Add(usr) grp.Save() End If
s = “success ” Catch ex As Exception s = ex.Message End Try Return s End Function
为了衡量用户对系统整体主观满意度,在系统运行半年后邀请了数据库表中所有的用户组所有者对系统进行评分,评分等级为1~5分,评分越高表示越满意,最终本系统获得4.8分,用户整体比较满意。
5 改进展望
信息系统的安全审计是ISO 审核的一项重要内容,尤其是对共享文件的安全保护措施是审核的重点内容之一,如果对本系统进一步加以改进提高,设计新功能对共享文件及其包含的所有子目录进行遍历,获
得每个目录的所有用户组及其权限清单,增加可以查询某个用户所在的用户组清单,则非常有助于文件安全审计工作。此外,目前,通过域策略方式审计共享文件操作的信息简单,无法获取操作共享文件的远程用户详细信息,无法追根到底[1-3],在此方面还有很大的改进空间。
随着云计算云存储的发展,网盘系统在很多单位内部正得到日渐普及应用,对网盘共享文件的安全管理同样也是一个重要课题,本研究的管理思想对网盘共享文件的管理也有启迪[4-5]。
局域网共享文件未考虑到版本控制问题,难以追踪和多用户协同修改,这也经常被用户吐槽,值得纳入我们考虑未来在信息系统中加以改进。
6 结束语
保障共享文件的安全,是企业网络安全重要内容,传统的文件授权由管理员集中管理的做法,存在低效、用户不易审核等各种不足,本研究提出的解决方案可以有效解决这些问题,通过在企业的实际应用,大幅度降低了域管理员的工作负担,方便文件所有者对安全的审核,取得良好的管理效益,尤其是在共享文件目录的规模越大时,获得的效益越明显。
参考文献
[1] 周杨.为共享文件力把“锁”——浅议利用EFS 提高网络共享文件的安全性[J].中国教育信息化,2007(4S):
61-62.
[2] 单东林,张晓菲,魏然.锋利的JQuery[M].北京:人民邮电出版社,2009:45.
[3] Rich HewLett, Getting A Users Username in ASP.NET [EB/OL].[2011-02-15]. RichHewlett/2011/02/15/getting-a-users-username-in-asp-net.
[4] 鲍远松,代真虎,黄明,等.一种高效的局域网内共享文件操作监控审计方法[J].计算机应用与软件,2012,29(8):286-288.
[5] 郭彩云,王会进,龙舜.面向中小机构的文件管理系统的设计与实现[J].计算机应用与软件,2016(9):72-75.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论