访问权限的控制方法及控制系统
技术领域
本发明涉及网络安全领域,具体来说,涉及一种访问权限的控制方法及控制系统。
背景技术
Linux系统中所采用的访问控制是传统UNIX的基于访问模式位的单一的自主访问控制,在实现这一功能时,系统的访问控制代码散列在核心中,没有形成统一的访问控制模块和相应的接口,缺乏相应的灵活性、扩充性以及易维护性,无法定制化系统的访问控制策略。
目前,有一种技术可以实现相应的权限管理,即ACL(Access Control List)。所谓ACL,就是一个文件/目录的访问控制列表,可以针对任意指定的用户/组分配RWX权限,可以通过一些命令配置实现对一个文件的详细的权限管理。
然而,ACL权限控制,只能在普通用户之间进行较为详细的权限设置,对于root这个超级用户是不受限制的。超级用户的权利仍然太大(例如,超级用户可以做一切事情,访问一切文件),入侵者往往可以轻松的利用应用程序的漏洞,不通过身份认证就可以成为超级用户,而这个假冒的超级用户就可以轻松的修改系统的设置,安置后门,进而破坏系统。
针对相关技术中不能对超级用户进行权限控制的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中不能对超级用户进行权限控制的问题,本发明提出一种访问权限的控制方法及系统,其不仅能够对普通用户的权限进行限制,同时也可以对超级用户进行限制。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种访问权限的控制方法。
该控制方法包括:
对于请求对访问对象进行访问操作的访问方,提取该访问方的用户标签,其中,访问对象预先配置有用户标签以及与该用户标签对应的权限标签;
根据预先配置的用户标签和提取的用户标签,确定访问方是否通过验证;如果提取的用户标签与预先配置的用户标签中的一个标签相符,则确定访问方通过验证;
根据提取的用户标签所对应的权限标签,确定访问方是否有权限对访问对象进行访问操作。
此外,该控制方法进一步包括:预先对访问对象配置用户标签以及与该用户标签对应的权限标签。
其中,在预先对访问对象配置用户标签以及与该用户标签对应的权限标签时,可分析访问对象的文件头的属性空间,确定文件头的空闲属性空间;并在空闲属性空间中加入用户标签以及与该用户标签对应的权限标签。
其中,访问操作包括以下至少之一:读取、写入、执行。
其中,访问方包括普通用户和超级用户。
根据本发明的另一方面,提供了一种访问权限的控制系统。
该控制系统包括:
提取模块,用于提取对访问对象进行访问操作的访问方的用户标签,其中,访问对象预先配置有用户标签以及与该用户标签对应的权限标签;
验证模块,用于根据预先配置的用户标签和提取的用户标签,确定访问方是否通过验证,如果提取的用户标签与预先配置的用户标签中的一个标签相符,则确定访问方通过验证;
判定模块,用于根据提取的用户标签所对应的权限标签,确定访问方是否有权限对访问对象进行访问操作。
此外,控制系统还包括:设置模块,用于预先对访问对象配置用户标签以及与该用户标签对应的权限标签。
其中,设置模块进一步包括分析模块和添加模块,分析模块,用于分析访问对象的文件头的属性空间,确定文件头的空闲属性空间;添加模块,用于在空闲属性空间中加入用户标签以及与该用户标签对应的权限标签。
其中,访问操作包括以下至少之一:读取、写入、执行。
其中,访问方包括普通用户和超级用户。
本发明通过在访问对象的文件头中预存用户标签以及与用户标签对应的权限标签,从而使得在每次对文件进行操作前,首先需要验证访问方是否具有权限,当确定访问方具有权限后,才可以在权限标签所标识的操作权限内对相应的文件进行操作,从有效的控制了所有用户的访问权限,避免了现有相关技术无法对超级用户进行限制的问题,提高了系统的安全性和可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的访问权限的控制方法的流程示意图;
图2是根据本发明实施例的文件头设计示意图;
图3是根据本发明实施例的Fuse系统的结构示意图;
图4是根据本发明实施例的Fuse系统前期对文件的文件头进行修改的流程示意图;
图5是根据本发明实施例的Fuse系统后期对文件进行操作时验证用户权限的流程示意图;
图6是根据本发明实施例的访问权限的控制系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种访问权限的控制方法。
如图1所示,根据本发明实施例的访问权限的控制方法包括:
步骤S101,对于请求对访问对象进行访问操作的访问方,提取该访问方的用户标签,其中,访问对象预先配置有用户标签以及与该用户标签对应的权限标签;
步骤S103,根据预先配置的用户标签和提取的用户标签,确定访问方是否通过验证;如果提取的用户标签与预先配置的用户标签中的一个标签相符,则确定访问方通过验证;
步骤S105,根据提取的用户标签所对应的权限标签,确定访问方是否有权限对访问对象进行访问操作。
此外,控制方法进一步包括:预先对访问对象配置用户标签以及与该用户标签对应的权限标签。
其中,在预先对访问对象配置用户标签以及与该用户标签对应的权限标签时,可分析访问对象的文件头的属性空间,确定文件头的空闲属性空间;并在空闲属性空间中加入用户标签以及与该用户标签对应的权限标签。
其中,访问操作包括以下至少之一:读取、写入、执行。
其中,访问方包括普通用户和超级用户。
下面将从文件的文件头设计以及利用Fuse用户态文件系统来实现访问权限的控制方法的流程对本发明的上述方案进行描述。
图2示出了一个文件头的设计示意图,如图2所示,为了方便控制用户对文件的权限控制,所以将用户权限列表存储在文件头中,在每次对文件操作前,首先验证用户是否具有权限,同样,包括对root用户权限控制。用户权限列表中不同的用户名序列之间可以用分隔符隔开。
Fuse是一种用户态文件系统。它使得Fuse用户在用户态下编写文件系统成为一种可能,且不必和内核打交道。Fuse由三个部分组成:Linux内核模块、Fuse库以及mount工具。结合Fuse实现用户权限管理的框架图如图3所示。
图4示出了Fuse系统前期对文件的文件头进行修改的流程示意图,图5示出了Fuse系统后期对文件进行操作时验证用户权限的流程示意图,从图4和图5中可以看出,利用Fuse来实现用户权限管理的工作流程如下:在Fuse系统中,首先需要对相关文件进行前期操作,即用户为文件分配权限,修改权限,然后调用Fuse中的函数钩子按照之前的文件头设计修改当前文件的文件头,将用户权限列表存储在文件头中。当前期操作完毕后,在后期每次对文件进行操作时,需要调用Fuse中的read、write函数,读取文件头中之前分配的权限分配信息,来验证当前访问用户是否对访问文件具有访问权限,如果验证当前用户具有对其所访问的文件具有访问权限,则对其放行,运行当前用户对访问的文件进行读取、写入等操作。反之,则阻止当前用户对其所访问的文件进行下一步操作。
在实际实施时,本发明还可以通过在系统文件中保存用户访问权限或者在文件属性中指定用户访问权限的方式来访问权限的控制。
根据本发明的实施例,还提供了一种访问权限的控制系统。
如图6所示,根据本发明实施例的权限访问的控制系统包括:
提取模块61,用于提取对访问对象进行访问操作的访问方的用户标签,其中,访问对象预先配置有用户标签以及与该用户标签对应的权限标签;
验证模块62,用于根据预先配置的用户标签和提取的用户标签,确定访问方是否通过验证,如果提取的用户标签与预先配置的用户标签中的一个标签相符,则确定访问方通过验证;
判定模块63,用于根据提取的用户标签所对应的权限标签,确定访问方是否有权限对访问对象进行访问操作。
此外,控制系统还包括:设置模块(未示出),用于预先对访问对象配置用户标签以及与该用户标签对应的权限标签。
其中,设置模块进一步包括分析模块(未示出)和添加模块(未示出)。分析模块,用于分析访问对象的文件头的属性空间,确定文件头的空闲属性空间;添加模块,用于在空闲属性空间中加入用户标签以及与该用户标签对应的权限标签。
其中,访问操作包括以下至少之一:读取、写入、执行。
其中,访问方包括普通用户和超级用户。
综上,借助于本发明的上述技术方案,通过在访问对象的文件头中预存用户标签以及与用户标签对应的权限标签,从而使得在每次对文件进行操作前,首先需要验证访问方是否具有权限,当确定访问方具有权限后,才可以在权限标签所标识的操作权限内对相应的文件进行操作,从有效的控制了所有用户的访问权限,避免了现有相关技术无法对超级用户进行限制的问题,提高了系统的安全性和可靠性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。