权限控制方法、装置、计算机设备及存储介质与流程

专利2022-06-29  45


本申请涉及互联网技术领域,特别涉及权限控制方法、装置、计算机设备及存储介质。



背景技术:

在软件开发阶段,开发人员需要对项目进行持续集成(continuousintegration,ci),为保证编译环境的干净性和独立性,产生了容器技术,但在容器构建的过程中,通常会赋予用户root权限,然而容器内以root运行会对宿主机带来一定的安全隐患。

在相关技术中,为了解决上述问题,在容器内通过chmod为用户赋予某些文件的读写执行权限,或者使用rbash、bash以及lshell等权限工具对用户进行黑名单或者白名单的权限控制,从而限制用户在容器内的权限,保障宿主机的安全。

然而,上述相关技术的方案中所采用的权限控制方法,会在当确认用户为白名单用户时,关闭权限控制工具生成的权限限制,以执行用户输入的脚本,从而造成权限控制的不准确,安全性较低。



技术实现要素:

本申请实施例提供了一种权限控制方法、装置、计算机设备及存储介质,可以提高减少校验过程中对校验资源的浪费,并提高校验效率,该技术方案如下:

一方面,提供了一种权限控制方法,所述方法由计算机设备执行,所述计算机设备用于加载并执行容器,所述方法包括:

当所述容器初始化时,根据业务场景获取配置文件,所述配置文件管理在所述容器外,所述配置文件配置有在容器内与所述业务场景对应的权限控制规则;

在所述容器中生效所述配置文件;

接收用户指令;

当所述用户指令为可执行指令时,对所述用户指令的类型进行识别;

当所述用户指令的类型指示所述用户指令为脚本文件时,获取所述脚本文件的脚本内容,所述脚本内容中包含至少一条命令语句;

根据所述配置文件对所述至少一条命令语句进行合法性校验。

一方面,提供了一种权限控制装置,所述装置应用于计算机设备中,所述计算机设备用于加载并执行容器,所述装置包括:

第一获取模块,用于当所述容器初始化时,根据业务场景获取配置文件,所述配置文件管理在所述容器外,所述配置文件配置有在容器内与所述业务场景对应的权限控制规则;

生效模块,用于在所述容器中生效所述配置文件;

接收模块,用于接收用户指令;

识别模块,用于当所述用户指令为可执行指令时,对所述用户指令的类型进行识别;

第二获取模块,用于当所述用户指令的类型指示所述用户指令为脚本文件时,获取所述脚本文件的脚本内容,所述脚本内容中包含至少一条命令语句;

第一校验模块,用于根据所述配置文件对所述至少一条命令语句进行合法性校验。

可选的,所述装置还包括:

第一解析模块,用于在根据所述配置文件对所述至少一条命令语句进行合法性校验之前,对所述脚本内容进行语句解析,获取所述脚本内容中的所述至少一条命令语句的语句内容;

所述第一校验模块,用于根据对应的所述配置文件,按照所述命令语句的顺序对所述至少一条命令语句的语句内容依次进行合法性校验。

可选的,所述装置还包括:

第一执行模块,用于当所述语句内容中的第一语句内容合法时,执行所述第一语句内容对应的第一命令语句;

停止执行模块,用于当所述语句内容中的第二语句内容不合法时,停止执行所述命令语句,并退出所述根据对应的所述配置文件,按照所述命令语句的顺序对所述至少一条命令语句的语句内容依次进行合法性校验的步骤。

可选的,所述装置还包括:

第二执行模块,用于当所述至少一条命令语句的语句内容均合法时,执行所述脚本内容。

可选的,所述装置还包括:

第二解析模块,用于当所述用户指令为命令语句时,对所述命令语句进行解析,获取所述命令语句的语句内容;

第二校验模块,用于根据所述语句内容对应的所述配置文件的内容对所述命令语句的语句内容进行合法性校验;

第三执行模块,用于当所述语句内容合法时,执行所述命令语句。

