一种权限控制方法和系统与流程

文档序号:11623775阅读:223来源:国知局
一种权限控制方法和系统与流程

本发明涉及访问权限管理技术领域,特别是涉及一种权限控制方法和系统。



背景技术:

随着科学技术的发展,越来越多的互联网用户通过远程访问的方式来获取外部网络的共享资源。想要实现远程访问,就需要用户的客户端通过远程登录的方式连接到服务器,然后由服务器调取数据库中的相应信息返回至客户端。

然而,在互联网应用中,服务器为不同的用户提供不同的服务,即不同的客户端具有不同的相应访问权限。各客户端只能在自身的访问权限范围内获取数据库中的信息。通常情况下,当用户在进行远程访问时,服务器进行系统调用权限的判断,通常情况下直接作用于文件系统的数据(文件和目录)和数据库连接,所谓的系统调用指的是进程陷入操作系统内核执行系统功能的调用,如创建文件、修改文件和执行程序。而系统权限通常指的是系统调用时的权限,典型情况下,权限通常由文件属性和进程运行的所属用户组决定。当进程执行系统调用时就会受到进程用户和文件的属性的局限。

因而,如何实现当进程执行系统调用时不局限于进程用户和文件的属性而进行权限的控制,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种权限控制方法和系统,可以实现当进程执行系统调用时不局限于进程用户和文件的属性而进行权限的控制。

为解决上述技术问题,本发明提供了如下技术方案:

一种权限控制方法,包括:

在应用程序的进程进行系统调用时,根据所述系统调用中包含的文件描述符获取该系统调用所属的会话信息;

根据所述会话信息对应的会话权限和所述进程所在系统的系统自身访问权限对所述系统调用进行权限检查;

在所述系统调用满足所述会话权限和所述系统自身访问权限时,则执行当前系统调用,并进行系统调用返回。

优选地,所述在应用程序的进程进行系统调用时,根据所述系统调用中包含的文件描述符获取该系统调用所属的会话信息,包括:

预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符和会话,并通过该连接文件描述符对该会话进行标记;

在应用程序的进程进行系统调用时,根据相应的连接文件描述符对所述系统调用按会话进行追踪识别,并获取相应的会话信息。

优选地,所述预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符和会话,并通过该连接文件描述符对该会话进行标记,包括:

预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符;

建立与所述新连接信息关联的会话;

将各所述连接文件描述符一一映射到一个会话或者空会话中。

优选地,所述在应用程序的进程进行系统调用时,根据相应的连接文件描述符对所述系统调用按会话进行追踪识别,并获取相应的会话信息,包括:

在应用程序的进程进行系统调用时,判断当前系统调用是否包含预设的文件描述符;

若是,则更新当前会话为该预设的文件描述符所映射的会话;

获取所述当前会话的会话信息。

优选地,所述根据所述会话信息对应的会话权限和所述进程所在系统的系统自身访问权限对所述系统调用进行权限检查,包括:

判断当前系统调用是否在所述会话信息对应的所述会话权限内;

若是,则判断所述当前系统调用是否在系统的所述系统自身访问权限内。

一种权限控制系统,包括:

第一获取模块,用于在应用程序的进程进行系统调用时,根据所述系统调用中包含的文件描述符获取该系统调用所属的会话信息;

权限检查模块,用于根据所述会话信息对应的会话权限和所述进程所在系统的系统自身访问权限对所述系统调用进行权限检查;

执行模块,用于在所述系统调用满足所述会话权限和所述系统自身访问权限时,则执行当前系统调用,并进行系统调用返回。

优选地,所述第一获取模块包括:

处理单元,用于预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符和会话,并通过该连接文件描述符对该会话进行标记;

获取单元,用于在应用程序的进程进行系统调用时,根据相应的连接文件描述符对所述系统调用按会话进行追踪识别,并获取相应的会话信息。

优选地,所述处理单元包括:

文件描述符建立子单元,用于预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符;

会话建立子单元,用于建立与所述新连接信息关联的会话;

映射子单元,用于将各所述连接文件描述符一一映射到一个会话或者空会话中。

优选地,所述获取单元包括:

第一判断子单元,用于在应用程序的进程进行系统调用时,判断当前系统调用是否包含预设的文件描述符;

会话更新子单元,用于在所述第一判断子单元判定当前系统调用包含预设的文件描述符时,更新当前会话为该预设的文件描述符所映射的会话;

获取子单元,用于获取所述当前会话的会话信息。

优选地,所述权限检查模块包括:

第一判断单元,用于判断当前系统调用是否在所述会话信息对应的所述会话权限内;

第二判断单元,用于在所述第一判断单元判定当前系统调用在所述会话信息对应的所述会话权限内时,判断所述当前系统调用是否在系统的所述系统自身访问权限内。

