本发明属于文件存储权限设计技术领域,具体涉及一种分布式文件存储系统的权限控制方法和系统。
背景技术:
随着分布式文件存储系统的快速发展,适用范围越来越广泛,针对目录层级深且文件数众多,对一个用户递归设置权限,需要耗费很长的时间,设置完之后需要经常变更重新设置。
在目录层级较深文件数量较多时,使用命令setxacl-r设置acl(访问控制列表)过程执行慢,向用户返回设置结果耗时长。此为现有技术的不足之处。
因此,针对现有技术中的上述缺陷,提供设计一种分布式文件存储系统的权限控制方法和系统;以解决现有技术中的上述缺陷,是非常有必要的。
技术实现要素:
本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种分布式文件存储系统的权限控制方法和系统,以解决上述技术问题。
为实现上述目的,本发明给出以下技术方案:
一种分布式文件存储系统的权限控制方法,其特征在于,包括以下步骤:
s1:判断所添加用户组权限中的标识gid是否在分布式文件系统存在用户数据库中,当用户组存在时转到步骤s2,否则报错退出;
s2:对顶层目录进行acl打标替换原有的遍历设置acl或者选择对顶层自身进行acl设置;
s3:对打标上层目录acl权限校验替换原有的自身acl权限校验,若无对上层目录打标,则按目录自身权限进行校验。
本技术方案中,setxacl-r设置acl需要遍历所有子目录及文件进行acl权限设置,等待所有子目录及文件设置完成之后,再向客户返回处理结果;本方案直接对顶层目录成功设置acl即向上层应用返回结果;用户访问权限校验由顶层目录权限控制。
作为优选,所述步骤s3中acl权限采用时间优先原则:最近时间设置的acl权限为生效acl。
作为优选,所述时间优选原则中,设置目录/a/b/c/file;首先对c目录设置u1:rwx-v权限,访问文件file使用c目录的u1:rwx-v权限,即读写不可删除;再对a目录设置u1:rwxdv权限,此时访问文件file,根据时间优先原则,采用目录a的权限:u1:rwxdv即完全控制权限。
作为优选,所述的分布式文件存储系统的权限控制方法还包括权限控制测试方法,具体步骤如下:
在集群创建10级目录,每个目录下10万个文件,选择任一级目录自身设置用户组acl权限rwxvd,acl设置命令10秒内成功返回结果;
在集群创建10级目录,每个目录下10万个文件,选择任一级目录打标设置用户组acl权限rwxvd,acl设置命令10秒内成功返回结果
存在顶层acl目录时:创建/a/b/c/d目录,对a目录打标设置u1:rwxdv权限,对d目录自身设置u1:r-x-v权限,删除d目录自身acl属性后,目录d权限为顶层acl权限校验rwxdv;
存在顶层acl目录时:创建/a/b/c/d目录,对a目录打标设置u1:rwxdv权限,对d目录打标设置u1:r-x-v权限,删除d目录打标acl属性后,目录d权限为顶层acl权限校验rwxdv;
不存在顶层acl目录时:创建/a/b/c/d目录,对d目录打标设置u1:r-x-v权限,删除d目录打标acl属性后,目录d权限为ugo权限;
不存在顶层acl目录时:创建/a/b/c/d目录,对d目录自身设置u1:r-x-v权限,删除d目录自身acl属性后,目录d权限为ugo权限。
本发明还给出一种分布式文件存储系统的权限控制系统,其特征在于,包括:
判断权限标识模块,判断所添加用户组权限中的标识gid是否在分布式文件系统存在用户数据库中,当用户组存在时进入顶层目录打标模块,否则报错退出;
顶层目录打标模块,对顶层目录进行acl打标替换原有的遍历设置acl或者选择对顶层自身进行acl设置;
上层目录权限校验模块,对打标上层目录acl权限校验替换原有的自身acl权限校验,若无对上层目录打标,则按目录自身权限进行校验。
作为优选,上层目录权限校验模块中,acl权限采用时间优先原则:最近时间设置的acl权限为生效acl;所述时间优选原则中,设置目录/a/b/c/file;首先对c目录设置u1:rwx-v权限,访问文件file使用c目录的u1:rwx-v权限,即读写不可删除;再对a目录设置u1:rwxdv权限,此时访问文件file,根据时间优先原则,采用目录a的权限:u1:rwxdv即完全控制权限。
作为优选,所述的分布式文件存储系统的权限控制系统还包括:
权限控制测试模块,在集群创建10级目录,每个目录下10万个文件,选择任一级目录自身设置用户组acl权限rwxvd,acl设置命令10秒内成功返回结果;
在集群创建10级目录,每个目录下10万个文件,选择任一级目录打标设置用户组acl权限rwxvd,acl设置命令10秒内成功返回结果
存在顶层acl目录时:创建/a/b/c/d目录,对a目录打标设置u1:rwxdv权限,对d目录自身设置u1:r-x-v权限,删除d目录自身acl属性后,目录d权限为顶层acl权限校验rwxdv;
存在顶层acl目录时:创建/a/b/c/d目录,对a目录打标设置u1:rwxdv权限,对d目录打标设置u1:r-x-v权限,删除d目录打标acl属性后,目录d权限为顶层acl权限校验rwxdv;
不存在顶层acl目录时:创建/a/b/c/d目录,对d目录打标设置u1:r-x-v权限,删除d目录打标acl属性后,目录d权限为ugo权限;
不存在顶层acl目录时:创建/a/b/c/d目录,对d目录自身设置u1:r-x-v权限,删除d目录自身acl属性后,目录d权限为ugo权限。
本发明的有益效果在于,适用于多种分布式文件存储场景,方便客户操作,可用性强,会更效率的满足客户需求,可以满足产品的多元化。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1是本发明提供的一种分布式文件存储系统的权限控制系统的原理框图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
实施例1:
本发明提供的一种分布式文件存储系统的权限控制方法,其特征在于,包括以下步骤:
s1:判断所添加用户组权限中的标识gid是否在分布式文件系统存在用户数据库中,当用户组存在时转到步骤s2,否则报错退出;
s2:对顶层目录进行acl打标替换原有的遍历设置acl或者选择对顶层自身进行acl设置;
s3:对打标上层目录acl权限校验替换原有的自身acl权限校验,若无对上层目录打标,则按目录自身权限进行校验。
本技术方案中,setxacl-r设置acl需要遍历所有子目录及文件进行acl权限设置,等待所有子目录及文件设置完成之后,再向客户返回处理结果;本方案直接对顶层目录成功设置acl即向上层应用返回结果;用户访问权限校验由顶层目录权限控制。
本实施例中,所述步骤s3中acl权限采用时间优先原则:最近时间设置的acl权限为生效acl。
本实施例中,所述时间优选原则中,设置目录/a/b/c/file;首先对c目录设置u1:rwx-v权限,访问文件file使用c目录的u1:rwx-v权限,即读写不可删除;再对a目录设置u1:rwxdv权限,此时访问文件file,根据时间优先原则,采用目录a的权限:u1:rwxdv即完全控制权限。
本实施例中,所述的分布式文件存储系统的权限控制方法还包括权限控制测试方法,具体步骤如下:
在集群创建10级目录,每个目录下10万个文件,选择任一级目录自身设置用户组acl权限rwxvd,acl设置命令10秒内成功返回结果;
在集群创建10级目录,每个目录下10万个文件,选择任一级目录打标设置用户组acl权限rwxvd,acl设置命令10秒内成功返回结果
存在顶层acl目录时:创建/a/b/c/d目录,对a目录打标设置u1:rwxdv权限,对d目录自身设置u1:r-x-v权限,删除d目录自身acl属性后,目录d权限为顶层acl权限校验rwxdv;
存在顶层acl目录时:创建/a/b/c/d目录,对a目录打标设置u1:rwxdv权限,对d目录打标设置u1:r-x-v权限,删除d目录打标acl属性后,目录d权限为顶层acl权限校验rwxdv;
不存在顶层acl目录时:创建/a/b/c/d目录,对d目录打标设置u1:r-x-v权限,删除d目录打标acl属性后,目录d权限为ugo权限;
不存在顶层acl目录时:创建/a/b/c/d目录,对d目录自身设置u1:r-x-v权限,删除d目录自身acl属性后,目录d权限为ugo权限。
实施例2:
如图1所示,本发明提供的一种分布式文件存储系统的权限控制系统,其特征在于,包括:
判断权限标识模块,判断所添加用户组权限中的标识gid是否在分布式文件系统存在用户数据库中,当用户组存在时进入顶层目录打标模块,否则报错退出;
顶层目录打标模块,对顶层目录进行acl打标替换原有的遍历设置acl或者选择对顶层自身进行acl设置;
上层目录权限校验模块,对打标上层目录acl权限校验替换原有的自身acl权限校验,若无对上层目录打标,则按目录自身权限进行校验。
本实施例中,上层目录权限校验模块中,acl权限采用时间优先原则:最近时间设置的acl权限为生效acl;所述时间优选原则中,设置目录/a/b/c/file;首先对c目录设置u1:rwx-v权限,访问文件file使用c目录的u1:rwx-v权限,即读写不可删除;再对a目录设置u1:rwxdv权限,此时访问文件file,根据时间优先原则,采用目录a的权限:u1:rwxdv即完全控制权限。
本实施例中,所述的分布式文件存储系统的权限控制系统还包括:
权限控制测试模块,在集群创建10级目录,每个目录下10万个文件,选择任一级目录自身设置用户组acl权限rwxvd,acl设置命令10秒内成功返回结果;
在集群创建10级目录,每个目录下10万个文件,选择任一级目录打标设置用户组acl权限rwxvd,acl设置命令10秒内成功返回结果
存在顶层acl目录时:创建/a/b/c/d目录,对a目录打标设置u1:rwxdv权限,对d目录自身设置u1:r-x-v权限,删除d目录自身acl属性后,目录d权限为顶层acl权限校验rwxdv;
存在顶层acl目录时:创建/a/b/c/d目录,对a目录打标设置u1:rwxdv权限,对d目录打标设置u1:r-x-v权限,删除d目录打标acl属性后,目录d权限为顶层acl权限校验rwxdv;
不存在顶层acl目录时:创建/a/b/c/d目录,对d目录打标设置u1:r-x-v权限,删除d目录打标acl属性后,目录d权限为ugo权限;
不存在顶层acl目录时:创建/a/b/c/d目录,对d目录自身设置u1:r-x-v权限,删除d目录自身acl属性后,目录d权限为ugo权限。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。