可左右滑动选省市

操作系统的授权管控方法、装置、电子设备、存储介质及程序产品

更新时间:2025-07-01
操作系统的授权管控方法、装置、电子设备、存储介质及程序产品 专利申请类型:实用新型专利;
源自:北京高价值专利检索信息库;

专利名称:操作系统的授权管控方法、装置、电子设备、存储介质及程序产品

专利类型:实用新型专利

专利申请号:CN202410893429.1

专利申请(专利权)人:统信软件技术有限公司
权利人地址:北京市大兴区北京经济技术开发区科谷一街10号院12号楼18层

专利发明(设计)人:王博,季宗耀,孟杰

专利摘要:本公开关于一种操作系统的授权管控方法、装置、电子设备、存储介质及程序产品,该方法包括:将目标数据仓库的身份验证信息设置为自定义身份变量,自定义身份变量保存于指定目录下的自定义变量目录下;获取第一目录路径,第一目录路径用于描述自定义变量目录在文件系统中的位置;对第一目录路径进行修正,以去除第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,第二目录路径用于描述指定目录在文件系统中的位置;根据修正后的第一目录路径,在指定目录下读取自定义身份变量的取值;向目标数据仓库的服务端发送包含自定义身份变量的取值的目标请求,以供服务端执行身份验证。本公开可实现有效且简便的身份验证。