与现有技术相比,上述技术方案具有以下优点:

本发明实施例所提供的权限控制方法,包括:在应用程序的进程进行系统调用时,根据系统调用中包含的文件描述符获取该系统调用所属的会话信息;根据会话信息对应的会话权限和进程所在系统的系统自身访问权限对系统调用进行权限检查;在系统调用满足会话权限和系统自身访问权限时,则执行当前系统调用,并进行系统调用返回。对于应用程序的进程对系统调用引入了会话权限的检查来配合系统系统自身访问权限对于服务器中进行系统调用时的权限进行检查校验,以控制应用程序的权限,实现了当进程执行系统调用时不局限于进程用户和文件的属性而进行权限的控制,同时通过文件描述符来对各会话进行识别,方便获知对应的会话的会话权限,以方便进行权限的检查校验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种具体实施方式所提供的权限控制方法流程图;

图2为本发明一种实施方式所提供的会话识别方法流程图;

图3为本发明一种具体实施方式所提供的权限控制系统结构示意图。

具体实施方式

本发明的核心是提供一种权限控制方法和系统,可以实现当进程执行系统调用时不局限于进程用户和文件的属性而进行权限的控制。

为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。

请参考图1,图1为本发明一种具体实施方式所提供的权限控制方法流程图。

本发明的一种具体实施方式提供了一种权限控制方法,包括:

s11:在应用程序的进程进行系统调用时,根据系统调用中包含的文件描述符获取该系统调用所属的会话信息;

s12:根据会话信息对应的会话权限和进程所在系统的系统自身访问权限对系统调用进行权限检查;

s13:在系统调用满足会话权限和系统自身访问权限时,则执行当前系统调用,并进行系统调用返回。

在本实施方式中,当客户端通过预设的应用程序来访问服务器,以获取数据库中的数据时,客户端和服务器之间会建立关于系统调用的会话。在此根据系统调用中包含的文件描述符来获取该会话的会话信息,该会话信息可以指示该会话属于哪个角色,即该会话所属的客户端或者用户,而不同的角色在系统中的身份拥有一组操作权限配置。不同的会话信息对应各自的会话权限。当用户想要进行系统调用时,就需要进行会话权限和系统系统自身访问权限的检测,通过会话权限的检查来判断该会话对应的角色的数据访问权限,而系统系统自身访问权限的检查用来判断系统可以提供给该角色的数据访问权限,只有当系统调用的数据既能通过会话权限的检查,又能通过系统的系统自身访问权限的检查,此时才执行当前系统调用,当当前系统调用执行完成后进行系统调用返回,执行新的系统调用。其中,文件描述符的作用在于对会话进行识别,即文件描述符作为会话的标识。

其中,会话权限即表示了该会话对应的角色的访问权限,从而在判断系统调用是否符合权限时,无需再去判断系统调用的文件属性和进行运行的所属用户的属性,极大地简化了权限的判断过程。对于应用程序的进程对系统调用引入了会话权限的检查来配合系统系统自身访问权限对于服务器中进行系统调用时的权限进行检查校验,以控制应用程序的权限,实现了当进程执行系统调用时不局限于进程用户和文件的属性而进行权限的控制。

需要说明的是,在本文中的整个通讯服务过程中,系统调用主要包括应用程序对磁盘文件系统进行文件读写系统调用,和应用程序对数据库程序的数据库连接读写的系统调用。在这两种情况下进行系统调用时进行权限的检查判断。

还需要说明的是,系统调用还包括数据库程序对数据库数据进行数据读写的系统调用,由于在技术上权限检查的意义不大,因此,在本实施方式中,可以不对此处的系统调用进行权限检查判断。

在本发明的一种实施方式中,在应用程序的进程进行系统调用时,根据系统调用中包含的文件描述符获取该系统调用所属的会话信息,包括:预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符和会话,并通过该连接文件描述符对该会话进行标记;在应用程序的进程进行系统调用时,根据相应的连接文件描述符对系统调用按会话进行追踪识别,并获取相应的会话信息。

其中,预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符和会话,并通过该连接文件描述符对该会话进行标记,包括:预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符;建立与新连接信息关联的会话;将各连接文件描述符一一映射到一个会话或者空会话中。

进一步地,在应用程序的进程进行系统调用时,根据相应的连接文件描述符对系统调用按会话进行追踪识别,并获取相应的会话信息,包括:在应用程序的进程进行系统调用时,判断当前系统调用是否包含预设的文件描述符;若是,则更新当前会话为该预设的文件描述符所映射的会话;获取当前会话的会话信息。

