一种基于权限控制的软件包管理方法及系统

文档序号:31225626发布日期:2022-08-23 19:15阅读:89来源:国知局
一种基于权限控制的软件包管理方法及系统

1.本发明涉及计算机操作系统中的软件包分发管理技术,具体涉及一种基于权限控制的软件包管理方法及系统。


背景技术:

2.在linux操作系统中,当前各类应用软件通常以软件包的形式提供给使用者,将应用程序、配置文件以及管理数据等统一组织起来,具有较强的易用性和可扩展性。常用的软件包主要有rpm和deb两类,其中rpm软件包是redhat linux提供的一种包封装格式,deb软件包是debian和ubuntu等操作系统提供的一种包安装格式。在debian和ubuntu操作系统中,通过apt/软件包管理工具dpkg实现对deb格式软件包的管理,包括软件包的管理操作、更新与删除等,dpkg软件包管理工具安装软件包时通过读取软件包内容进行安装并记录控制文件中的信息,apt软件包管理工具能够主动从软件仓库中获取软件包信息列表并在本地构建软件包描述和依赖关系数据库,并根据软件包信息从软件仓库中下载相应的软件包进行安装。
3.现有linux操作系统中的软件包处理场景如图1所示,通常针对不同类型的用户/单位构建不同的软件仓库(软件仓库a~软件仓库n),每类用户/单位(用户组1~用户组m)的系统使用者可通过apt/dpkg软件包工具下载相应软件仓库中的软件包,实现软件包的管理操作、更新和卸载等。以ubuntu操作系统为例,软件包管理机制中通过软件源仓库签名实现软件的分发控制,操作系统厂商对软件源仓库进行签名,并将软件源仓库对应的公钥集成在其发行版中,用户通过软件仓库源下载软件时,先用系统中自带的公钥证书对软件源的签名信息进行验证,确认为可靠软件源之后,即可进行下载安装软件,否则不可下载安装。
4.随着国内信息系统建设地不断推进,国产操作系统不断的使用规模逐渐扩大,用户对软件包的管理有了更高的要求,希望拥有更可靠、更严格、更实用的管理操作管理及控制技术。如软件包能够按照单位组织机构或人员类型进行分类,赋予不同组织机构用户不同的权限,并对软件包进行标识,从而实现基于权限控制的软件包管理方法,如软件包根据不同权限实现安装、更新和卸载。典型的应用场景如下:对于不同的软件包p、q和r,不同的用户可能具备不同的访问权限。对于用户u1来说,具备使用软件包p和q的权限,对于用户u2来说,具备使用软件q和r的权限,对于用户u3来说,没有权限使用软件包p、q和r。因此,现有的软件包管理机制存在如下问题:软件包无法根据用户类型实现基于权限控制的管理,在面向不同组织和用户时,需要搭建不同的软件仓库源来满足不同用户的使用要求,这在一定程度上加大了操作系统厂商对软件源仓库维护管理的工作量,尤其是在用户类型很多的情况下,该问题就会被放大,对于软件包的维护管理的影响非常大。
5.现有的linux操作系统的软件包安装管理过程中,主要通过apt和dpkg两种工具实现软件包的安装。软件包管理工具apt在软件包管理工具dpkg的基础上,能够自动检测并解决软件包安装过程中的依赖问题,处理软件包的过程仍然是通过软件包管理工具dpkg来实
现,软件包管理工具dpkg在软件安装过程中会根据软件包的结构进行针对性的处理。传统主流软件包默认提供安装文件、安装配置信息以及软件包依赖信息等用于软件管理的通用信息,并依托配套的管理工具进行管理维护。以ubuntu系统中的deb软件包为例,其格式如图2所示。deb包通常由三部分组成:数据包(data.tar.xz),包含实际安装的程序数据;安装信息及控制脚本包(control.tar.xz),包含deb软件包的安装说明、标示和脚本等;二进制数据包(debian-binary),包括头文件等信息。data.tar.xz在安装过程中,该包里的数据会被直接解压到指定的文件/目录树中,control.tar.xz则包含了一个deb软件包安装时所需的控制信息,通常包括control、preinst、postinst、prerm和postrm等文件,control用来记录软件标识,如版版号、平台、依赖信息等数据,preinst是解压数据包data.tar.xz前运行的脚本,postinst是解压数据包data.tar.xz后运行的脚本,prerm是卸载软件包过程中删除文件之前运行的脚本,postrm是卸载软件包过程中删除文件后运行的脚本。
6.如图3所示,现有软件包管理工具dpkg安装软件包的具体的处理步骤如下:
7.(1)软件包管理工具dpkg解压deb软件包中的control.tar.xz文件;
8.(2)软件包管理工具dpkg通过调用parsedb函数解析控制文件control。
9.控制文件control的具体解析流程如下:s1)通过dpkg代码中的parsedb函数读取控制文件control,再通过parse_stanza函数解析控制文件control;s2)parse_stanza函数解析控制文件control的各个字段,并记录各个字段的属性字段field及对应的属性值value的开始位置和长度,并调用parsedb_parse函数处理各个field,以apt的control为例,field是指package、priority和section等;s3)parsedb_parse_field函数对比各个field的名字或别名,调用对应的读函数(如f_depenency函数)解析对应的value,将解析结果记为m1{(field1,value1),(field2,value2),

}。
10.(3)软件包管理工具dpkg执行preinst脚本;
11.(4)dpkg解压deb软件包中的data.tar.xz文件到对应的目录;
12.(5)执行postinst脚本完成软件的相关配置;
13.(6)软件包安装过程结束。
14.如上所述,可知软件包管理工具dpkg在安装软件包的过程中,控制文件control中并不包含权限控制相关信息,从而导致现有的软件包管理工具dpkg不适用于特定的用户场景。比如,软件包的开发者对于特定的用户user1定制了一个版本v1,而版本v1只适用于该用户user1,因此希望版本v1只能够被用户user1安装,而其他用户不能够安装该版本。显然,现有的软件包管理流程无法适用于该场景。