主权利要求:
1.一种操作系统的授权管控方法,其特征在于,所述授权管控方法包括:将目标数据仓库的身份验证信息设置为自定义身份变量,其中,所述自定义身份变量保存于自定义变量目录下,所述自定义变量目录是指定目录下的子目录;
获取第一目录路径,其中,所述第一目录路径用于描述所述自定义变量目录在文件系统中的位置;
在确定所述指定目录不是系统根目录的情况下,对所述第一目录路径进行修正,以去除所述第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,其中,所述第二目录路径用于描述所述指定目录在文件系统中的位置;
在确定所述指定目录是所述系统根目录的情况下,将所述第一目录路径作为所述修正后的第一目录路径;
根据所述修正后的第一目录路径,在所述指定目录下读取所述自定义身份变量的取值;
向所述目标数据仓库的服务端发送目标请求,其中,所述目标请求中包含所述自定义身份变量的取值,以供所述服务端执行身份验证;
其中,所述对所述第一目录路径进行修正,以去除所述第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,包括:获取所述第二目录路径,
从所述第一目录路径中删除与所述第二目录路径重复的部分,得到所述修正后的第一目录路径;或在具备默认自定义目录路径的情况下,将所述默认自定义目录路径作为所述修正后的第一目录路径,其中,所述第二目录路径与所述默认自定义目录路径的拼接结果与所述第一目录路径相同。
2.如权利要求1所述的授权管控方法,其特征在于,所述从所述第一目录路径中删除与所述第二目录路径重复的部分,得到所述修正后的第一目录路径,包括:统计所述第二目录路径包含的路径层数;
按照所述路径层数,从所述第一目录路径中删除靠前的相应层数的目录路径,得到所述修正后的第一目录路径。
3.如权利要求1或2所述的授权管控方法,其特征在于,所述目标数据仓库包括以下至少一种仓库:软件包仓库、操作系统镜像仓库。
4.一种操作系统的授权管控装置,其特征在于,所述授权管控装置包括:设置单元,被配置为将目标数据仓库的身份验证信息设置为自定义身份变量,其中,所述自定义身份变量保存于自定义变量目录下,所述自定义变量目录是指定目录下的子目录;
获取单元,被配置为获取第一目录路径,其中,所述第一目录路径用于描述所述自定义变量目录在文件系统中的位置;
修正单元,被配置为在确定所述指定目录不是系统根目录的情况下,对所述第一目录路径进行修正,以去除所述第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,其中,所述第二目录路径用于描述所述指定目录在文件系统中的位置;
所述修正单元还被配置为在确定所述指定目录是所述系统根目录的情况下,将所述第一目录路径作为所述修正后的第一目录路径;
读取单元,被配置为根据所述修正后的第一目录路径,在所述指定目录下读取所述自定义身份变量的取值;
请求单元,被配置为向所述目标数据仓库的服务端发送目标请求,其中,所述目标请求中包含所述自定义身份变量的取值,以供所述服务端执行身份验证;
其中,所述修正单元执行的对所述第一目录路径进行修正,以去除所述第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,包括:获取所述第二目录路径,
从所述第一目录路径中删除与所述第二目录路径重复的部分,得到所述修正后的第一目录路径;或在具备默认自定义目录路径的情况下,将所述默认自定义目录路径作为所述修正后的第一目录路径,其中,所述第二目录路径与所述默认自定义目录路径的拼接结果与所述第一目录路径相同。
5.一种电子设备,其特征在于,包括:
至少一个处理器;
至少一个存储计算机可执行指令的存储器,
其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1至3中的任一权利要求所述的操作系统的授权管控方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中的指令在被至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1至3中任一项所述的操作系统的授权管控方法。
7.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令在被至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1至3中的任一权利要求所述的操作系统的授权管控方法。 说明书 : 操作系统的授权管控方法、装置、电子设备、存储介质及程序
产品技术领域[0001] 本公开涉及计算机领域,尤其涉及一种操作系统的授权管控方法、装置、电子设备、存储介质及程序产品。背景技术[0002] 操作系统的授权管控主要包含对软件安装/升级行为和操作系统版本更新行为的管控。在操作系统授权激活后,用户才可通过官方服务器为操作系统安装/升级软件以及更新操作系统版本。[0003] 对于使用RPM(RPMPackageManager,最初的名字是RedHatPackageManager,现在是递归的缩写,是一个开源的软件包管理系统,能够安装、卸载、验证、查询和更新使用RPM格式打包的软件包)软件包管理系统的操作系统,操作系统由RPM软件包组成。对于此类操作系统,操作系统的版本更新是通过更新操作系统内安装的所有RPM软件包完成,即操作系统版本更新可以拆分为一系列的RPM软件包更新。对于此类操作系统,对软件安装/升级行为和操作系统版本更新行为的管控,只需要对软件包安装/升级行为进行管控即可达到管控上述两个行为的目的。用户可使用YUM(Yellow‑DogUpdaterModified,用于改进RPM软件包安装的包管理)/DNF(DandifiedYUM,是YUM的下一代版本)组件实现授权管控,具体是通过位于远程HTTP服务器上的YUM仓库,拉取RPM软件包进行安装/升级,并可通过为YUM仓库配置YUM自定义身份变量来动态修改用于HTTPBasic身份认证的用户名和密码,YUM/DNF组件在向远程HTTP服务器发送请求报文时,可从YUM自定义变量目录下读取YUM自定义身份变量的取值,进而添加到请求报文中,供远程HTTP服务器执行Basic身份认证。此时由于YUM自定义变量目录固定存储在系统根目录下,因而YUM/DNF组件能够顺利找到该目录并读取其中的YUM自定义身份变量。[0004] 但在使用以rpm‑ostree(一个开源的采用混合镜像/包机制的系统,结合了RPM和OSTree(一个开源的用于对Linux发行版操作系统进行版本更新的系统)两者的特点,一方面提供基于RPM的软件包安装管理,另一方面提供基于OSTree的操作系统版本更新)为代表的混合镜像‑软件包机制的操作系统中,操作系统是基于镜像的,通过OSTree仓库进行操作系统版本的更新,通过YUM仓库安装/升级软件包,其授权管控由rpm‑ostree组件来实现,并且针对操作系统版本和软件包采用相同的管控方式,不具备正常解析YUM自定义身份变量的能力,也就无法效仿RPM机制,通过在请求报文中添加YUM自定义身份变量的取值来实现Basic身份验证,而需要采用其他更复杂的方法,造成了更多的计算资源消耗。发明内容[0005] 本公开提供一种操作系统的授权管控方法、装置、电子设备、存储介质及程序产品,以至少解决相关技术如何简便地实现授权管控中的身份验证的问题。[0006] 根据本公开实施例的第一方面,提供一种操作系统的授权管控方法,所述授权管控方法包括:将目标数据仓库的身份验证信息设置为自定义身份变量,其中,所述自定义身份变量保存于自定义变量目录下,所述自定义变量目录是指定目录下的子目录;获取第一目录路径,其中,所述第一目录路径用于描述所述自定义变量目录在文件系统中的位置;对所述第一目录路径进行修正,以去除所述第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,其中,所述第二目录路径用于描述所述指定目录在文件系统中的位置;根据所述修正后的第一目录路径,在所述指定目录下读取所述自定义身份变量的取值;向所述目标数据仓库的服务端发送目标请求,其中,所述目标请求中包含所述自定义身份变量的取值,以供所述服务端执行身份验证。[0007] 可选地,所述对所述第一目录路径进行修正,以去除所述第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,包括:获取所述第二目录路径;从所述第一目录路径中删除与所述第二目录路径重复的部分,得到所述修正后的第一目录路径。[0008] 可选地,所述从所述第一目录路径中删除与所述第二目录路径重复的部分,得到所述修正后的第一目录路径,包括:统计所述第二目录路径包含的路径层数;按照所述路径层数,从所述第一目录路径中删除靠前的相应层数的目录路径,得到所述修正后的第一目录路径。[0009] 可选地,所述对所述第一目录路径进行修正,以去除所述第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,包括:在具备默认自定义目录路径的情况下,将所述默认自定义目录路径作为所述修正后的第一目录路径,其中,所述第二目录路径与所述默认自定义目录路径的拼接结果与所述第一目录路径相同。[0010] 可选地,所述对所述第一目录路径进行修正,以去除所述第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,包括:在确定所述指定目录不是系统根目录的情况下,对所述第一目录路径进行修正,以去除所述第一目录路径中对应于所述第二目录路径的部分,得到所述修正后的第一目录路径。[0011] 可选地,所述对所述第一目录路径进行修正,以去除所述第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,还包括:在确定所述指定目录是所述系统根目录的情况下,将所述第一目录路径作为所述修正后的第一目录路径。[0012] 可选地,所述目标数据仓库包括以下至少一种仓库:软件包仓库、操作系统镜像仓库。[0013] 根据本公开实施例的第二方面,提供一种操作系统的授权管控装置,所述授权管控装置包括:设置单元,被配置为将目标数据仓库的身份验证信息设置为自定义身份变量,其中,所述自定义身份变量保存于自定义变量目录下,所述自定义变量目录是指定目录下的子目录;获取单元,被配置为获取第一目录路径,其中,所述第一目录路径用于描述所述自定义变量目录在文件系统中的位置;修正单元,被配置为对所述第一目录路径进行修正,以去除所述第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,其中,所述第二目录路径用于描述所述指定目录在文件系统中的位置;读取单元,被配置为根据所述修正后的第一目录路径,在所述指定目录下读取所述自定义身份变量的取值;请求单元,被配置为向所述目标数据仓库的服务端发送目标请求,其中,所述目标请求中包含所述自定义身份变量的取值,以供所述服务端执行身份验证。[0014] 可选地,所述修正单元还被配置为:获取所述第二目录路径;从所述第一目录路径中删除与所述第二目录路径重复的部分,得到所述修正后的第一目录路径。[0015] 可选地,所述修正单元还被配置为:统计所述第二目录路径包含的路径层数;按照所述路径层数,从所述第一目录路径中删除靠前的相应层数的目录路径,得到所述修正后的第一目录路径。[0016] 可选地,所述修正单元还被配置为:在具备默认自定义目录路径的情况下,将所述默认自定义目录路径作为所述修正后的第一目录路径,其中,所述第二目录路径与所述默认自定义目录路径的拼接结果与所述第一目录路径相同。[0017] 可选地,所述修正单元还被配置为在确定所述指定目录不是系统根目录的情况下,对所述第一目录路径进行修正,以去除所述第一目录路径中对应于所述第二目录路径的部分,得到所述修正后的第一目录路径。[0018] 可选地,所述修正单元还被配置为在确定所述指定目录是所述系统根目录的情况下,将所述第一目录路径作为所述修正后的第一目录路径。[0019] 可选地,所述目标数据仓库包括以下至少一种仓库:软件包仓库、操作系统镜像仓库。[0020] 根据本公开实施例的第三方面,提供了一种电子设备,包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,计算机可执行指令在被至少一个处理器运行时,促使至少一个处理器执行根据本公开的示例性实施例的操作系统的授权管控方法。[0021] 根据本公开实施例的第四方面,提供了一种计算机可读存储介质,计算机可读存储介质中的指令在被至少一个处理器运行时,促使至少一个处理器执行根据本公开的示例性实施例的操作系统的授权管控方法。[0022] 根据本公开实施例的第五方面,提供了一种计算机程序产品,包括计算机指令,计算机指令在被至少一个处理器运行时,促使至少一个处理器执行根据本公开的示例性实施例的操作系统的授权管控方法。[0023] 本公开的实施例提供的技术方案至少带来以下有益效果:[0024] 根据本公开的操作系统的授权管控方法、装置、电子设备、存储介质及程序产品,通过对描述自定义变量目录的第一目录路径进行修正,去除其中描述自定义变量目录所在的指定目录(即当前操作系统版本的目录)的部分(即对应于第二目录路径的部分),就能够在当前操作系统版本的目录下顺利定位自定义变量目录,从而读取自定义身份变量的值,并将其添加到向目标数据仓库发起的目标请求中,实现有效且简便的身份验证,减少计算资源消耗,保障了授权管控的高效进行。[0025] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明[0026] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。[0027] 图1是根据本公开的示例性实施例的操作系统的授权管控方法的流程图。[0028] 图2是根据本公开的具体实施例的操作系统的授权管控方法的流程图。[0029] 图3是根据本公开的示例性实施例的操作系统的授权管控装置的框图。[0030] 图4是根据本公开的示例性实施例的电子设备的框图。具体实施方式[0031] 为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。[0032] 需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。[0033] 在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。[0034] 下面,将参照附图详细描述根据本公开的示例性实施例的操作系统的授权管控方法、装置、电子设备、存储介质及程序产品。[0035] 通过对使用rpm‑ostree机制的操作系统做详细分析可以发现,在这类操作系统中,每更新一个操作系统版本,就会在系统根目录下生成一个新的目录,从而形成相应版本的操作系统环境,使得系统根目录下可以包括多个子目录,并且每个环境的目录下都有相应的YUM库。此时,负责授权管控的rpm‑ostree组件为了实现对不同操作系统版本的管控,在获取目录路径时,获取的都是自系统根目录开始的完整目录路径。此时,对于软件包安装/升级行为的Basic身份验证,若希望效仿RPM机制,在请求报文中添加YUM自定义身份变量的取值,则需要通过调用YUM库来读取YUM自定义身份变量的取值。然而YUM库只能在自身所处的操作系统版本的环境中工作,也只能读取所在环境目录下的文件,正是这个原因导致YUM库无法识别rpm‑ostree组件获取的完整的YUM自定义变量目录路径,也就无法读取到所需的自定义身份变量,因此无法使用该Basic身份验证方法。简而言之,是信息描述(即rpm‑ostree组件获取的YUM自定义变量目录路径)与信息读取能力(即YUM库仅能读取自身所处环境目录下的文件)不相匹配。[0036] 基于该分析,根据本公开的示例性实施例的操作系统的授权管控方法,通过对描述自定义变量目录的第一目录路径进行修正,去除其中描述自定义变量目录所在的指定目录(即当前操作系统版本的目录)的部分,就能够令YUM库在当前操作系统版本的目录下顺利定位自定义变量目录,使得信息描述与信息读取能力相匹配,从而读取到自定义身份变量的取值,并将其添加到向目标数据仓库发起的目标请求中,实现有效且简便的身份验证,减少计算资源消耗,保障了授权管控的高效进行。[0037] 图1是根据本公开的示例性实施例的操作系统的授权管控方法的流程图。该方法应用于操作系统的授权管控组件,例如,但不限于,rpm‑ostree组件。[0038] 参照图1,在步骤101中,将目标数据仓库的身份验证信息设置为自定义身份变量。[0039] 该步骤一方面用于指定目标数据仓库,另一方面用于为目标数据仓库设置身份验证信息。其中,身份验证信息所使用的自定义身份变量保存于自定义变量目录下,自定义变量目录是指定目录下的子目录。[0040] 具体来说,目标数据仓库是需要从中获取数据的仓库,例如目标YUM仓库。在当前操作系统版本中,可能存在多个同类型的数据仓库,例如多个YUM仓库,因此需要指定此次管控具体对哪个或哪些该类型的数据仓库进行管控,指定的仓库就作为目标数据仓库。作为示例,目标数据仓库可由操作系统预置,也可由用户手动配置,本公开对此不作限制。[0041] 在为目标数据仓库设置身份验证信息时,具体是设置为自定义身份变量,需明确的是,这里是设置为“变量”,而非“变量的取值”,从而将目标数据仓库的身份验证信息与自定义身份变量相对应,后续即可通过修改自定义身份变量的取值,自动地修改目标数据仓库的身份验证信息,实现身份验证信息的动态更新。另需说明的是,自定义身份变量的定义、赋值、动态更新取值,通常由操作系统内专门负责自定义变量的授权客户端程序负责执行,具体是在当前操作系统版本的目录(记为指定目录)下生成子目录,作为自定义变量目录,并在自定义变量目录下生成文件并填充文件内容,其中,文件名与具体的自定义变量名相同,文件内容作为该具体的自定义变量的取值,通过动态地修改文件内容,能够动态修改具体的自定义变量的取值。应理解,自定义变量目录下可保存多个自定义变量,这多个自定义变量中就包括自定义身份变量,例如自定义用户名(例如用auth_u表示)、自定义密码(例如用auth_p表示)。[0042] 作为示例,步骤101可具体执行为,在目标数据仓库的配置文件中添加用于身份验证的username和password字段,然后分别赋值为自定义用户名和自定义密码。[0043] 在步骤102中,获取第一目录路径。[0044] 第一目录路径用于描述自定义变量目录在文件系统中的位置,文件系统是操作系统用来管理和存储文件数据的一种机制或结构,它定义了文件在存储设备上的组织方式,包括文件的命名、组织、访问权限和存储位置等。文件系统是操作系统的一部分,负责处理文件的创建、删除、读取和写入操作,操作系统通过文件系统提供对数据的组织和管理。由于该目录路径由授权管控组件获取,因而是自系统根目录开始的完整目录路径。[0045] 在步骤103中,对第一目录路径进行修正,以去除第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径。[0046] 第二目录路径用于描述指定目录在文件系统中的位置,通过将第一目录路径中的相应部分去除,就会仅保留自定义变量目录在指定目录中的目录路径。作为示例,第一目录路径为/ostree/deploy/fedora/deploy/1/etc/yum/vars/,第二目录路径为/ostree/deploy/fedora/deploy/1/,此时修正后的第一目录路径即为/etc/yum/vars/。[0047] 在步骤104中,根据修正后的第一目录路径,在指定目录下读取自定义身份变量的取值。[0048] 由于修正后的第一目录路径仅保留了自定义变量目录在指定目录中的目录路径,因而能够被当前操作系统内的工具(例如YUM库)识别,实现了自定义身份变量的可靠读取。[0049] 如前所述,第一目录路径描述的自定义变量目录下可保存多个自定义变量,这多个自定义变量中就包括自定义身份变量。仍以自定义身份变量包括自定义用户名auth_u、自定义密码auth_p为例,此时步骤104可具体执行为根据修正后的第一目录路径,在指定目录下读取自定义变量目录中名称为auth_u、auth_p的文件的内容,作为相应自定义身份变量的取值。[0050] 在步骤105中,向目标数据仓库的服务端发送目标请求。其中,目标请求中包含自定义身份变量的取值,以供服务端执行身份验证。[0051] 通过将读取的自定义身份变量的取值作为身份验证信息添加到目标请求中,并向目标数据仓库的服务端发送,供服务端验证目标请求中的身份验证信息是否正确,就能够在发送目标请求的同时实现身份验证信息的发送,无需配置额外的身份验证操作,实现有效且简便的身份验证,保障了授权管控的高效进行。[0052] 作为示例,目标请求可以是安装/升级软件的请求,这类请求可以报文的形式发送,此时可将作为身份验证信息的自定义身份变量取值添加在报文中的指定位置,例如添加在报文头中。[0053] 接下来对根据本公开的示例性实施例的操作系统的授权管控方法做进一步介绍。[0054] 关于步骤103具体如何执行修正操作,在一些实施例中,可选地,步骤103包括:获取第二目录路径;从第一目录路径中删除与第二目录路径重复的部分,得到修正后的第一目录路径。授权管控组件具备获取自系统根目录开始的完整目录路径的能力。通过利用该能力获取到指定目录的目录路径,即第二目录路径,再从第一目录路径中进行相应的内容删除,即可是实现第一目录路径的修正。应理解,由于目录路径中常包含用于区分不同层次目录的符号,例如“/”,因此在删除与第二目录路径重复的部分时,需保证余下的部分形式完整,而非简单地删除与第二目录路径重复的全部内容。仍以第一目录路径为/ostree/deploy/fedora/deploy/1/etc/yum/vars/、第二目录路径为/ostree/deploy/fedora/deploy/1/的情况为示例,此时需在修正后的第一目录路径开头保留“/”,故实际删除的是“/ostree/deploy/fedora/deploy/1”。[0055] 进一步可选地,上述的从第一目录路径中删除与第二目录路径重复的部分,得到修正后的第一目录路径的操作包括:统计第二目录路径包含的路径层数;按照该路径层数,从第一目录路径中删除靠前的相应层数的目录路径,得到修正后的第一目录路径。通过在删除与第二目录路径重复的部分时,具体采用计算路径层数并删除靠前的相应层数的目录路径的方式,无需对第二目录路径的实际文本进行比对,有助于进一步减少计算资源的消耗。仍以前述的第一目录路径和第二目录路径示例为例,则可以统计出第二目录路径包含的路径层数是5,故可删除第一目录路径中靠前的5层目录路径。[0056] 关于步骤103具体如何执行修正操作,在另一些实施例中,可选地,步骤103包括:在具备默认自定义目录路径(例如/etc/yum/vars/)的情况下,将默认自定义目录路径作为修正后的第一目录路径,其中,第二目录路径与默认自定义目录路径的拼接结果与第一目录路径相同。对于具备默认自定义目录路径的情况,由于第二目录路径与默认自定义目录路径拼接在一起刚好与第一目录路径相同,因此修正后的第一目录路径必然与默认自定义目录路径相同。对此,通过直接将默认自定义目录路径作为修正后的第一目录路径,能够在无需获取第二目录路径的情况下实现同样效果的修正操作,可充分减少修正操作的计算资源消耗。[0057] 关于步骤103执行修正的触发条件,可选地,步骤103包括:在确定指定目录不是系统根目录的情况下,对第一目录路径进行修正,以去除第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径。对于使用以rpm‑ostree为代表的混合镜像‑软件包机制的操作系统,由于授权管控是在具体的操作系统版本下执行的,因而指定目录往往不是系统根目录,但对于使用以RPM为代表的软件包机制的操作系统,指定目录往往就是系统根目录,也就无需对第一目录路径进行修正。通过为修正操作配置指定目录不是系统根目录这一触发条件,能够增加一道保险,提前确认是否需要执行修正操作,从而减少不必要的修正操作以及相应的计算资源消耗。[0058] 进一步可选地,步骤103还包括:在确定指定目录是系统根目录的情况下,将第一目录路径作为修正后的第一目录路径。通过充分利用上述触发条件,在不满足该触发条件的情况下直接将第一目录路径作为修正后的第一目录路径,也就是不执行修正操作,并继续基于该第一目录路径执行后续的步骤以实现授权管控,能够令根据本公开的示例性实施例的授权管控方法同时兼容混合镜像‑软件包机制和软件包机制,使得在使用不同机制的操作系统中能够便捷地复用该授权管控方法。[0059] 关于目标仓库的类型,可选地,目标数据仓库包括以下至少一种仓库:软件包仓库、操作系统镜像仓库。在使用以RPM为代表的软件包机制的操作系统中,自定义身份变量得到成熟应用,相应地,自定义身份变量具体属于YUM自定义变量,因此目标数据仓库可支持软件包仓库,例如YUM仓库,从而能够满足基本的软件包安装/升级行为的管控。但在使用以rpm‑ostree为代表的混合镜像‑软件包机制的操作系统中,操作系统版本更新行为未纳入管控,导致在操作系统未授权激活的情况下,仍可通过系统预置的官方OSTree仓库地址进行操作系统版本更新。通过进一步增加操作系统镜像仓库,例如OSTree仓库,作为目标数据仓库所支持的仓库类型,能够将常规的软件包机制下的自定义身份变量推广应用到操作系统版本更新行为的管控,保障了管控的全面。[0060] 接下来结合图2介绍本公开一个具体实施例的操作系统的授权管控方法。[0061] 在该具体实施例中,操作系统使用rpm‑ostree机制,故授权管控组件为rpm‑ostree组件,rpm‑ostree组件通过调用YUM库来读取自定义身份变量的取值。[0062] 在rpm‑ostree组件执行授权管控方法之前,操作系统内的授权客户端程序需先定义YUM自定义变量auth_u和auth_p,即包括YUM自定义用户名和YUM自定义密码的YUM自定义身份变量。具体操作为在当前操作系统版本目录下生成/etc/yum/vars/目录,在该目录下生成同名文件并填充文件内容,文件内容用于受管控YUM仓库和受管控OSTree仓库(即目标数据仓库)所在的远程HTTP服务器进行HTTPBasic身份验证。[0063] 接下来由rpm‑ostree组件执行授权管控方法。[0064] 参照图2,在步骤201中,配置受管控YUN仓库的username和password字段。[0065] 该步骤在操作系统内/etc/yum.repos.d/目录下预置或由用户手动配置受管控的YUM仓库,添加用于HTTPBasic身份验证的username和password字段,分别赋值为auth_u变量和auth_p变量。由用户手动配置时,rpm‑ostree组件可接收用户的配置结果。[0066] 在步骤202中,为受管控OSTree仓库地址URL(UniformResourceLocator,统一资源定位器)配置HTTPBasic身份验证信息。[0067] 该步骤同样通过预置或由用户手动配置的方式,使用YUM自定义变量auth_u和auth_p将HTTPBasic身份验证所需的用户名和密码添加至OSTree仓库配置URL中。[0068] 步骤201和步骤202对应于图1中的步骤101,分别针对的是YUM仓库和OSTree仓库两种不同类型的数据仓库,按照各自适应的方式执行。[0069] 在步骤203中,获取YUM自定义变量目录路径,即第一目录路径。[0070] 该步骤对应于图1中的步骤102。[0071] 在步骤204中,判断是否指定了非系统根目录作为软件包安装的根目录,若是,则转到步骤205,若否,则转到步骤208。[0072] 软件包安装根目录即当前操作系统版本目录,也就是前述的指定目录。该步骤对应于图1中的步骤103的修正操作触发条件判断。[0073] 在步骤205中,获取软件包安装根目录的实际系统路径,即第二目录路径。[0074] 在步骤206中,计数需要取消的YUM自定义变量路径层数,即第二目录路径的路径层数。[0075] 在步骤207中,根据计数修正YUM自定义变量目录路径。[0076] 步骤205至步骤207对应于图1中的步骤103的修正操作。[0077] 在步骤208中,读取YUM自定义变量auth_u和auth_p的实际变量值。[0078] 该步骤对应于图1中的步骤104。具体是读取YUM定义变量目录下所有文件,文件名作为变量名,文件内容作为变量值,其中文件名为auth_u和auth_p的文件的内容即为YUM自定义变量auth_u和auth_p的实际变量值。[0079] 在步骤209中,解析YUM仓库配置时替换YUM自定义变量。[0080] 该步骤具体是获取YUM仓库配置的username和password字段值,并替换其中的YUM自定义变量auth_u和auth_p为实际变量值。[0081] 在步骤210中,在YUM仓库请求报文中添加身份验证报文头。[0082] 该步骤具体是对受管控YUM仓库所在的远程HTTP服务器发送的所有HTTP请求报文中,使用YUM仓库配置的username和password字段值添加Authorization(身份验证)报文头。[0083] 在步骤211中,在OSTree仓库请求报文中添加身份验证报文头。[0084] 该步骤具体是对受管控OSTree仓库所在的远程HTTP服务器发送的所有HTTP请求报文中,使用YUM自定义变量auth_u和auth_p的实际变量值添加Authorization报文头。[0085] 步骤209至步骤211对应于图1中的步骤105。其中,步骤209和步骤210针对的是基于YUM仓库的软件包安装/升级行为,步骤211针对的是基于OSTree仓库的操作系统版本更新行为。[0086] 远程HTTP服务器收到HTTP请求报文后,将根据Authorization报文头进行HTTPBasic身份验证,验证通过则返回状态码为200且包含请求资源的HTTP响应报文,未通过则返回状态码为401且不包含请求资源的HTTP响应报文。[0087] 在步骤212中,解析响应报文,也就是解析来自受管控YUM仓库和受管控OSTree仓库所在的远程HTTP服务器返回的HTTP响应报文。[0088] 需说明的是,每次执行软件包安装/升级行为或操作系统版本更新行为时,都需要执行根据本公开的示例性实施例的授权管控方法,以实现授权管控。但应理解,这里为示例性地全面说明本公开的授权管控方法,对软件包和操作系统的授权管控都进行了描述,以表示授权管控组件同时具备对软件包和操作系统进行授权管控的能力。而在实践中,除了步骤203至步骤208、步骤212是必须执行的步骤,其他步骤可以根据实际管控所涉及的对象来选择性地执行。换言之,可以在仅需针对软件包进行管控时执行步骤201、步骤209和步骤210,不执行步骤202和步骤211,在仅需针对操作系统进行管控时执行步骤202和步骤211,不执行步骤201、步骤209和步骤210。[0089] 此外,在合理的情况下,上述具体步骤的执行顺序是可调且可选的。例如,步骤201只要在步骤209之前执行即可,不必在步骤203至步骤208之前执行,步骤202与之同理,并且针对YUM仓库的步骤与针对OSTree仓库的步骤可以并行执行,因而步骤201和步骤202也不存在执行先后顺序依赖。又如,无论步骤204的判断结果如何,步骤203都是必须执行的,因此为了便于绘制流程图,将步骤203排在了步骤204之前,但实际上步骤203不必在步骤204之前执行。对于步骤204的判断结果为是的情况,步骤203只要在步骤207之前执行即可;对于步骤204的判断结果为否的情况,步骤203只要在步骤208之前执行即可。[0090] 还应理解,无论是对软件包还是操作系统的管控,都需要在当前操作系统版本目录下执行,若执行的是操作系统版本更新行为,则会生成新的操作系统版本目录,并在新目录下对软件包的安装/升级行为进行管控。特别地,在需要回滚到旧版本的操作系统时,就在旧版本操作系统的目录下执行操作。[0091] 图3是根据本公开的示例性实施例的操作系统的授权管控装置的框图。参照图3,该装置包括设置单元301、获取单元302、修正单元303、读取单元304、请求单元305。[0092] 设置单元301可将目标数据仓库的身份验证信息设置为自定义身份变量,其中,自定义身份变量保存于自定义变量目录下,自定义变量目录是指定目录下的子目录。[0093] 可选地,目标数据仓库包括以下至少一种仓库:软件包仓库、操作系统镜像仓库。[0094] 获取单元302可获取第一目录路径,其中,第一目录路径用于描述自定义变量目录在文件系统中的位置。[0095] 修正单元303可对第一目录路径进行修正,以去除第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径,其中,第二目录路径用于描述指定目录在文件系统中的位置。[0096] 可选地,修正单元303还可:获取第二目录路径;从第一目录路径中删除与第二目录路径重复的部分,得到修正后的第一目录路径。[0097] 可选地,修正单元303还可:统计第二目录路径包含的路径层数;按照路径层数,从第一目录路径中删除靠前的相应层数的目录路径,得到修正后的第一目录路径。[0098] 可选地,修正单元303还可:在具备默认自定义目录路径的情况下,将默认自定义目录路径作为修正后的第一目录路径,其中,第二目录路径与默认自定义目录路径的拼接结果与第一目录路径相同。[0099] 可选地,修正单元303还可在确定指定目录不是系统根目录的情况下,对第一目录路径进行修正,以去除第一目录路径中对应于第二目录路径的部分,得到修正后的第一目录路径。[0100] 可选地,修正单元303还可在确定指定目录是系统根目录的情况下,将第一目录路径作为修正后的第一目录路径。[0101] 读取单元304可根据修正后的第一目录路径,在指定目录下读取自定义身份变量的取值。[0102] 请求单元305可向目标数据仓库的服务端发送目标请求,其中,目标请求中包含自定义身份变量的取值,以供服务端执行身份验证。[0103] 根据本公开的实施例,可提供一种电子设备。图4是根据本公开实施例的一种电子设备400的框图,该电子设备包括至少一个存储器401和至少一个处理器402,所述至少一个存储器中存储有计算机可执行指令集合4011和操作系统4012,当计算机可执行指令集合4011被至少一个处理器402执行时,执行根据本公开实施例的操作系统的授权管控方法。[0104] 作为示例,电子设备400可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备400并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备400还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。[0105] 在电子设备400中,处理器402可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器402还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。[0106] 处理器402可运行存储在存储器中的指令或代码,其中,存储器401还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。[0107] 存储器401可与处理器402集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器401可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器401和处理器402可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器402能够读取存储在存储器401中的文件。[0108] 此外,电子设备400还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备的所有组件可经由总线和/或网络而彼此连接。[0109] 根据本公开的实施例,还可提供一种计算机可读存储介质,其中,当计算机可读存储介质中的指令被至少一个处理器运行时,促使至少一个处理器执行本公开实施例的操作系统的授权管控方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD‑ROM、CD‑R、CD+R、CD‑RW、CD+RW、DVD‑ROM、DVD‑R、DVD+R、DVD‑RW、DVD+RW、DVD‑RAM、BD‑ROM、BD‑R、BD‑RLTH、BD‑RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。[0110] 根据本公开实施例,提供了一种计算机程序产品,包括计算机指令,计算机指令被处理器执行时实现本公开实施例的操作系统的授权管控方法。[0111] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。[0112] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

专利地区:北京

专利申请日期:2024-07-04

专利公开日期:2024-09-03

专利公告号:CN118427162B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部