在本实施方式中,对文件描述符对会话的识别进行了详细的说明。文件描述符指的是进程或操作系统中标示打开的文件或连接的一个数字标识,或者称为文件句柄。会话指的是在服务进程接收新连接后,系统为其分配一个会话,该会话与连接进行关联,所谓的连接指的是系统中的应用程序和数据库连接。将每个文件描述符都映射到一个会话或者空会话中,以表示当前会话与会话关联。

需要说明的是,服务器根据服务进程调用数据库中的数据,所谓的服务进程指的是服务器的应用系统中对外部监听端口接收新连接,并提供服务的进程,如apache(www服务器),vsftpd(ftp服务器)。在服务进程接收新连接后,系统会为其分配一个会话,该会话与连接进行关联,以便通过会话的权限来对系统调用进行控制。

在本实施方式中,以预设的文件描述符为描述符参数fd为例进行说明。如图2所示,图2为本发明一种实施方式所提供的会话识别方法流程图。在应用程序的进程进行系统调用时,根据相应的文件描述符对系统调用按会话进行追踪识别,包括:

s21:在进行系统调用时,判断系统当前系统调用中是否包含文件描述符参数fd。

s22:若是,则更新当前会话为fd映射的会话。

s23:执行当前系统调用。

s24:判断系统调用是否产生了新的文件描述符参数fd-new。

s25:若是,则将fd-new映射到当前会话。

之后,该系统调用结束。

在本实施方式中,根据文件描述符识进行会话识别,会话识别不断根据系统调用涉及的文件描述符调整当前会话,并将新的文件描述符映射到当前会话。当创建子进程时,子进程继承当前会话。

在服务进程接收到新连接后,即接收到新的任务时,创建与该新连接关联的文件描述符和会话,并通过该文件描述符标记该会话,这样,就可以对系统调用按会话进行追踪识别,根据系统调用所涉及的文件描述符调整当前会话,以进行会话识别,根据识别的当前会话的会话权限控制当前系统调用。

在本文中,会话可以指示该会话属于哪个角色,即该会话所属的客户端或者用户,而不同的角色根据在系统中的身份拥有一组操作权限配置。不同的会话对应各自的会话权限。当用户想要进行系统调用时,就需要进行会话权限的检查,通过会话权限的检查来判断该会话对应的角色的数据访问权限,而系统系统自身访问权限的检查用来判断系统可以提供给该角色的数据访问权限,只有当系统调用的数据能通过会话权限和系统自身访问权限的检查时才能够执行当前系统调用。

其中,会话权限即表示了该会话对应的角色的访问权限,从而在判断系统调用是否符合权限时,无需再去判断系统调用的文件属性和进行运行的所属用户的属性,极大地简化了权限的判断过程。对于应用程序的进程对系统调用引入了会话权限的检查来对于服务器中进行系统调用时的权限进行检查校验,以控制应用程序的权限,实现了当进程执行系统调用时不局限于进程用户和文件的属性而进行权限的控制。

需要说明的是,在本文中的整个通讯服务过程中,系统调用主要包括应用程序对磁盘文件系统进行文件读写系统调用,和应用程序对数据库程序的数据库连接读写的系统调用。在这两种情况下进行系统调用时进行权限的检查判断。

还需要说明的是,系统调用还包括数据库程序对数据库数据进行数据读写的系统调用,由于在技术上权限检查的意义不大,因此,在本实施方式中,可以不对此处的系统调用进行权限检查判断。

在本发明的一种实施方式中,根据会话信息对应的会话权限和进程所在系统的系统自身访问权限对系统调用进行权限检查,包括:判断当前系统调用是否在会话信息对应的会话权限内;若是,则判断当前系统调用是否在系统的系统自身访问权限内。

在系统调用满足会话权限和系统自身访问权限时,则执行当前系统调用,并进行系统调用返回,包括:若判定当前系统调用在系统的系统自身访问权限内,则执行当前系统调用;在当前系统调用完成后进行系统调用返回。

在本实施方式中,在获取了系统调用的所述会话信息后,首先判断当前系统调用是否在会话权限内,即通过会话权限检测系统调用是否处于该会话对应的角色的权限范围内,若通过检测则判断当前系统调用是否处于系统的系统自身访问权限内,即系统是否对该会话对应的角色开放了对应的权限,若也通过检查,则执行当前系统调用。

需要说明的是,若判定当前系统调用不在会话信息对应的会话权限内,则表示检查失败,直接进入系统调用返回。

进一步地,在本发明的一种实施方式中,在执行当前系统调用之后,还包括:判断当前系统调用的结果是否在会话权限内;若是,则进行系统调用返回;若否,则清空系统调用返回数据,并进行系统调用返回。

在本实施方式中,由于在执行系统调用后的数据会发生一定的变化,因此,在执行完系统调用后,还通过对当前系统调用的结果进行权限的校验。以进一步完善系统调用的权限控制。

