Linux系统的用户权限控制方法

文档序号:6546500阅读:299来源:国知局
Linux 系统的用户权限控制方法
【专利摘要】本发明提出了一种Linux?系统的用户权限控制方法,包括:内核源代码修改步骤,对内核源代码进行修改,以使Linux系统中的Cgroup/device子系统可直接访问文件;文件权限判断步骤,用户采用Cgroup/device子系统访问文件,并根据用户权限配置信息,判断用户对该文件是否具有访问权限。本发明首先对Linux系统的内核源代码进行修改,以使Linux系统中的Cgroup/device子系统可直接访问文件,再根据用户对文件的访问权限,来确定用户是否有权访问文件,由此采用Cgroup/device子系统可以控制用户对文件的访问权限。
【专利说明】Linux系统的用户权限控制方法
【技术领域】
[0001]本发明涉及Linux操作系统领域,尤其涉及一种Linux系统的用户权限控制方法。【背景技术】
[0002]在Linux操作系统中,Cgroup/device子系统无法直接访问文件,无法控制文件的访问权限,只能用来控制块设备和字符设备的访问权限。
[0003]此外,用户在访问设备中的文件时,必须要将文件所在的设备挂载到一个已存在的目录上,然后通过该目录来访问该设备。Cgroup/device子系统在块设备和/或字符设备处于挂载状态时,无法限制用户对设备的访问权限,即无法控制用户对设备的访问权限。

【发明内容】