可选的,所述配置文件配置的权限控制规则由ishell工具根据所述业务场景进行配置。

一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储由至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述权限控制方法。

一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述权限控制方法。

本申请提供的技术方案可以包括以下有益效果:

通过在容器初始化时,根据业务场景从容器外获取配置文件,并在容器中生效该配置文件;接收用户指令,当该用户指令为可执行指令时,对该用户指令的类型进行识别,当该用户指令的类型为脚本文件时,获取该脚本文件中包含的至少一条命令语句,根据配置文件对脚本文件中的至少一条命令语句进行合法性校验,使得在容器的使用过程中,根据业务场景在容器内的用户权限进行控制,并从粒度更小的方面对用户权限进行控制,从而在实现了权限的可调节性的同时提高了容器使用的安全性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1示出了本申请一个示例性的实施例提供的权限控制方法的流程图;

图2示出了本申请实施例涉及的基于镜像构建容器的示意图;

图3示出了本申请一个示例性的实施例提供的权限控制方法的流程图;

图4示出了本申请一个示例性的实施例提供的权限控制方法的流程图;

图5示出了本申请实施例涉及的用户指令合法性校验过程的示意图;

图6示出了本申请一示例性实施例提供的权限控制装置的方框图;

图7是根据一示例性实施例示出的计算机设备的结构框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

应当理解的是,在本文中提及的“若干个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

在软件开发阶段对项目的ci过程中,使用容器来保证编译环境的干净性和独立性,本申请提出的容器权限控制方法,可以在容器使用时针对不同的业务场景对用户权限进行不同的限制,实现了权限控制的可调性,同时提高容器使用的安全性,为了便于理解,下面对本申请涉及的几个名词进行解释。

1)容器技术(container)

容器技术,又称容器虚拟化技术,是一种能够有效的将单个操作系统的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求的技术。

容器是从镜像创建的运行实例,它可以被启动、开始、停止、删除,每个容器都是相互隔离的、保证安全的平台。容器可以管理对象的生命周期、对象与对象之间的依赖关系,可以使用一个配置文件,通常是可扩展标记语言(extensiblemarkuplanguage,xml),比如,可以在上面定义好对象的名称、如何产生(原型模式(prototypepattern)或单例模式(singletonpattern))、哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关系。

2)持续集成(continuousintegration,ci)

ci是指开发阶段,对项目进行持续性自动化编译、测试,以达到控制代码质量的手段。持续集成是一种软件开发实践。团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误,以使得产品可以快速迭代,同时保证产品质量。

3)镜像(mirroring)

镜像是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。可以把许多文件做成一个镜像文件,常见的镜像文件格式有iso(国际标准光盘文件系统格式)、bin、img、tao、dao、cif、fcd。以方便用户下载和使用;当系统被破环后,可以通过镜像文件来短时间还原系统;镜像文件可以直接刻录到光盘中。

4)root

root是指一种存在于unix系统、linux系统以及andriod中的超级用户,它用于操作系统的最高权限,可以在系统中进行任意操作,如进程管理、用户管理、硬件管理等。因为权限较高,使用root进行不当操作会使操作系统损坏,因此,在root下进行操作必须小心谨慎。

在相关技术中,传统的ci工具,如jenkins,无法保证编译环境的干净性和独立性,经常会引发由于环境不干净导致的构建包或者镜像不干净的问题,严重影响了产品的开发、测试以及发布的进度。

为此,提出了构建容器的方法,容器可以保证平台间的相互隔离,使得编译环境互不影响,但是有于容器的构建需要较高的权限,通常会对构建容器的用户赋予root权限,由于root权限太高,容易引起以下问题:

(1)对于含有用户名、密码的配置文件相关的操作造成影响。

比如,用户名和密码是指nexus、npm等公司内部工具的用户名和密码,其权限很高,如果容器以root运行,那么用户就能知道这些工具的用户名和密码,对公司的安全会造成影响。

(2)对于挂载目录相关的操作造成影响。