还需要说明的是,在本发明中,还可以在获取了系统调用的会话信息后,先进行系统系统自身访问权限的检查,若检查通过,直接执行系统调用,然后对系统调用的结果进行会话权限的检查。也可以实现当进程执行系统调用时不局限于进程用户和文件的属性而进行权限的控制。

请参考图3,图3为本发明一种具体实施方式所提供的权限控制系统结构示意图。

相应地,本发明一种实施方式还提供了一种权限控制系统,包括:

第一获取模块31,用于在应用程序的进程进行系统调用时,根据系统调用中包含的文件描述符获取该系统调用所属的会话信息;

权限检查模块32,用于根据会话信息对应的会话权限和进程所在系统的系统自身访问权限对系统调用进行权限检查;

执行模块33,用于在系统调用满足会话权限和系统自身访问权限时,则执行当前系统调用,并进行系统调用返回。

在本实施方式中,当客户端通过预设的应用程序来访问服务器,以获取数据库中的数据时,客户端和服务器之间会建立关于系统调用的会话。在此根据系统调用中包含的文件描述符来获取该会话的会话信息,该会话信息可以指示该会话属于哪个角色,即该会话所属的客户端或者用户,而不同的角色在系统中的身份拥有一组操作权限配置。不同的会话信息对应各自的会话权限。当用户想要进行系统调用时,就需要进行会话权限和系统系统自身访问权限的检测,通过会话权限的检查来判断该会话对应的角色的数据访问权限,而系统系统自身访问权限的检查用来判断系统可以提供给该角色的数据访问权限,只有当系统调用的数据既能通过会话权限的检查,又能通过系统的系统自身访问权限的检查,此时才执行当前系统调用,当当前系统调用执行完成后进行系统调用返回,执行新的系统调用。其中,文件描述符的作用在于对会话进行识别,即文件描述符作为会话的标识。

在本发明的一种实施方式中,第一获取模块包括:处理单元,用于预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符和会话,并通过该连接文件描述符对该会话进行标记;获取单元,用于在应用程序的进程进行系统调用时,根据相应的连接文件描述符对系统调用按会话进行追踪识别,并获取相应的会话信息。

进一步地,处理单元包括:文件描述符建立子单元,用于预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符;会话建立子单元,用于建立与新连接信息关联的会话;映射子单元,用于将各连接文件描述符一一映射到一个会话或者空会话中。

获取单元包括:第一判断子单元,用于在应用程序的进程进行系统调用时,判断当前系统调用是否包含预设的文件描述符;会话更新子单元,用于在第一判断子单元判定当前系统调用包含预设的文件描述符时,更新当前会话为该预设的文件描述符所映射的会话;获取子单元,用于获取当前会话的会话信息。

在本实施方式中,第一获取模块具有会话识别的用途。在具体实现中,第一获取模块通过处理单元将预设的文件描述符映射表中的各文件描述符都映射到预设的会话列表中的一个会话或者空会话中,以表示当前会话与会话关联。当进行系统调用时,若系统调用中包含某一文件描述符,则将当前会话更新为该文件描述符映射的会话来执行系统调用,在系统调用的过程中,若产生了新的文件描述符,则将该新的文件描述符映射的会话更新为当前会话。

在本发明的一种实施方式中,权限检查模块包括:第一判断单元,用于判断当前系统调用是否在会话信息对应的会话权限内;第二判断单元,用于在第一判断单元判定当前系统调用在会话信息对应的会话权限内时,判断当前系统调用是否在系统的系统自身访问权限内。

在系统调用满足会话权限和系统自身访问权限时,则执行当前系统调用,并进行系统调用返回,包括:若判定当前系统调用在系统的系统自身访问权限内,则执行当前系统调用;在当前系统调用完成后进行系统调用返回。

在本实施方式中,在获取了系统调用的所述会话信息后,首先判断当前系统调用是否在会话权限内,即通过会话权限检测系统调用是否处于该会话对应的角色的权限范围内,若通过检测则判断当前系统调用是否处于系统的系统自身访问权限内,即系统是否对该会话对应的角色开放了对应的权限,若也通过检查,则执行当前系统调用。

需要说明的是,若判定当前系统调用不在会话信息对应的会话权限内,则表示检查失败,直接进入系统调用返回。

综上所述,本发明所提供的权限控制方法和系统,对于应用程序的进程对系统调用引入了会话权限的检查来配合系统系统自身访问权限对于服务器中进行系统调用时的权限进行检查校验,以控制应用程序的权限,实现了当进程执行系统调用时不局限于进程用户和文件的属性而进行权限的控制,同时通过文件描述符来对各会话进行识别,方便获知对应的会话的会话权限,以方便进行权限的检查校验。

以上对本发明所提供的一种权限控制方法和系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1