技术实现要素:

15.本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于权限控制的软件包管理方法及系统,本发明基于软件包中嵌入的权限控制信息结合主机的权限控制信息进行比较来控制软件包在当前主机中的管理操作、更新和卸载,可实现基于权限控制的软件包管理,能够降低软件仓库的构建和维护成本、提升软件包的处理效率,可实现对软件包的来源追踪,提升了软件包全生命周期过程中的管理效率,为软件包的统一安装管理提供支撑,具有管理简单、应用方便、易于实施的优点。
16.为了解决上述技术问题,本发明采用的技术方案为:
17.一种基于权限控制的软件包管理方法,包括:
18.1)从目标软件包中提取出权限控制信息;
19.2)对比从目标软件包中提取出权限控制信息、当前主机的权限控制信息,且仅当两份权限控制信息匹配时允许并执行目标软件包在当前主机中的管理操作,所述管理操作是指软件安装、软件更新或软件卸载。
20.可选地,所述权限控制信息包括至少一条权限控制记录,所述权限控制记录为属性字段及对应的属性值构成的权限键值对。
21.可选地,所述权限控制信息的属性字段包括用户名、部门信息、安全级别、版本号、分类信息、用途信息、项目信息、管理操作类型中的部分或者全部。
22.可选地,步骤1)中目标软件包是指目标deb软件包,所述权限控制信息嵌入在目标deb软件包的控制信息及脚本包control.tar.xz中的控制文件control的属性扩展增强信息customextensions中;步骤1)包括:
23.1.1)解压目标deb软件包的控制信息及脚本包control.tar.xz以获取控制文件control;
24.1.2)读取控制文件control,并解析控制文件control中的各个属性字段,提取各个属性字段及对应的属性值的开始位置和长度,根据提取得到的各个属性字段的开始位置和长度得到属性字段的名字或别名,根据属性字段的名字或别名调用指定的读函数解析各个属性字段对应的属性值,最终得到包含目标deb软件包的软件包信息以及属性扩展增强信息customextensions中权限控制信息的解释结果集合m1。
25.可选地,步骤2)包括:
26.2.1)获取当前主机的权限控制信息,并将其中记录得到属性字段及对应的属性值构成的权限键值对存储到指定的变量auth_map中;
27.2.2)判断解释结果集合m1中包含的属性扩展增强信息customextensions中的每一个属性字段及其对应的属性值与变量auth_map中的属性字段及其对应的属性值是否全部匹配,若全部匹配,则允许并执行目标deb软件包在当前主机中的管理操作,否则判定目标deb软件包在当前主机中无管理操作权限,结束并退出deb软件包的管理操作。
28.可选地,步骤1.1)中解压deb软件包的管理操作信息及控制脚本包control.tar.xz时,还包括获取预运行脚本文件preinst和后运行脚本文件postint,步骤2.2)包括:
29.2.2.1)从解释结果集合m1中包含的属性扩展增强信息customextensions中遍历选择一个属性字段作为当前属性字段,若遍历选择完毕,则跳转步骤2.2.3);否则跳转下一步;
30.2.2.2)判断当前属性字段在变量auth_map中是否存在对应的属性字段,若不存在属性字段,则判定两份权限控制信息不匹配,目标deb软件包在当前主机中无管理操作权限,结束并退出deb软件包的管理操作;若存在属性字段,则判断当前属性字段、变量auth_map中对应的属性字段的是否匹配,如果匹配则跳转步骤2.2.1),如果不匹配则判定目标deb软件包在当前主机中无管理操作权限,结束并退出deb软件包的管理操作;
31.2.2.3)允许并执行目标deb软件包在当前主机中的管理操作:若管理操作为安装操作或更新操作,则首先运行目标deb软件包的控制信息及脚本包control.tar.xz中的预
运行脚本文件preinst,然后将目标deb软件包的程序数据文件data.tar.xz复制到指定的目录,最后运行目标deb软件包的控制信息及脚本包control.tar.xz中的后运行脚本文件postint完成安装操作或更新操作;若管理操作为卸载操作,则直接卸载目标deb软件包。
32.可选地,步骤2.2.2)中判断该属性字段、变量auth_map中对应的属性字段的是否匹配时,如果该属性字段、变量auth_map中对应的属性字段相等或满足预设的约束关系或映射关系,则判定该属性字段、变量auth_map中对应的属性字段两者匹配,否则判定该属性字段、变量auth_map中对应的属性字段两者不匹配。
33.可选地,步骤1)之前还包括通过预设的软件包管理工具apt接收到来自用户发送的软件包管理操作请求,所述软件包管理工具apt在收到用户发送的软件包管理操作请求后,若管理操作为安装或更新,则首先向指定的软件仓库源服务器获取所需的软件包及其依赖软件包,然后调用软件包管理工具dpkg执行步骤1)和步骤2)对所需的软件包及其依赖软件包执行受权限控制信息控制的安装或更新操作;若管理操作为卸载,则直接调用软件包管理工具dpkg执行步骤1)和步骤2)对软件包执行受权限控制信息控制的卸载操作。
34.此外,本发明还提供一种基于权限控制的软件包管理系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述基于权限控制的软件包管理方法的步骤。
35.此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,该计算机程序用于被微处理器执行以实施所述基于权限控制的软件包管理方法的步骤。
36.和现有技术相比,本发明方法包括从目标软件包中提取出权限控制信息;对比从目标软件包中提取出权限控制信息、当前主机的权限控制信息,且仅当两份权限控制信息匹配时允许并执行目标软件包在当前主机中的管理操作,管理操作是指软件安装、软件更新或软件卸载,本发明主要具有下述优点:
37.1、本发明可通过一个软件仓库满足不同用户的个性化使用需求,代替之前为每一类用户搭建单独软件仓库的方式,降低了软件仓库的构建和维护成本。
38.2、本发明通过在软件包中增加权限控制信息,区分不同用户对软件包的使用需求,基于统一的软件包管理平台实现对各类软件包的统一处理,提升了软件包的处理效率。
39.3、本发明通过在软件包中增加权限控制信息,可实现对软件包的来源追踪,提升了软件包全生命周期过程中的管理效率。
40.总而言之,本发明基于软件包中嵌入的权限控制信息结合主机的权限控制信息进行比较来控制软件包在当前主机中的管理操作、更新和卸载,可实现基于权限控制的软件包管理,为软件包的统一安装管理提供支撑,具有管理简单、应用方便、易于实施的优点。
附图说明
41.图1为现有基于软件仓库的软件安装原理示意图。
42.图2为现有deb软件包格式示意图;
43.图3为现有软件包管理工具dpkg安装软件流程示意图;
44.图4为本发明实施例方法的基本原理示意图。
45.图5为本发明实施例中软件包格式以及软件包管理工具的改进示意图。
46.图6为本发明实施例中软件包管理工具的交互流程示意图。
47.图7为本发明实施例中执行管理操作(安装)的流程图。
具体实施方式
48.如图4所示,本实施例基于权限控制的软件包管理方法包括:
49.1)从目标软件包中提取出权限控制信息;
50.2)对比从目标软件包中提取出权限控制信息、当前主机的权限控制信息,且仅当两份权限控制信息匹配时允许并执行目标软件包在当前主机中的管理操作,所述管理操作是指软件安装、软件更新或软件卸载。
51.本实施例中,权限控制信息可包括多条权限控制记录,权限控制记录为属性字段及对应的属性值构成的权限键值对,以满足不同用户的个性化使用需求。此外,针对某些特定的需求,也可以根据需要采用一条权限控制记录。
52.权限控制信息所需的属性字段可根据需要选择,例如权限控制信息的属性字段包括用户名、部门信息、安全级别、版本号、分类信息、用途信息、项目信息、管理操作类型(软件安装、软件更新或软件卸载)中的部分或者全部。若属性字段包括用户名,则可将用户名作为管理操作的控制对象来控制软件安装、软件更新或软件卸载,若两份权限控制信息中用户名的匹配则可以执行软件安装、软件更新或软件卸载,否则不能执行软件安装、软件更新或软件卸载。若属性字段包括部门信息,则可将部门信息作为管理操作的控制对象来控制软件安装、软件更新或软件卸载,例如指定的部门信息匹配则可以执行软件安装、软件更新或软件卸载,否则不能执行软件安装、软件更新或软件卸载。此外,安全级别、版本号、分类信息、用途信息、项目信息依次类推,在此不再一一列举。若属性字段包括管理操作类型,则可对软件安装、软件更新或软件卸载的权限进行分类控制。
53.需要说明的是,目标软件包中提取出权限控制信息背后的含义表达的是在目标软件包中嵌入了权限控制信息,可根据需要选择在目标软件包中嵌入权限控制信息的方式。作为一种具体的实施方式,本实施例步骤1)中目标软件包是指目标deb软件包,权限控制信息嵌入在目标deb软件包的控制信息及脚本包control.tar.xz中的控制文件control的属性扩展增强信息customextensions中,在原有deb软件包格式的基础上,通过增强属性管理机制实现属性的可扩展,从而支持软件安装的权限控制。图5所示为增强属性管理机制的实现原理示意图,针对目标deb软件包的结构,在原始信息的基础上通过控制文件control的属性扩展增强信息customextensions中增加了权限控制信息,权限控制信息是deb软件包的关键嵌入对象。此外,针对软件包管理工具及其接口库也进行了增强(即形成:软件包增强管理工具和软件包增强接口库),以实现对目标deb软件包的读取和处理的兼容。扩展增强后的deb软件包,除提供基础软件包的信息之外,还需要提供软件包安全控制和管理相关的信息,如权限控制、统一分类、用途和项目信息等。通过增加扩展属性系统,可更方便的进行软件包的统一管理,适应关键领域的软件包管理需求。具体地,本实施例中在目标deb软件包嵌入的权限控制信息的格式如下:
54.customextensions:security/text;
55.username=user1
56.department=kylin
57.level=1
58.其中第一行customextensions:security/text为默认开头,customextensins是字段名,security/text是类似mimie格式的表示,security表示安全方面的权限信息,text表示信息的类型是text文本类型。从第二行开始为定义的具体权限信息,权限信息开头空2格,定义格式为属性字段auth_name=属性值auth_value,每一行为具体的属性字段,属性值auth_value可以是1个或多个。
59.本实施例中,步骤1)包括:
60.1.1)解压目标deb软件包的控制信息及脚本包control.tar.xz以获取控制文件control;
61.1.2)读取控制文件control,并解析控制文件control中的各个属性字段,提取各个属性字段及对应的属性值的开始位置和长度,根据提取得到的各个属性字段的开始位置和长度得到属性字段的名字或别名,根据属性字段的名字或别名调用指定的读函数解析各个属性字段对应的属性值,最终得到包含目标deb软件包的软件包信息以及属性扩展增强信息customextensions中权限控制信息的解释结果集合m1。作为一种可选的实施方式,本实施例中得到解释结果集合m1后,将解释结果集合m1采用了pkgbin类来实现面向对象的存储,此外也可以根据需要采用其他方式来存储。
62.本实施例中,步骤1.2)包括:通过parsedb函数(软件包管理工具dpkg中的函数)读取控制文件control,再通过parse_stanza函数(软件包管理工具dpkg中的函数)解析控制文件control,parse_stanza函数解析其中的各个属性字段,并记录各个属性字段(field)及其对应的属性值(value)的开始位置和长度,并调用parsedb_parse函数处理各个属性字段(field);最后通过parsedb_parse_field函数(软件包管理工具dpkg中的函数)对比各个属性字段(field)的名字或别名,调用对应的读函数(如f_depenency函数)解析对应的属性值(value),将解析结果记为m1{(field1,value1),(field2,value2),

};其中,(field1,value1)和(field2,value2)表示软件包信息或权限控制信息中的属性字段及对应的属性值。
63.以安装软件的管理操作为例,参见图7,本实施例中步骤2)包括:
64.2.1)获取当前主机的权限控制信息,并将其中记录得到属性字段及对应的属性值构成的权限键值对存储到指定的变量auth_map中;本实施例中,主机的权限控制信息权限文件auth_file,用于声明当前用户环境所具备的权限信息,其格式如下:
65.auth:
66.username:user1
67.department:kylin
68.level:1
69.......
70.其中,auth是标识权限信息的默认开头,从第二行开始为定义的具体权限信息,以权限键值对的方式定义属性字段auth_name:属性值auth_value,每一行为具体的属性字段,属性值auth_value为1个。需要说明的是,主机的权限控制信息的存储形式不仅可以作为文件存储,还可以以数据的方式存储,还可以作为临时变量存储在内存中。主机的权限控制信息的来源方式既可以是本地,也可以是指定的服务器或云端。
71.2.2)判断解释结果集合m1中包含的属性扩展增强信息customextensions中的每一个属性字段(field)及其对应的属性值(value)与变量auth_map中的属性字段(auth_name)及其对应的属性值(auth_value)是否全部匹配,若全部匹配,则允许并执行目标deb软件包在当前主机中的管理操作,否则判定目标deb软件包在当前主机中无管理操作权限,结束并退出deb软件包的管理操作。
72.由于解释结果集合m1采用了pkgbin类来实现面向对象的存储,因此可方便地将属性扩展增强信息customextensions中属性字段作为对象节点来进行遍历。例如,customextensions-》auth即为获取第一个属性字段,auth-》next即为获取下一个属性字段。如图7所示,本实施例步骤1.1)中解压目标deb软件包的控制信息及脚本包control.tar.xz时,还包括获取预运行脚本文件preinst和后运行脚本文件postint,步骤2.2)包括:
73.2.2.1)从解释结果集合m1中包含的属性扩展增强信息customextensions中遍历选择一个属性字段作为当前属性字段,记为auth,第一次遍历可表示为:
74.auth=customextensions-》auth
75.后续每一次遍历可表示为:
76.auth=auth-》next
77.若遍历选择完毕(即auth=null),则跳转步骤2.2.3);否则(即auth!=null)跳转下一步;
78.2.2.2)判断当前属性字段在变量auth_map中是否存在对应的属性字段,若不存在属性字段,则判定两份权限控制信息不匹配,目标deb软件包在当前主机中无管理操作权限,结束并退出deb软件包的管理操作;若存在属性字段,则判断当前属性字段、变量auth_map中对应的属性字段的是否匹配,如果匹配则跳转步骤2.2.1),如果不匹配则判定目标deb软件包在当前主机中无管理操作权限,结束并退出deb软件包的管理操作;
79.2.2.3)允许并执行目标deb软件包在当前主机中的管理操作:若管理操作为安装操作或更新操作,则首先运行目标deb软件包的控制信息及脚本包control.tar.xz中的预运行脚本文件preinst,然后将目标deb软件包的程序数据文件data.tar.xz复制到指定的目录,最后运行目标deb软件包的控制信息及脚本包control.tar.xz中的后运行脚本文件postint完成安装操作或更新操作;若管理操作为卸载操作,则直接卸载目标deb软件包。本实施例中属性扩展增强信息customextensions中属性字段的属性值“user1”、“kylin”和“1”与当前主机的权限控制信息(变量auth_map)中属性字段的属性值“user1”、“kylin”和“1”完全相同,因此允许并执行目标deb软件包在当前主机中的管理操作。以执行安装为例,则首先运行目标deb软件包的控制信息及脚本包control.tar.xz中的预运行脚本文件preinst,然后将目标deb软件包的程序数据文件data.tar.xz复制到指定的目录,最后运行目标deb软件包的控制信息及脚本包control.tar.xz中的后运行脚本文件postint完成安装操作作。
80.一般情况下,其特征在于,步骤2.2.2)中判断该属性字段、变量auth_map中对应的属性字段的是否匹配时,如果该属性字段、变量auth_map中对应的属性字段相等,则判定该属性字段、变量auth_map中对应的属性字段两者匹配,否则判定该属性字段、变量auth_map中对应的属性字段两者不匹配。因此,图7中的匹配判断表示为:
81.auth.name==map_field.name&&auth.value==map_field.value
82.其中,auth.name和auth.value分别为当前属性字段的名称和属性值,map_field.name和map_field.value分别为变量auth_map中对应的属性字段的名称和属性值。
83.此外,考虑到属性字段匹配的灵活性,判断当前属性字段、变量auth_map中对应的属性字段的是否匹配时,不仅包括相等,还包括基于通配符的匹配的情况,例如目标deb软件包中的属性字段“主机”限定为“pc*”,则可使得任何以pc开头的当前主机具有对目标deb软件包的管理操作权限。此时,匹配判断可表示为:
84.auth.name==map_field.name&&match0(map_field.value,auth.value)
85.其中,auth.name和auth.value分别为当前属性字段的名称和属性值,map_field.name和map_field.value分别为变量auth_map中对应的属性字段的名称和属性值,match0表示支持通配符的匹配函数,目标deb软件包中的属性字段中auth.value包含的通配符与map_field.value匹配,则match0返回真,否则match0返回假。由于基于通配符的字符比较为现有常规方法,故其具体实现在此不再详细说明。
86.此外,考虑到属性字段匹配的灵活性,也可以在该属性字段、变量auth_map中对应的属性字段满足预设的约束关系时判定该属性字段、变量auth_map中对应的属性字段两者匹配,例如限定当前主机只能安装安全级别大于设定安全级别的软件包,限定当前主机只能安装版本号大于设定版本号的软件包等。此时,匹配判断可表示为:
87.auth.name==map_field.name&&match1(map_field.value,auth.value)
88.其中,auth.name和auth.value分别为当前属性字段的名称和属性值,map_field.name和map_field.value分别为变量auth_map中对应的属性字段的名称和属性值,match1表示约束判断函数,目标deb软件包中的属性字段中auth.value包含的通配符与map_field.value满足约束则match1返回真,否则match1返回假。
89.此外,考虑到属性字段匹配的安全性,也可以在该属性字段、变量auth_map中对应的属性字段满足预设的映射关系时判定该属性字段、变量auth_map中对应的属性字段两者匹配,例如目标deb软件包中的某一属性字段的属性值为x,而属性值x通过某一指定的映射函数(例如哈希函数或其他加密函数)可得到值y,若当前主机中该属性字段的属性值为y,则判定两者匹配,这种情况下由于映射函数的机密信息可掌握在管理者手中,从而可有效提高基于权限控制的软件包管理的安全性。此时,匹配判断可表示为:
90.auth.name==map_field.name&&map_field.value==f(auth.value)
91.其中,auth.name和auth.value分别为当前属性字段的名称和属性值,map_field.name和map_field.value分别为变量auth_map中对应的属性字段的名称和属性值,f表示映射函数(例如可采用哈希函数),目标deb软件包中的属性字段中auth.value通过映射函数f计算得到的结果f(auth.value)与map_field.value相等约束则右侧的表达式返回真,否则右侧的表达式返回假。基于上述启示,还可以进一步根据需要在所有的属性字段中增加一个用于校验字段的属性字段,且该校验字段的属性值x为由权限控制信息中其余属性字段计算得到(例如哈希函数或其他加密函数),将校验字段的属性值x通过某一指定的映射函数(例如哈希函数或其他加密函数)可得到值y,若当前主机中该属性字段的属性值为y,则判定两者匹配,这种情况下由于映射函数的机密信息可掌握在管理者手工,从而可有效提高基于权限控制的软件包管理的安全性。
92.进一步地,本实施例中还通过对软件包管理工具dpkg及其访问目标deb软件包的接口库进行扩展增强,为软件包的统一安装管理提供支撑。具体地,如图6所示,本实施例步骤1)之前还包括通过预设的软件包管理工具apt接收到来自用户发送的软件包管理操作请求,所述软件包管理工具apt在收到用户发送的软件包管理操作请求后,若管理操作为安装或更新,则首先向指定的软件仓库源服务器获取所需的软件包及其依赖软件包,然后调用软件包管理工具dpkg执行步骤1)和步骤2)对所需的软件包及其依赖软件包执行受权限控制信息控制的安装或更新操作;若管理操作为卸载,则直接调用软件包管理工具dpkg执行步骤1)和步骤2)对软件包执行受权限控制信息控制的卸载操作,从而可利用软件包管理工具apt和软件包管理工具dpkg的结合,解决软件包管理操作中的依赖问题,并实现良好的兼容性。
93.此外,本实施例还提供一种基于权限控制的软件包管理系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述基于权限控制的软件包管理方法的步骤。
94.此外,本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,该计算机程序用于被微处理器执行以实施前述基于权限控制的软件包管理方法的步骤。
95.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
96.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1