挂载目录是指共享目录,所有用户共享的,如果容器以root运行,那么用户就可以操作该共享文件,那么就无法保证其他用户的文件安全。

(3)容器内以root执行,可操作宿主机。

容器在宿主机上运行,一台宿主机上可以有多个容器,也可以理解成有多个服务,如果容器以root运行,那么用户就可以操作宿主机,比如可以将其他容器杀掉等等,从而造成严重的后果。

在相关技术中,在容器层面,一般通过限制登录用户权限以及隐藏root用户来控制容器内部的用户权限。

采用为不同系统用户,通过chomd工具,改变一个或多个文件的存取模式,为用户对于某些文件赋予执行权限或者通过rbash(restrictedbash)、bdsh(boadiminishshell)、lshell(limitedshell)等权限控制工具通过设置白名单和黑名单的方式对用户权限进行控制,但是,上述工具在被发现是可执行脚本(shell/python)的命令被执行时,上述所有技术会关闭在shell中生成的任何限制来执行脚本。

比如,脚本a为可执行脚本,脚本a中包含有4条命令,其中有一条命令原本在shell中生成的限制中时不允许被执行的,但是有与脚本a经过校验被判定为可执行脚本,那么将不会对脚本中所包含的命令进行校验,并关闭在shell中生成的限制,以执行脚本,从而使得原本不允许被执行的命令也被执行了,从而造成权限控制不准确,安全性较低的问题。

限制用户权限或者隐藏root用户,也会造成无法满足需要较高权限的业务场景。

本申请提供的权限控制方法,可以在容器使用时针对不同的业务场景对用户权限进行不同的限制,实现了权限控制的可调性,同时提高容器使用的安全性,请参考图1,其示出了本申请一个示例性的实施例提供的权限控制方法的流程图。该权限控制方法由计算机设备执行,该计算机设备用于加载并执行容器。如图1所示,该权限控制方法可以包括以下步骤:

步骤110,当容器初始化时,根据业务场景获取配置文件,该配置文件管理在容器外,该配置文件配置有在容器内与业务场景对应的权限控制规则。

可选的,该配置文件可以管理在分布式版本控制系统(git)上。

可选的,该容器可以是基于镜像构建的容器,请参考图2,其示出了本申请实施例涉及的基于镜像构建容器的示意图。如图2所示,镜像管理中可以储存有多个镜像,也可以根据业务场景需求的改变来更新镜像内容,当需要构建某种业务场景所需的容器时,计算机设备从镜像管理中获取该业务场景对应的镜像,基于该镜像在建立对应于该业务场景的容器。其中,基于同一个镜像可以构建多个容器,这多个容器之间相互独立,互不影响,开发人员可以在容器中配置不同的用户权限,使得该容器在受限的壳层环境中执行,以实现根据业务场景对容器中的用户权限进行灵活设置的目的。

对用户权限的设置可以通过调用管理在容器外的配置文件来实现,该配置文件中配置有与各个业务场景对应的权限控制规则,当需要对业务场景所对应的权限控制规则进行更改时,开发人员只需要对配置文件中的权限控制规则进行更改,而不需要重新进行容器构建。

可选的,该配置文件可以配置有包括但不限于路径、命令以及环境变量等的权限控制规则。

步骤120,在容器中生效配置文件。

容器将根据业务场景获取的对应配置文件中的权限控制规则写入该容器,以构建一个用户权限受限的shell环境,使得该容器能够对使用该容器的用户进行权限控制。

步骤130,接收用户指令。

可选的,该用户指令的类型可以是脚本文件,也可以是命令语句。

步骤140,当用户指令为可执行指令时,对用户指令的类型进行识别。

首先容器根据配置文件对该用户指令的可执行性进行判断,该配置文件中可以配置关于可执行指令和禁止执行指令的限制,根据该配置文件中的相关内容,对该用户指令是否可执行进行判断,当该用户指令为可执行指令时,对用户指令的类型进行识别。

