一种用户空间文件系统中ACL权限的实现方法技术方案

技术编号:13343641 阅读:70 留言:0更新日期:2016-07-14 10:15
本发明专利技术公开了一种用户空间文件系统中ACL权限的实现方法,该方法包括:引用原属于内核模块中的Posix_acl.c文件和Posix_acl.h文件,将权限校验方法封装在PosixACL中,使PosixACL变为权限校验类;在用户态文件系统的client.cc文件的client类中添加权限校验类PosixACL;当接收到文件操作请求时,通过client类中permission_walk方法将与文件操作请求对应的用户参数传递给权限校验类PosixACL,利用权限校验类PosixACL中的权限校验方法对文件操作请求进行权限验证。该方法实现有效地对用户空间文件系统的文件操作提供访问控制机制。

【技术实现步骤摘要】

本专利技术涉及分布式文件系统
,特别是涉及一种用户空间文件系统中ACL权限的实现方法
技术介绍
目前,FUSE(FilesysteminUserspace)是用户空间文件系统,提供用于实现用户态文件操作实现的接口。传统的文件系统都是定义在操作系统内核层面上,要操作系统识别一种新的文件系统必须重写内核。FUSE为客户端挂载并使用分布式文件系统提供了一种可行方案,用户在使用FUSE时候有两种开发模式:一种是high_level模式,此模式下fuse的入口函数为fuse_main,它封装了一系列初始化操作,使用简单,但是不灵活;另一种是low_level模式,用户可以利用FUSE提供的底层函数灵活开发应用程序。但是,在low_level模式下实现的文件操作缺少有效的ACL(AccessControlList)权限控制机制,安全性很低。
技术实现思路
本专利技术的目的是提供一种用户空间文件系统中ACL权限的实现方法,以实现有效地对用户空间文件系统的文件操作提供访问控制机制,提升安全性。为解决上述技术问题,本专利技术提供一种用户空间文件系统中ACL权限的实现方法,该方法包括:引用原属于内核模块中的Posix_acl.c文件和Posix_acl.h文件,将权限校验方法封装在PosixACL中,使PosixACL变为权限校验类;在用户态文件系统的client.cc文件的client类中添加权限校验类PosixACL;当接收到文件操作请求时,通过所述client类中permission_walk方法将与所述文件操作请求对应的用户参数传递给所述权限校验类PosixACL,利用所述权限校验类PosixACL中的权限校验方法对所述文件操作请求进行权限验证。优选的,所述引用原属于内核模块中的Posix_acl.c文件和Posix_acl.h文件,将权限校验方法封装在PosixACL中,使PosixACL变为权限校验类之后,还包括:将权限校验类PosixACL的命名空间设置为posix,完成权限校验类PosixACL与client类的对接;所述client类位于用户态文件系统的client.cc文件中。优选的,所述利用所述权限校验类PosixACL中的权限校验方法对所述文件操作请求进行权限验证之后,还包括:若验证成功,将所述文件操作请求发送至集群服务器,若验证失败,返回验证失败消息。优选的,所述在用户态文件系统的client.cc文件的client类中添加权限校验类PosixACL之前,还包括:关闭所述用户空间文件系统FUSE中内核模块的默认校验开关。优选的,所述关闭所述用户空间文件系统FUSE中内核模块的默认校验开关,包括:将所述用户空间文件系统FUSE中内核模块的默认权限参数fuse_default_permissions设置为false。优选的,所述权限校验类PosixACL为基于Posix标准的ACL校验类。优选的,所述在用户态文件系统的client.cc文件的client类中添加权限校验类PosixACL之后,还包括:在client.cc文件中的setxattr函数和removexattr函数中均添加检查参数strncmp。优选的,在client.cc文件中的setxattr函数和removexattr函数中均添加检查参数strncmp之后,还包括:对操作接口fuse_lowlevel_ops里的校验添加宏开关。优选的,所述对操作接口fuse_lowlevel_ops里的校验添加宏开关之后,还包括:修改Makefile.am的编译文件列表,重新编译。本专利技术所提供的一种用户空间文件系统中ACL权限的实现方法,引用原属于内核模块中的Posix_acl.c文件和Posix_acl.h文件,将权限校验方法封装在PosixACL中,使PosixACL变为权限校验类;在用户态文件系统的client.cc文件的client类中添加权限校验类PosixACL;当接收到文件操作请求时,通过所述client类中permission_walk方法将与所述文件操作请求对应的用户参数传递给所述权限校验类PosixACL,利用所述权限校验类PosixACL中的权限校验方法对所述文件操作请求进行权限验证。可见,将权限校验方法封装在PosixACL中,使PosixACL变为权限校验类,并在client类中添加权限校验类PosixACL,然后利用在client类中添加的权限校验类PosixACL来对文件操作请求进行权限验证,这样实现ACL权限,完成对文件操作的权限验证,如此针对用户空间文件系统的用户态系统即用户空间实现ACL权限验证机制,增加系统安全性,所以实现有效地对用户空间文件系统的文件操作提供访问控制机制,提升安全性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术所提供的一种用户空间文件系统中ACL权限的实现方法的流程图;图2为ACL权限流程示意图;图3为用户空间文件系统FUSE实现流程;图4为Open()函数中的ACL权限实现流程。具体实施方式本专利技术的核心是提供一种用户空间文件系统中ACL权限的实现方法,以实现有效地对用户空间文件系统的文件操作提供访问控制机制,提升安全性。为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参考图1,图1为本专利技术所提供的一种用户空间文件系统中ACL权限的实现方法的流程图,该方法包括:S11:引用原属于内核模块中的Posix_acl.c文件和Posix_acl.h文件,将权限校验方法封装在PosixACL中,使PosixACL变为权限校验类;其中,PosixACL原本就是类,这里的PosixACL即指代PosixACL类,将在Posix_acl.c中实现本文档来自技高网
...