[0004]本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种Linux系统的用户权限控制方法,解决了 Linux操作系统无法采用Cgroup/device子系统直接访问文件,无法通过Cgroup/device子系统来控制用户对文件的访问权限的问题。
[0005]为了实现本发明的上述目的,本发明提供了一种Linux系统的用户权限控制方法,包括:内核源代码修改步骤,对内核源代码进行修改,以使Linux系统中的Cgroup/device子系统可直接访问文件;文件权限判断步骤,用户采用所述Cgroup/device子系统访问文件,并根据用户权限配置信息,判断所述用户对所述文件是否具有访问权限。
[0006]在一个实施例中,在所述文件权限判断步骤中,若所述用户对所述文件不具有访问权限,则用户无权访问所述文件。
[0007]在一个实施例中,在所述文件权限判断步骤中,若所述用户对所述文件具有访问权限,则所述Linux系统的用户权限控制方法,还包括:设备权限判断步骤,根据所述用户权限配置信息,判断所述用户对存储所述文件的设备是否具有访问权限。
[0008]在一个实施例中,在所述设备权限判断步骤中,包括:若所述用户对存储所述文件的设备具有访问权限,则所述用户有权访问所述设备;若所述用户对存储所述文件的设备不具有访问权限,则所述用户无权访问所述设备。
[0009]在一个实施例中,还包括:用户权限配置信息获取步骤,从用户权限数据库中下载用户权限信息,并对所述用户权限信息进行处理,获得所述Cgroup/device子系统所能识别的用户权限配置信息。
[0010]在一个实施例中,还包括:用户权限配置步骤,所述Cgroup/device子系统采用黑名单方式来配置用户权限。
[0011]在一个实施例中,在所述文件权限判断步骤中,包括根据以下项目来判断用户对文件是否具有访问权限:判断所述用户对所述文件的读写操作是否与所述文件的读写属性相符合;判断所述用户是否属于可访问所述文件的用户/属组;判断所述文件的文件名是否属于所述用户可访问文件的文件名。
[0012]在一个实施例中,在所述设备权限判断步骤中,包括:判断存储所述文件的设备的编号是否在所述用户的设备列表中,所述设备列表由用于存储所述用户可访问文件的设备的编号组成。
[0013]在一个实施例中,在所述文件权限判断步骤中,在满足以下条件时,判断所述用户对所述文件具有访问权限:所述用户对所述文件的读写操作与所述文件的读写属性相符合;所述用户属于可访问所述文件的用户/属组;所述文件的文件名属于所述用户可访问文件的文件名。
[0014]在一个实施例中,在所述设备权限判断步骤中,在满足以下条件时,判断所述用户对存储所述文件的设备具有访问权限:存储所述文件的设备的编号在所述用户的设备列表中。
[0015]综上所述,由于采用了上述技术方案,本发明的有益效果是:
[0016]1、首先对Linux系统的内核源代码进行修改,以使Linux系统中的Cgroup/device子系统可直接访问文件,再根据用户对文件的访问权限,来确定用户是否有权访问文件,由此采用Cgroup/device子系统可以控制用户对文件的访问权限;
[0017]2、在用户对文件具有访问权限时,进一步根据用户对存储该文件的设备的访问权限来确定用户是否有权访问设备,由此可见,即便设备处于挂载状态,本发明也可以控制用户对设备的访问;
[0018]3、该Cgroup/device子系统采用黑名单方式来配置用户权限,方便用户权限配置。
[0019]本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0020]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0021]图1是本发明的实施例1提供的Linux系统的用户权限控制方法的流程图;
[0022]图2是本发明的实施例2提供的Linux系统的用户权限控制方法的流程图。
【具体实施方式】
[0023]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0024]在本发明的描述中,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0025]图1示出了本发明的实施例1提供的Linux系统的用户权限控制方法的流程图。如图1所示,该方法包括以下步骤:
[0026]S100、内核源代码修改步骤,对内核源代码进行修改,以使Linux系统中的Cgroup/device子系统可直接访问文件;
[0027]S200、文件权限判断步骤,用户采用所述Cgroup/device子系统访问文件,并根据用户权限配置信息,判断用户对文件是否具有访问权限。
[0028]在本发明的一个实施例中,通过对内核源代码文件security/device_cgroup.c中的函数devcgroup_inode_permission进行修改,以使Linux系统中的Cgroup/device子系统可直接访问文件。
[0029]在本发明的一个实施例中,若步骤S200中若用户对该文件不具有访问权限,则用户无权访问该文件。需要注意的是:上述用户权限配置信息包括但不限于用户可访问文件的文件名和/或存储用户可访问文件的设备列表。Cgroup是control group的缩写,是Linux内核源代码提供的一种可限制、记录和隔离进程组所使用的物理资源的机制。
[0030]目前,Linux系统中Cgroup/device子系统只能对块设备和字符设备进行访问,无法直接访问文件,从而限制用户对文件的访问权限。本发明首先对Linux系统的内核源代码进行修改,以使Linux系统中的Cgroup/device子系统可直接访问文件,再根据用户对文件的访问权限,来确定用户是否有权访问文件,由此采用Cgroup/device子系统可以控制用户对文件的访问权限。
[0031]在本发明的一个实施例中,上述步骤S200包括根据以下项目来判断用户对文件是否具有访问权限:
[0032]判断用户对文件的读写操作是否与该文件的读写属性相符合;
[0033]判断用户是否属于可访问该文件的用户/属组/其他;
[0034]判断该文件的文件名是否属于用户可访问文件的文件名。
[0035]若满足以下条件,则判断用户对该文件具有访问权限:
[0036]用户对所述文件的读写操作与所述文件的读写属性相符合,例如,若该文件的读写属性为只读,则用户对文件只可执行读操作;若该文件的读写属性为只写,则用户对文件只可执行写操作;若该文件的读写属性为可读可写,则用户对该文件既可执行读操作,也可执行写操作;
[0037]用户属于可访问所述文件的用户/属组/其他;
[0038]文件的文件名属于所述用户可访问文件的文件名。
[0039]图2示出了本发明的实施例2提供的Linux系统的用户权限控制方法的流程图。图2中标号与图1中相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细描述。如图2所示,图2所示方法与图1所示方法的主要区别在于,在步骤S200中,若用户对文件具有访问权限,则该Linux系统的用户权限控制方法,还包括:
[0040]S300、设备权限判断步骤,根据用户权限配置信息,判断用户对存储该文件的设备是否具有访问权限。若用户对存储该文件的设备具有访问权限,则用户有权访问该设备;若用户对存储该文件的设备不具有访问权限,则用户无权访问该设备。
[0041]目前,Linux系统中的Cgroup/device子系统在块设备或字符设备处于挂载状态时,无法限制用户对设备的访问权限。本发明在用户对文件具有访问权限时,进一步根据用户对存储该文件的设备的访问权限来确定用户是否有权访问设备,由此可见,即便设备处于挂载状态,本发明也可以控制用户对设备的访问。
[0042]在本发明的一个实施例中,上述步骤S400包括:判断存储该文件的设备的编号是否在用户的设备列表中,该设备列表由用于存储该用户可访问文件的设备的编号组成。若存储该文件的设备的编号在用户的设备列表中,则表示用户可访问该设备,否则表示用户不可访问该设备。
[0043]在本发明的另一实施例中,该Linux系统的用户权限控制方法,还包括:
[0044]S400、用户权限配置信息获取步骤,从用户权限数据库中下载用户权限信息,并对用户权限信息进行处理,获得该Cgroup/device子系统所能识别的用户权限配置信息。由于用户权限信息通常存储在远程的用户权限数据库中,此外,用户权限数据库中存储的用户权限信息并不能直接被Linux系统中的Cgroup/device子系统所识别,因此在获取用户权限配置信息的过程中,需要首先从用户权限数据库中下载用户权限信息,再对用户权限信息进行处理,转换成Cgroup/device子系统所能识别的用户权限配置信息。
[0045]在本发明的再一实施例中,该Linux系统的用户权限控制方法,还包括:
[0046]S500、用户权限配置步骤,Cgroup/device子系统采用黑名单方式来配置用户权限。传统的Cgroup/device子系统采用白名单方式,即Cgroup/device子系统中默认的用户配置信息设置为可允许的,本发明中Cgroup/device子系统采用黑名单方式,即Cgroup/device子系统中默认的用户配置信息是不允许的,由此方便对用户权限进行配置。这是因为,系统的外设很多,如果采用白名单的方式,就会设置很多项目,相反如果设置黑名单的话就会很方便地对用户权限进行配置。
[0047]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一或多个实施例或示例中以合适的方式结合。
[0048]尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
【权利要求】
1.一种Linux系统的用户权限控制方法,其特征在于,包括: 内核源代码修改步骤,对内核源代码进行修改,以使Linux系统中的Cgroup/device子系统可直接访问文件; 文件权限判断步骤,用户采用所述Cgroup/device子系统访问文件,并根据用户权限配置信息,判断所述用户对所述文件是否具有访问权限。
2.根据权利要求1所述的方法,其特征在于,在所述文件权限判断步骤中,若所述用户对所述文件不具有访问权限,则用户无权访问所述文件。
3.根据权利要求1所述的方法,其特征在于,在所述文件权限判断步骤中,若所述用户对所述文件具有访问权限,则所述Linux系统的用户权限控制方法,还包括: 设备权限判断步骤,根据所述用户权限配置信息,判断所述用户对存储所述文件的设备是否具有访问权限。
4.根据权利要求3所述的方法,其特征在于,在所述设备权限判断步骤中,包括: 若所述用户对存储所述文件的设备具有访问权限,则所述用户有权访问所述设备;若所述用户对存储所述文件的设备不具有访问权限,则所述用户无权访问所述设备。
5.根据权利要求1所述的方法,其特征在于,还包括: 用户权限配置信息获取步骤,从用户权限数据库中下载用户权限信息,并对所述用户权限信息进行处理,获得所述Cgroup/device子系统所能识别的用户权限配置信息。
6.根据权利要求5所述的方法,其特征在于,还包括: 用户权限配置步骤,所述Cgroup/device子系统采用黑名单方式来配置用户权限。
7.根据权利要求1所述的方法,其特征在于,在所述文件权限判断步骤中,包括根据以下项目来判断用户对文件是否具有访问权限: 判断所述用户对所述文件的读写操作是否与所述文件的读写属性相符合; 判断所述用户是否属于可访问所述文件的用户/属组; 判断所述文件的文件名是否属于所述用户可访问文件的文件名。
8.根据权利要求3所述的方法,其特征在于,在所述设备权限判断步骤中,包括:判断存储所述文件的设备的编号是否在所述用户的设备列表中,所述设备列表由用于存储所述用户可访问文件的设备的编号组成。
9.根据权利要求7所述的方法,其特征在于,在所述文件权限判断步骤中,在满足以下条件时,判断所述用户对所述文件具有访问权限: 所述用户对所述文件的读写操作与所述文件的读写属性相符合; 所述用户属于可访问所述文件的用户/属组; 所述文件的文件名属于所述用户可访问文件的文件名。
10.根据权利要求8所述的方法,其特征在于,在所述设备权限判断步骤中,在满足以下条件时,判断所述用户对存储所述文件的设备具有访问权限: 存储所述文件的设备的编号在所述用户的设备列表中。
【文档编号】G06F21/62GK103971064SQ201410203161
【公开日】2014年8月6日 申请日期:2014年5月14日 优先权日:2014年5月14日
【发明者】程超, 李蕾 申请人:中标软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1