在一种可能的情况下,配置文件中配置有可执行指令的后缀名,和禁止执行指令的后缀名,当该用户指令的后缀名为该配置文件中的可执行指令的后缀名时,则确定该用户指令为可执行指令,对用户指令的类型进行识别。

步骤150,当用户指令的类型指示用户指令为脚本文件时,获取脚本文件的脚本内容,该脚本内容中包含至少一条命令语句。

脚本是一种纯文本保存的程序,是含有bind和alias等命令集合,用户可以将这个集合存为一个独立的文件然后再执行,在执行时,是由系统的一个解释器,将脚本中的文件命令翻译成机器可识别的指令,并按程序执行。

在一种可能的情况下,容器可以通过对用户指令的后缀名的识别来确定该用户指令是否为脚本文件,当确定该用户指令为脚本文件时,容器对该脚本文件中包含的至少一条命令语句进行读取,从而获得该脚本文件中的脚本内容。

步骤160,根据配置文件对至少一条命令语句进行合法性校验。

该配置文件配置有脚本文件中包含的至少一条命令语句对应的权限控制规则,根据脚本中命令语句对应的权限控制规则对该命令语句进行合法性校验。比如,对于指示路径的命令语句,该容器判断该指示路径的命令语句中的参数是否在权限控制规则规定的参数中,当该指示路径的命令语句中的参数在权限控制规则规定的参数中时,确定该指示路径的命令语句合法,若该指示路径的命令语句中的参数不在权限控制规则规定的参数中,则确定该指示路径的命令语句不合法。

综上所述,本申请实施例提供中提供的权限控制方法,通过在容器初始化时,根据业务场景从容器外获取配置文件,并在容器中生效该配置文件;接收用户指令,当该用户指令为可执行指令时,对该用户指令的类型进行识别,当该用户指令的类型为脚本文件时,获取该脚本文件中包含的至少一条命令语句,根据配置文件对脚本文件中的至少一条命令语句进行合法性校验,使得在容器的使用过程中,根据业务场景在容器内的用户权限进行控制,并从粒度更小的方面对用户权限进行控制,从而在实现了权限的可调节性的同时提高了容器使用的安全性。

请参考图3,其示出了本申请一个示例性的实施例提供的权限控制方法的流程图。该权限控制方法由计算机设备执行,该计算机设备用于加载并执行容器。如图3所示,该权限控制方法可以包括以下步骤:

步骤310,当容器初始化时,根据业务场景获取配置文件,该配置文件管理在容器外,该配置文件配置有在容器内与业务场景对应的权限控制规则。

可选的,该配置文件配置的权限控制规则由ishell工具根据业务场景进行配置,不同的业务场景对应的对该配置文件的配置不同,配置好的针对各个业务场景的配置文件储存在容器外,以使得用户在需要对权限文件配置的控制权限进行调整时,可以直接在容器外对该配置文件进行更改,提高了权限控制的灵活性。

步骤320,在容器中生效配置文件。

步骤330,接收用户指令。

步骤340,当用户指令为可执行指令时,对用户指令的类型进行识别。

步骤350,当用户指令的类型指示用户指令为脚本文件时,获取脚本文件的脚本内容,该脚本内容中包含至少一条命令语句。

步骤310至步骤350的执行方式可以参考图1所示实施例相关内容的描述,此处不再赘述。

步骤360,对脚本内容进行语句解析,获取脚本内容中的至少一条命令语句的语句内容。

步骤370,根据对应的配置文件,按照命令语句的顺序对至少一条命令语句的语句内容依次进行合法性校验。

可选的,当语句内容中的第一语句内容合法时,执行第一语句内容对应的第一命令语句;

当语句内容中的第二语句内容不合法时,停止执行命令语句,并退出根据对应的配置文件,按照命令语句的顺序对至少一条命令语句的语句内容依次进行合法性校验的步骤。