【技术保护点】
一种用户空间文件系统中ACL权限的实现方法,其特征在于,包括:引用原属于内核模块中的Posix_acl.c文件和Posix_acl.h文件,将权限校验方法封装在PosixACL中,使PosixACL变为权限校验类;在用户态文件系统的client.cc文件的client类中添加权限校验类PosixACL;当接收到文件操作请求时,通过所述client类中permission_walk方法将与所述文件操作请求对应的用户参数传递给所述权限校验类PosixACL,利用所述权限校验类PosixACL中的权限校验方法对所述文件操作请求进行权限验证。

【技术特征摘要】
1.一种用户空间文件系统中ACL权限的实现方法,其特征在于,
包括:
引用原属于内核模块中的Posix_acl.c文件和Posix_acl.h文件,将
权限校验方法封装在PosixACL中,使PosixACL变为权限校验类;
在用户态文件系统的client.cc文件的client类中添加权限校验类
PosixACL;
当接收到文件操作请求时,通过所述client类中permission_walk
方法将与所述文件操作请求对应的用户参数传递给所述权限校验类
PosixACL,利用所述权限校验类PosixACL中的权限校验方法对所述
文件操作请求进行权限验证。
2.如权利要求1所述的方法,其特征在于,所述引用原属于内
核模块中的Posix_acl.c文件和Posix_acl.h文件,将权限校验方法封装
在PosixACL中,使PosixACL变为权限校验类之后,还包括:
将权限校验类PosixACL的命名空间设置为posix,完成权限校验
类PosixACL与client类的对接;所述client类位于用户态文件系统的
client.cc文件中。
3.如权利要求1所述的方法,其特征在于,所述利用所述权限
校验类PosixACL中的权限校验方法对所述文件操作请求进行权限验
证之后,还包括:
若验证成功,将所述文件操作请求发送至集群服务器,若验证失
败,返回验证失败消息。
4.如权利要求1所述的方法,其特征...

【专利技术属性】
技术研发人员:吕游张延良
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1