一种基于文件描述符和会话的权限控制方法和系统与流程

文档序号:11583416阅读:230来源:国知局
一种基于文件描述符和会话的权限控制方法和系统与流程

本发明涉及访问权限管理技术领域,特别是涉及一种基于文件描述符和会话的权限控制方法和系统。



背景技术:

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

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

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



技术实现要素:

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

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

一种基于文件描述符和会话的权限控制方法,包括:

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

在应用程序的进程进行系统调用时,根据相应的连接文件描述符对所述系统调用按会话进行识别;

根据各所述会话对应的会话权限控制当前系统调用。

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

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

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

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

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

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

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

执行当前系统调用;

判断当前系统调用是否产生了异于所述预设的连接文件描述符的新连接文件描述符;

若是,则将该新连接文件描述符映射到当前会话。

优选地,所述根据各所述会话对应的会话权限控制当前系统调用,包括:

根据当前会话对应的连接文件描述符识别出当前会话的会话信息;

根据当前会话的会话信息获取该当前会话对应的会话权限;

根据该当前会话的会话权限控制系统调用的运行。

一种基于文件描述符和会话的权限控制系统,包括:

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

系统调用识别模块,用于在应用程序的进程进行系统调用时,根据相应的连接文件描述符对所述系统调用按会话进行识别;

控制模块,用于根据各所述会话对应的会话权限控制当前系统调用。

优选地,所述预处理模块包括:

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

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

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

优选地,所述系统调用识别模块,包括:

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

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

执行单元,用于执行当前系统调用;

第二判断单元,用于判断当前系统调用是否产生了异于所述预设的连接文件描述符的新连接文件描述符;

第二映射单元,则将该新连接文件描述符映射到当前会话。

优选地,所述控制模块包括:

识别单元,用于根据当前会话对应的连接文件描述符识别出当前会话的会话信息;

会话权限获取单元,用于根据当前会话的会话信息获取该当前会话对应的会话权限;

控制单元,用于根据该当前会话的会话权限控制系统调用的运行。

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

本发明实施例所提供的一种基于文件描述符和会话的权限控制方法,包括:预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符和会话,并通过该连接文件描述符对该会话进行标记;在应用程序的进程进行系统调用时,根据相应的连接文件描述符对系统调用按会话进行识别;根据各会话对应的会话权限控制当前系统调用。在服务进程接收到新连接后,即接收到新的任务时,创建与该新连接关联的连接文件描述符和会话,并通过该连接文件描述符标记该会话,这样,就可以对系统调用按会话进行识别,根据系统调用所涉及的连接文件描述符调整当前会话,根据当前会话的会话权限控制当前系统调用,可以实现当进程执行系统调用时不局限于进程用户和文件的属性而进行权限的控制,同时能够方便对会话进行识别。

附图说明

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

图1为本发明一种具体实施方式所提供的基于文件描述符和会话的权限控制方法流程图;

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

图3为本发明一种具体实施方式所提供的基于文件描述符和会话的权限控制系统结构示意图。

具体实施方式

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

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

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

请参考图1,图1为本发明一种具体实施方式所提供的基于文件描述符和会话的权限控制方法流程图。

本发明的一种具体实施方式提供了一种基于文件描述符和会话的权限控制方法,包括:

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

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

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

s12:在应用程序的进程进行系统调用时,根据相应的连接文件描述符对系统调用按会话进行识别。

在应用程序的进程进行系统调用时,根据相应的连接文件描述符对系统调用按会话进行识别,包括:在应用程序的进程进行系统调用时,判断当前系统调用是否包含预设的连接文件描述符;若是,则更新当前会话为该预设的连接文件描述符所映射的会话;执行当前系统调用;判断当前系统调用是否产生了异于预设的连接文件描述符的新连接文件描述符;若是,则将该新连接文件描述符映射到当前会话。

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

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

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

s22:若是,则更新当前会话为描述符参数fd映射的会话。

s23:执行当前系统调用。

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

s25:若是,则将该新产生的文件描述符fd-new映射到当前会话。

之后,该系统调用结束。

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

s13:根据各会话对应的会话权限控制当前系统调用。

根据各会话对应的会话权限控制当前系统调用,包括:根据当前会话对应的连接文件描述符识别出当前会话的会话信息;根据当前会话的会话信息获取该当前会话对应的会话权限;根据该当前会话的会话权限控制系统调用的运行。

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

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

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

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

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

请参考图3,图3为本发明一种具体实施方式所提供的基于文件描述符和会话的权限控制系统结构示意图。

相应地,本发明一种实施方式还提供了一种基于文件描述符和会话的权限控制系统,包括:预处理模块31,用于预先在接收系统调用的新连接信息时,建立与该新连接信息关联的连接文件描述符和会话,并通过该连接文件描述符对该会话进行标记;系统调用识别模块32,用于在应用程序的进程进行系统调用时,根据相应的连接文件描述符对系统调用按会话进行识别;控制模块33,用于根据各会话对应的会话权限控制当前系统调用。

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

系统调用识别模块,包括:第一判断单元,用于在应用程序的进程进行系统调用时,判断当前系统调用是否包含预设的连接文件描述符;会话更新单元,用于在判定当前系统调用包含预设的连接文件描述符时,更新当前会话为该预设的连接文件描述符所映射的会话;执行单元,用于执行当前系统调用;第二判断单元,用于判断当前系统调用是否产生了异于预设的连接文件描述符的新连接文件描述符;第二映射单元,则将该新连接文件描述符映射到当前会话。

控制模块包括:识别单元,用于根据当前会话对应的连接文件描述符识别出当前会话的会话信息;会话权限获取单元,用于根据当前会话的会话信息获取该当前会话对应的会话权限;控制单元,用于根据该当前会话的会话权限控制系统调用的运行。

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

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

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

综上所述,本发明所提供的基于文件描述符和会话的权限控制方法和系统,在服务进程接收到新连接后,即接收到新的任务时,创建与该新连接关联的连接文件描述符和会话,并通过该连接文件描述符标记该会话,这样,就可以对系统调用按会话进行识别,根据系统调用所涉及的连接文件描述符调整当前会话,以进行会话识别,根据识别的当前会话的会话权限控制当前系统调用。会话权限即表示了该会话对应的角色的访问权限,从而在判断系统调用是否符合权限时,无需再去判断系统调用的文件属性和进行运行的所属用户的属性,极大地简化了权限的判断过程。对于应用程序的进程对系统调用引入了会话权限的检查来对于服务器中进行系统调用时的权限进行检查校验,以控制应用程序的权限,实现了当进程执行系统调用时不局限于进程用户和文件的属性而进行权限的控制。

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

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