在一种可能的情况下,容器对脚本文件中的命令语句的校验是按照该命令语句在脚本文件中的排列顺序依次进行的,且当该命令语句的校验结果指示该命令语句合法时,则执行该命令语句所指示的操作内容,并对下一条命令语句进行合法性校验。比如,当命令语句a指示查看当前目录,当命令语句a经过其所对应的权限控制规则的校验后,判断该命令语句a合法时,容器执行查看当前命令的操作;当该命令语句的校验结果指示该命令语句不合法时,停止对该命令语句的校验,并退出对该命令语句所属脚本文件中的包含的未校验的其他命令语句的校验,也就是说,在按照命令语句的排列顺序对脚本文件包含的命令语句精心合法性校验过程中,有一条命令语句合法,则执行该命令语句,当其中有一条命令语句不合法时,其他未经校验过的命令语句的合法性不做校验,直接退出对该脚本文件的校验,并确定该脚本文件中包含不合法的命令语句。

可选的,当容器的校验结果指示脚本文件中包含不合法的命令语句时,将该校验结果反馈给用户。

或者,可选的,当至少一条命令语句的语句内容均合法时,执行脚本内容。

在一种可能的情况下,容器对脚本文件中的命令语句的校验是按照该命令语句在脚本文件中的排列顺序依次进行的,只有当该脚本文件中所包含的命令语句均合法时,才会对脚本文件中的命令语句进行执行操作,也就是按顺序对命令语句的合法性进行校验,当确定一条命令语句合法时,进行对下一条命令语句的合法性校验,直到该脚本文件中所有的命令语句均合法,在上述过程中,一旦有一条命令语句不合法,则退出对该脚本文件中的命令语句的合法性校验。

当该用户指令的类型指示该用户指令为命令语句时,可选的,对该命令语句进行解析,获取该命令语句的语句内容。

也就是说用户指令以命令语句的形式发送给容器,该命令语句可以是一条或者多条,该命令语句中携带有在所示容器内进行操作的指示信息。

根据该命令语句的语句内容对应的配置文件的内容对该命令语句的语句内容进行合法性校验,也就是,根据容器中与该命令语句对应的权限控制规则对该命令的语句内容进行合法性校验。

当校验结果指示该语句内容合法时,执行该命令语句。

综上所述,本申请实施例提供中提供的权限控制方法,通过在容器初始化时,根据业务场景从容器外获取配置文件,并在容器中生效该配置文件;接收用户指令,当该用户指令为可执行指令时,对该用户指令的类型进行识别,当该用户指令的类型为脚本文件时,获取该脚本文件中包含的至少一条命令语句,根据配置文件对脚本文件中的至少一条命令语句进行合法性校验,使得在容器的使用过程中,根据业务场景在容器内的用户权限进行控制,并从粒度更小的方面对用户权限进行控制,从而在实现了权限的可调节性的同时提高了容器使用的安全性。

下面将结合用户指令为可执行的脚本文件对本申请进行说明,请参考图4,其示出了本申请一个示例性的实施例提供的权限控制方法的流程图。该权限控制方法由计算机设备执行,该计算机设备用于加载并执行容器。如图3所示,该权限控制方法可以包括以下步骤:

步骤410,容器初始化,根据当前业务场景从配置管理中获取配置文件。

步骤420,在容器中生效该配置文件,使得用户在该容器环境中受到权限限制。

步骤430,校验用户指令是否合法,若是,则执行步骤440,否则,执行步骤450。

步骤440,执行用户指令。

步骤450,停止执行用户指令并退出合法性校验。

步骤430至步骤450的过程,请参考图5,其示出了本申请实施例涉及的用户指令合法性校验过程的示意图。如图5所示,上述过程包括:

s501,容器接收用户指令。

s502,判断该用户指令是否可执行,若是,则执行s503,否则,执行s504。

s503,判断该用户指令是否为脚本文件,若是,则执行s505,否则,执行s506。

在本实施例中,用户指令不是脚本则认为该用户指令为命令语句。

s504,停止执行用户指令并退出合法性校验。

s505,获取脚本文件中的脚本内容,该脚本内容中包含至少一条命令语句。

s506,语句解析,对命令语句进行语句解析。

解析结果如图5所示,以该脚本文件中包含三条命令语句为例,这三条命令语句分别指示路径、命令和环境变量。

s507,对命令语句进行校验,当该命令语句通过校验时,执行该命令语句,当该命令语句未通过校验时,执行s504。

对于不同的命令语句的指示信息分别对应有不同的校验方式。

对于指示路径的命令语句,可以对该命令语句中的参数是否在权限控制规则规定的参数中,当该指示路径的命令语句中的参数在权限控制规则规定的参数中时,确定该指示路径的命令语句通过校验,执行该命令语句,若该指示路径的命令语句中的参数不在权限控制规则规定的参数中,则确定该指示路径的命令语句不合法,则停止执行该用户指令并退出合法性校验。

对于指示命令的命令语句,可以首先对该命令语句是否为别名进行判断,例如对于cd这个命令,用户输入的命令语句中用open来表示,则open为cd这个命令的别名。当判断该命令语句中有别名时,则对该命令进行解析,获得该命令,其次,对该命令是否在权限限制的禁止执行的命令中,若在,则停止对该命令语句的校验并退出,若不在,则对该命令是否在权限限制的允许执行的命令中进行判断,其中,允许执行的命令中可以包括允许执行在权限限制范围中的命令,也可以包括禁止执行在权限限制范围之外的命令,比如,该权限限制在该容器中可以执行命令abc,那么允许执行的命令可以是允许执行命令abc,也可以是禁止不执行abc;若该命令在允许执行的命令中,则执行该命令,否则停止执行用户指令并退出合法性校验。

对于指示环境变量的命令语句,则判断该命令语句指示的环境变量是否在容器权限限制的环境变量中,当该命令语句指示的环境变量在容器权限限制的环境变量中,则执行该命令语句,否则停止执行用户指令并退出合法性校验。

在一种可能的情况下,图5所示的用户指令合法性的校验过程同样适用于当该用户指令为命令语句的情况,当用户指令为命令语句是,无需进行步骤s505的步骤,可以直接对该语句命令进行语句解析,从而识别该命令语句的指示内容,从而利用与该命令语句的指示内容相对应的权限来对该命令语句的合法性进行校验,若该命令语句合法,则执行该命令语句,否则停止执行用户指令并退出合法性校验。

综上所述,本申请实施例提供中提供的权限控制方法,通过在容器初始化时,根据业务场景从容器外获取配置文件,并在容器中生效该配置文件;接收用户指令,当该用户指令为可执行指令时,对该用户指令的类型进行识别,当该用户指令的类型为脚本文件时,获取该脚本文件中包含的至少一条命令语句,根据配置文件对脚本文件中的至少一条命令语句进行合法性校验,使得在容器的使用过程中,根据业务场景在容器内的用户权限进行控制,并从粒度更小的方面对用户权限进行控制,从而在实现了权限的可调节性的同时提高了容器使用的安全性。

请参考图6,其示出了本申请一示例性实施例提供的权限控制装置的方框图。该装置可以通过软件的形式实现为计算机设备的全部或者部分,以执行图1、图3、图4或图5对应实施例所示的方法的全部或部分步骤。如图6所示,该权限控制装置可以包括:

第一获取模块610,用于当容器初始化时,根据业务场景获取配置文件,配置文件管理在容器外,该配置文件配置有在容器内与业务场景对应的权限控制规则;

生效模块620,用于在容器中生效配置文件;

接收模块630,用于接收用户指令;

识别模块640,用于当用户指令为可执行指令时,对用户指令的类型进行识别;

第二获取模块650,用于当用户指令的类型指示用户指令为脚本文件时,获取脚本文件的脚本内容,该脚本内容中包含至少一条命令语句;

第一校验模块660,用于根据配置文件对至少一条命令语句进行合法性校验。

可选的,该装置还包括:

第一解析模块,用于在根据配置文件对至少一条命令语句进行合法性校验之前,对脚本内容进行语句解析,获取脚本内容中的至少一条命令语句的语句内容;

该第一校验模块,用于根据对应的配置文件,按照命令语句的顺序对至少一条命令语句的语句内容依次进行合法性校验。

可选的,该装置还包括:

第一执行模块,用于当语句内容中的第一语句内容合法时,执行第一语句内容对应的第一命令语句;

停止执行模块,用于当语句内容中的第二语句内容不合法时,停止执行命令语句,并退出根据对应的配置文件,按照命令语句的顺序对至少一条命令语句的语句内容依次进行合法性校验的步骤。

可选的,该装置还包括:

第二执行模块,用于当至少一条命令语句的语句内容均合法时,执行脚本内容。

可选的,该装置还包括:

第二解析模块,用于当用户指令为命令语句时,对命令语句进行解析,获取命令语句的语句内容;

第二校验模块,用于根据语句内容对应的配置文件的内容对命令语句的语句内容进行合法性校验;

第三执行模块,用于当语句内容合法时,执行命令语句。

可选的,配置文件配置的权限控制规则由ishell工具根据业务场景进行配置。

综上所述,本申请实施例提供中提供的权限控制装置,当应用在计算机设备中时,通过在容器初始化时,根据业务场景从容器外获取配置文件,并在容器中生效该配置文件;接收用户指令,当该用户指令为可执行指令时,对该用户指令的类型进行识别,当该用户指令的类型为脚本文件时,获取该脚本文件中包含的至少一条命令语句,根据配置文件对脚本文件中的至少一条命令语句进行合法性校验,使得在容器的使用过程中,根据业务场景在容器内的用户权限进行控制,并从粒度更小的方面对用户权限进行控制,从而在实现了权限的可调节性的同时提高了容器使用的安全性。

图7是根据一示例性实施例示出的计算机设备700的结构框图。该计算机用于加载并执行容器。所述计算机设备700包括中央处理单元(centralprocessingunit,cpu)701、包括随机存取存储器(randomaccessmemory,ram)702和只读存储器(read-onlymemory,rom)703的系统存储器704,以及连接系统存储器704和中央处理单元701的系统总线705。所述计算机设备700还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(input/output系统,i/o系统)706,和用于存储操作系统713、应用程序714和其他程序模块715的大容量存储设备707。

所述基本输入/输出系统706包括有用于显示信息的显示器708和用于用户输入信息的诸如鼠标、键盘之类的输入设备709。其中所述显示器708和输入设备709都通过连接到系统总线705的输入输出控制器710连接到中央处理单元701。所述基本输入/输出系统706还可以包括输入输出控制器710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器710还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备707通过连接到系统总线705的大容量存储控制器(未示出)连接到中央处理单元701。所述大容量存储设备707及其相关联的计算机可读介质为计算机设备700提供非易失性存储。也就是说,所述大容量存储设备707可以包括诸如硬盘或者只读光盘(compactdiscread-onlymemory,cd-rom)驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、可擦除可编程只读寄存器(erasableprogrammablereadonlymemory,eprom)、电子抹除式可复写只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、闪存或其他固态存储其技术,cd-rom、数字多功能光盘(digitalversatiledisc,dvd)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存储器。

根据本申请的各种实施例,所述计算机设备700还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备700可以通过连接在所述系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网络接口单元711来连接到其他类型的网络或远程计算机系统(未示出)。

所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器701通过执行该一个或一个以上程序来实现图1、图3、图4或图5所示的方法的全部或者部分步骤。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

本申请实施例还提供了一种计算机可读存储介质,用于存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述权限控制方法。例如,该计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。


技术特征:

1.一种权限控制方法,其特征在于,所述方法由计算机设备执行,所述计算机设备用于加载并执行容器,所述方法包括:

当所述容器初始化时,根据业务场景获取配置文件,所述配置文件管理在所述容器外,所述配置文件配置有在容器内与所述业务场景对应的权限控制规则;

在所述容器中生效所述配置文件;

接收用户指令;

当所述用户指令为可执行指令时,对所述用户指令的类型进行识别;

当所述用户指令的类型指示所述用户指令为脚本文件时,获取所述脚本文件的脚本内容,所述脚本内容中包含至少一条命令语句;

根据所述配置文件对所述至少一条命令语句进行合法性校验。

2.根据权利要求1所述的方法,其特征在于,所述根据所述配置文件对所述至少一条命令进行合法性校验之前,还包括:

对所述脚本内容进行语句解析,获取所述脚本内容中的所述至少一条命令语句的语句内容;

所述根据所述配置文件对所述至少一条命令语句进行合法性校验,包括:

根据对应的所述配置文件,按照所述命令语句的顺序对所述至少一条命令语句的语句内容依次进行合法性校验。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

当所述语句内容中的第一语句内容合法时,执行所述第一语句内容对应的第一命令语句;

当所述语句内容中的第二语句内容不合法时,停止执行所述命令语句,并退出所述根据对应的所述配置文件,按照所述命令语句的顺序对所述至少一条命令语句的语句内容依次进行合法性校验的步骤。

4.根据权利要求2所述的方法,其特征在于,所述方法还包括:

当所述至少一条命令语句的语句内容均合法时,执行所述脚本内容。

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

当所述用户指令为命令语句时,对所述命令语句进行解析,获取所述命令语句的语句内容;

根据所述语句内容对应的所述配置文件的内容对所述命令语句的语句内容进行合法性校验;

当所述语句内容合法时,执行所述命令语句。

6.根据权利要求1所述的方法,其特征在于,所述配置文件配置的权限控制规则由ishell工具根据所述业务场景进行配置。

7.一种权限控制装置,其特征在于,所述装置应用于计算机设备中,所述计算机设备用于加载并执行容器,所述装置包括:

第一获取模块,用于当所述容器初始化时,根据业务场景获取配置文件,所述配置文件管理在所述容器外,所述配置文件配置有在容器内与所述业务场景对应的权限控制规则;

生效模块,用于在所述容器中生效所述配置文件;

接收模块,用于接收用户指令;

识别模块,用于当所述用户指令为可执行指令时,对所述用户指令的类型进行识别;

第二获取模块,用于当所述用户指令的类型指示所述用户指令为脚本文件时,获取所述脚本文件的脚本内容,所述脚本内容中包含至少一条命令语句;

第一校验模块,用于根据所述配置文件对所述至少一条命令语句进行合法性校验。

8.根据权利要求7所述的装置,其特征在于,所述装置还包括:

第一解析模块,用于在根据所述配置文件对所述至少一条命令语句进行合法性校验之前,对所述脚本内容进行语句解析,获取所述脚本内容中的所述至少一条命令语句的语句内容;

所述第一校验模块,用于根据对应的所述配置文件,按照所述命令语句的顺序对所述至少一条命令语句的语句内容依次进行合法性校验。

9.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储由至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至6任一所述的权限控制方法。

10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至6任一所述的权限控制方法。

技术总结
本申请关于一种权限控制方法、装置、计算机设备及存储介质,涉及互联网技术领域。该方法包括:当容器初始化时,根据业务场景获取配置文件,该配置文件管理在容器外;在容器中生效配置文件;接收用户指令;当用户指令为可执行指令时,对用户指令的类型进行识别;当用户指令的类型指示用户指令为脚本文件时,获取脚本文件的脚本内容,该脚本内容中包含至少一条命令语句;根据配置文件对至少一条命令语句进行合法性校验。通过上述方法,使得在容器的使用过程中,根据业务场景在容器内的用户权限进行控制,并从粒度更小的方面对用户权限进行控制,从而在实现了权限的可调节性的同时提高了容器使用的安全性。

技术研发人员:谢云
受保护的技术使用者:远景智能国际私人投资有限公司;上海远景科创智能科技有限公司
技术研发日:2020.01.09
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-21911.html

最新回复(0)