用户root权限集中管理系统和管理方法

文档序号:7869440阅读:307来源:国知局
专利名称:用户root权限集中管理系统和管理方法
技术领域
本发明涉及计算机技术,尤其涉及计算机操作系统中的用户root权限集中管理系统和管理方法。
背景技术
root (根)权限,是系统权限的一种,与System (系统)权限可以理解成一个概念,但高于Administrator (管理员)权限;root帐户是Linux和Unix系统中的超级管理员用户帐户,该帐户拥有整个系统最高权限,可以启动或停止一个进程,删除或增加用户,增加或者禁用硬件等等。例如,在Linux系统中拥有root权限的用户可以在命令行输入root权限命令来执行某些功能。对于非root用户的普通用户,操作系统也可允许其使用某些root权限命令在Linux系统的配置文件/etc/sudoers中记录了普通用户的用户名,以及采用该用户名进行登录的用户可使用的root权限命令之间的对应关系。当用户以该用户名登录系统后,若在命令行输入root权限命令,则操作系统先查找配置文件/etc/sudoers中记载的该用户名所对应的root权限命令,若其中包括了用户当前输入的命令,则表明该用户已被授权,操作系统执行该命令;若其中不包括用户当前输入的命令,则表明该用户未被授权使用该命令,操作系统将拒绝执行该命令。Root用户具有修改上述配置文件/etc/sudoers的权限。对于单台服务器的操作系统的root权限管理,可以通过root用户修改配置文件/etc/sudoers来完成;如果需要对多台服务器的操作系统中的root权限命令进行集中管理,则会比较繁琐;通常采用的用户root权限集中管理系统,如图1所示,该系统中需要对多个服务器集群中的各服务器的操作系统中的root权限命令进行集中管理;例如,需要对服务器集群A、B、C中的各服务器的操作系统中的root权限命令进行集中管理。那么,管理员按照配置文件格式,在配置文件中修改或添加了用户权限信息后提交到SVN(Subversion,是一个开放源代码的版本控制系统),由SVN进一步下发到Cfengine (—种Unix管理工具)根节点,由Cfengine根节点进一步下发到Cfengine 二级节点,由Cfengine二级节点将配置文件下发到与本节点通信的服务器集群中的各服务器。以用户A申请服务器集群A中的服务器A (10. O. 0.1)权限为例进行说明拥有root权限的管理员通过SVN获取最新的配置文件/etc/sudoers的信息后,修改或添加用户A的权限信息Cmnd_AliasCMD_CAT=/bin/catUSERA 10.0.0.1 =root NOPASSffD CMD_CAT其表明用户A对IP地址为10. 0. 0.1的服务器A拥有的root权限命令/bin/cat的执行权限。管理员将修改后的配置文件提交到SVN,由SVN通过Cfengine根节点、由Cfengine根节点通过各Cfengine 二级节点、由各Cfengine 二级节点向与本节点通信的服务器集群中的各服务器发送。
在服务器A获取到配置文件后,授权操作完成;用户A登录服务器A的操作系统后,根据配置文件可以使用root权限命令/bin/cat。
然而,本发明的发明人发现,现有技术的系统还将上述配置文件下发到了其它服务器中;对于其它服务器而言,配置文件中记录的用户A对服务器A所拥有的/bin/cat的执行权限为冗余信息;随着需要集中管理的服务器的数量的剧增,用户数量的增加,配置文件中记录的冗余信息将巨幅增长,造成资源浪费。发明内容
本发明的实施例提供了一种用户root权限集中管理系统和管理方法,用以节约用户IOOt权限集中管理系统中的资源。
根据本发明的一个方面,提供了一种root权限命令集中授权系统,包括授权管理服务器、数据中心,以及服务器集群;其中,
所述授权管理服务器用于接收具有root权限的管理员输入的用户权限修改信息后,生成相应的数据库操作语句;并根据生成的数据库操作语句,更新所述数据中心的权限信息数据库中的记录;
所述服务器集群中的服务器在用户登录、输入root权限命令后,根据该用户登录的用户名生成查询条件,向所述数据中心发送携带所述查询条件的查询请求;所述数据中心根据接收的查询请求,将所述权限信息数据库中与所述查询条件相匹配的用户权限的信息作为查询结果返回;所述服务器根据返回的查询结果确认权限验证是否通过;若确认通过,则执行输入的root权限命令;
其中,用户权限修改信息包括修改类型、以及用户权限的信息;所述用户权限的信息包括用户使用的用户名、该用户请求授权的服务器的服务器标识、该用户请求授权该服务器的root权限命令的名称。
根据本发明的另一个方面,还提供了一种root权限命令集中授权方法,包括
服务器集群中的服务器在用户登录输入root权限命令后,根据该用户登录的用户名生成查询条件,向数据中心发送携带所述查询条件的查询请求;
所述数据中心根据接收的查询请求,将权限信息数据库中与所述查询条件相匹配的用户权限的信息作为查询结果返回;
所述服务器根据返回的查询结果确认权限验证是否通过;若确认通过,则执行输入的root权限命令;
其中,所述数据中心的权限信息数据库中的记录是由授权管理服务器更新的所述授权管理服务器接收具有root权限的管理员输入的用户权限修改信息后,生成相应的数据库操作语句;并根据生成的数据库操作语句,更新所述数据中心的权限信息数据库中的记录。
本发明实施例由于将用户权限信息存储在数据中心,由数据中心统一对服务器集群中的各服务器的用户root权限进行集中管理,而不必如现有的技术在每台服务器的配置文件中存储有所有的用户权限信息;从而大大节约了系统中的资源,尤其是各服务器的存储资源;使得整个系统以更低的成本、更为快速地集中管理更为庞大的服务器集群的用户root权限。


图1为现有技术的用户root权限集中管理系统的示意图;图2a、2b为本发明实施例的用户root权限集中管理系统的示意图;图3为本发明实施例的用户root权限集中授权管理的方法流程图;图4为本发明实施例的依据数据中心存储的信息,对服务器集群中的各服务器进行用户root权限集中验证的方法流程图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。 本申请使用的“模块”、“系统”等术语旨在包括与计算机相关的实体,例如但不限于硬件、固件、软硬件组合、软件或者执行中的软件。例如,模块可以是,但并不仅限于处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/或计算机。举例来说,计算设备上运行的应用程序和此计算设备都可以是模块。一个或多个模块可以位于执行中的一个进程和/或线程内,一个模块也可以位于一台计算机上和/或分布于两台或更多台计算机之间。本发明的发明人考虑到,在用户登录服务器后,使用配置文件对其输入的命令进行权限验证的方法比较适合对单台服务器的root权限命令的管理;仍然采用该方法对服务器集群的root权限命令进行管理,则非常不适用;因此,本发明的实施例中,在数据中心中存储了用户对各服务器所拥有的root权限命令的执行权限,服务器集群中的各服务器可以在对用户输入的命令进行权限验证时,与数据中心通信,根据其存储的权限信息进行权限验证;这样,也便于对root权限命令进行集中授权。由于权限验证主要是由数据中心完成的,各服务器中不必存储大量的配置文件信息,更不会有其它服务器的权限信息的冗余信息,从而大大节约了集中授权系统的资源。下面结合附图详细说明本发明实施例的技术方案。本发明实施例提供的用户root权限集中管理系统,如图2a所示,包括授权管理服务器201、数据中心202,以及服务器集群中的各服务器203。通过授权管理服务器201对服务器集群中的各服务器203的用户root权限集中授权管理的方法流程,如图3所示,包括如下步骤S301 :授权管理服务器201接收管理员输入的用户权限修改信息。具体地,授权管理服务器201中可以安装权限管理软件,具有root权限的管理员运行该权限管理软件时,该软件可以提供输入界面、或WEB页面;通过输入界面、或WEB页面管理员输入用户权限修改信息。用户权限修改信息具体包括修改类型、以及用户权限的信肩、O其中,管理员输入的修改类型可以包括添加(add)、删除(delete),以及一些其它操作修改类型,比如读取(read)等。
管理员输入的用户权限的信息包括用户使用的用户名、用户请求授权的服务器的服务器标识、用户请求授权该服务器的root权限命令的名称;其中,服务器标识具体可以是服务器的IP地址。
较佳地,根据用户操作的类似性,可以将具有类似操作的用户的用户名划分在同一用户组中,即一个用户组中可以包括多个用户名;也可以将一些root权限命令划分在一个root权限命令集合中,即一个root权限命令集合中可以包括多个root权限命令的名称;
那么,一种较高效率地输入用户权限的信息的方法可以是,输入的用户权限的信息还可以包括用户组的名称,该用户组的用户请求授权的服务器的服务器标识、该用户组的用户请求授权该服务器的root权限命令集合的名称。
进一步,用户权限的信息还可包括授权的有效时间、授权备注等信息。
S302 :授权管理服务器201根据输入的用户权限修改信息,生成相应的数据库操作语句。
具体地,授权管理服务器201中的权限管理软件根据输入的用户权限修改信息, 调用与修改类型相应的API函数,根据输入的用户权限修改信息中的用户权限的信息生成相应的数据库操作语句。
例如,针对add修改类型,则调用添加记录的API (Application Program Interface,应用程序接口)函数,生成添加输入的用户权限修改信息中的用户权限的信息的数据库操作语句;
针对delete修改类型,则调用删除记录的API函数,生成删除输入的用户权限修改信息中的用户权限的信息的数据库操作语句。
S303:授权管理服务器201根据生成的数据库操作语句,更新数据中心202中的权限信息数据库中的记录。
具体地,在数据中心202的权限信息数据库中记录了用户权限的信息;授权管理服务器201可以根据生成的数据库操作语句,更新数据中心202中的权限信息数据库中的记录。较佳地,授权管理服务器201可以采用Hive技术更新数据中心202中的权限信息数据库中 的记录;上述步骤S302中生成的数据库操作语句具体可以是Hive SQLCStructured Query Language,结构化查询语言)语句。
授权管理服务器201发送Hive SQL语句到数据中心的Hive Server ;HiveServer 对接收的Hive SQL请求进行数据分析,并进行相应的数据库的操作。
较佳地,数据中心202中的权限信息数据库可以是LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)数据库。
依据数据中心存储的信息,对服务器集群中的各服务器203进行用户root权限集中验证的方法流程图,如图4所示,包括如下步骤
S401 :服务器203在非root用户登录后,若用户输入root权限命令,则接收该用户输入的root权限命令。
S402 :服务器203生成查询条件,并向数据中心202发送查询请求,查询数据中心 202中的权限信息数据库;其中,查询请求中携带有生成的查询条件。
在本步骤中,服务器203可以根据用户登录的用户名生成查询条件,根据生成的查询条件向数据中心202发送查询请求;或者,服务器203也可以是根据用户登录的用户名、本服务器的服务器标识生成查询条件,根据生成的查询条件向数据中心202发送查询请求;或者,服务器203也可以是根据用户登录的用户名、输入的root权限命令的名称、本服务器的服务器标识生成查询条件,根据生成的查询条件向数据中心202发送查询请求。事实上,在服务器203的操作系统中预先配置了权限验证方式,以及数据中心202的网络地址;根据该预先配置,在该用户输入root权限命令后,操作系统依据配置的权限验证方式去查询远程数据库进行权限验证而不是通过配置文件进行权限验证;而预先配置的网络地址则指示出了远程数据库的访问地址。因此,服务器203可以根据预先配置的网络地址,向数据中心202发送生成的查询条件。查询远程数据库进行用户的权限命令的权限验证为本领域技术人员所熟知的技术;事实上,随着 NIS (Network Information System,网络信息服务)和 DNS (Domain NameSystem,域名系统)的出现,查找用户信息和系统信息就不仅仅通过搜索本地文件来完成了。以前,查看/etc/sudoer文件就可以获取用户权限信息,而现在可以使用多种途径来查找这类信息。例如,文件/etc/nsswitch. conf (Name Service Switch Configuration,名字服务切换配置)规定了通过哪些途径以及按照什么顺序通过这些途径来查找特定类型的信息。还可以指定若某个方法奏效抑或失效系统将采取什么动作。文件nsswitch. conf中的每一行配置都指明了如何搜索信息,比如root权限信息。nsswitch. conf可以配置成如下sudoers Idap这样,在用户输 入root权限命令后,操作系统依据配置的权限验证方式去将会查询远程数据库LDAP数据库获取相关信息进行权限验证。该验证过程中服务器203的操作系统通常发送两个或者三个查询数据请求到远程数据库进行相关信息的查询;并根据返回的信息进行权限验证。第一个请求用于解析全局配置(用于控制校验认证级别);第二个请求用于查询匹配的用户的信息;如果没有返回匹配的用户,第三个请求用于查询所有数据条目,检查用户是否属于其中一个。S403 :服务器203根据数据中心202返回的查询结果确认权限验证是否通过;若确认通过,执行步骤S404 ;否则,执行步骤S405。若服务器203发送给数据中心202的查询请求中的查询条件,是仅根据用户名生成的,则数据中心202根据该查询请求,查询权限信息数据库后,将与查询条件中的用户名匹配的用户权限的信息作为查询结果向服务器203返回;服务器203根据该查询结果,从中查找是否有与输入的root权限命令的名称、本服务器的服务器标识相匹配的用户权限的信息;若有,确认通过;否则,验证不通过。若服务器203发送给数据中心202的查询请求中的查询条件,是根据用户名、本服务器的服务器标识生成的,则数据中心202根据该查询请求,查询权限信息数据库后,将与查询条件中的用户名和服务器标识相匹配的用户权限的信息作为查询结果向服务器203返回;服务器203根据该查询结果,从中查找是否有与输入的root权限命令的名称相匹配的用户权限的信息;若有,确认通过;否则,验证不通过。
若服务器203发送给数据中心202的查询请求中的查询条件,是根据用户名、输入的root权限命令的名称、本服务器的服务器标识生成的,则数据中心202根据该查询请求, 查询权限信息数据库后,将与查询条件中的用户名、服务器标识、root权限命令的名称相匹配的用户权限的信息作为查询结果向服务器203返回;服务器203接收的查询结果中若包含有用户权限的信息,则确认通过;否则,验证不通过。
S404 :服务器203执行用户输入的root权限命令。
S405 :服务器203不执行用户输入的root权限命令,并显不未被授权的信息。
更优地,若系统需要管理多个服务器集群,则图2a中的数据中心202具体可以如图2b所示,包括主数据库服务器211、以及多个从数据库服务器212 ;每个从数据库服务器212负责一个服务器集群的用户root权限集中管理,即每个服务器集群分配有一个从数据库服务器与之通信。每个从数据库服务器中的权限信息数据库实现与所述主数据库服务器中的权限信息数据库同步。
对于具有主从结构的数据中心,上述步骤S303中,授权管理服务器201根据生成的数据库操作语句,更新数据中心202中的权限信息数据库中的记录,具体包括
授权管理服务器201根据生成的数据库操作语句,更新主数据库服务器211中的权限信息数据库中的记录;
在主数据库服务器211完成权限信息数据库更新后,主数据库服务器211将更新数据同步到各从数据库服务器212的权限信息数据库中;在同步过程完成后,各从数据库服务器212中存储有与主数据库服务器211的数据库相同内容的数据库。
与从数据库服务器212通信的服务器集群中的各服务器,依据从数据库服务器存储的信息,进行用户root权限集中验证的方法与上述图4中所述的方法相同,即上述步骤 S402中,服务器203根据生成的查询条件,查询数据中心202中的权限信息数据库,具体为 服务器203根据生成的查询条件,查询与本服务器所在服务器集群通信的从数据库服务器中的权限信息数据库;而该服务器集群中的各服务器中已预先配置了该从数据库服务器的网络地址。
本发明实施例由于将用户权限信息存储在数据中心,由数据中心统一对服务器集群中的各服务器的用户root权限进行集中管理,而不必如现有的技术在每台服务器的配置文件中存储有所有的用户权限信息;从而大大节约了系统中的资源,尤其是各服务器的存储资源;使得整个系统以更低的成本、更为快速地集中管理更为庞大的服务器集群的用户root权限。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如 R0M/RAM、磁碟、光盘等。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和 润饰也应视为本发明的保护范围。
权利要求
1.一种用户root权限集中管理系统,包括授权管理服务器、数据中心,以及服务器集群;其中,所述授权管理服务器用于接收具有根root权限的管理员输入的用户权限修改信息后,生成相应的数据库操作语句;并根据生成的数据库操作语句,更新所述数据中心的权限信息数据库中的记录;所述服务器集群中的服务器在用户登录、输入root权限命令后,根据该用户登录的用户名生成查询条件,向所述数据中心发送携带所述查询条件的查询请求;所述数据中心根据接收的查询请求,将所述权限信息数据库中与所述查询条件相匹配的用户权限的信息作为查询结果返回;所述服务器根据返回的查询结果确认权限验证是否通过;若确认通过, 则执行输入的root权限命令;其中,用户权限修改信息包括修改类型、以及用户权限的信息;所述用户权限的信息包括用户使用的用户名、该用户请求授权的服务器的服务器标识、该用户请求授权该服务器的root权限命令的名称。
2.如权利要求1所述的系统,其特征在于,所述服务器集群为多个,所述数据中心具体包括主数据库服务器,以及多个从数据库服务器;每个服务器集群分配有一个从数据库服务器与之通信;每个从数据库服务器中的权限信息数据库与所述主数据库服务器中的权限信息数据库同步;以及所述授权管理服务器具体用于根据生成的数据库操作语句,更新所述主数据库服务器的权限信息数据库中的记录。
3.如权利要求1或2所述的系统,其特征在于,所述用户权限的信息还包括用户组的名称,该用户组的用户请求授权的服务器的服务器标识、该用户组的用户请求授权该服务器的root权限命令集合的名称;其中,所述用户组中包括多个用户名,所述root权限命令集合中包括多个root权限命令的名称。
4.一种用户root权限集中管理方法,包括服务器集群中的服务器在用户登录输入root权限命令后,根据该用户登录的用户名生成查询条件,向数据中心发送携带所述查询条件的查询请求;所述数据中心根据接收的查询请求,将权限信息数据库中与所述查询条件相匹配的用户权限的信息作为查询结果返回;所述服务器根据返回的查询结果确认权限验证是否通过;若确认通过,则执行输入的 root权限命令;其中,所述数据中心的权限信息数据库中的记录是由授权管理服务器更新的所述授权管理服务器接收具有root权限的管理员输入的用户权限修改信息后,生成相应的数据库操作语句;并根据生成的数据库操作语句,更新所述数据中心的权限信息数据库中的记录。
5.如权利要求4所述的方法,其特征在于,所述服务器根据返回的查询结果确认权限验证是否通过具体为所述服务器根据返回的查询结果,从中查找是否有与输入的root权限命令的名称、本服务器的服务器标识相匹配的用户权限的信息;若有,确认通过;否则,确认不通过。
6.如权利要求4所述的方法,其特征在于,所述查询条件中还包括本服务器的服务器标识;以及 所述服务器根据返回的查询结果确认权限验证是否通过具体为 所述服务器根据返回的查询结果,从中查找是否有与输入的root权限命令的名称相匹配的用户权限的信息;若有,确认通过;否则,确认不通过。
7.如权利要求4所述的方法,其特征在于,所述查询条件中还包括本服务器的服务器标识、输入的root权限命令的名称;以及 所述服务器根据返回的查询结果确认权限验证是否通过具体为 所述服务器接收的查询结果中若包含有用户权限的信息,则确认通过;否则,确认不通过。
8.如权利要求4-7任一所述的方法,其特征在于,所述数据中心具体包括主数据库服务器,以及多个从数据库服务器;以及 所述服务器集群为多个,每个服务器集群分配有一个从数据库服务器与之通信;以及所述根据生成的数据库操作语句,更新所述数据中心的权限信息数据库中的记录具体包括 所述授权管理服务器根据生成的数据库操作语句,更新所述主数据库服务器中的权限信息数据库中的记录; 所述主数据库服务器将更新数据同步到各从数据库服务器;以及 所述使用该查询条件查询与所述服务器集群通信的数据中心的权限信息数据库具体为 所述服务器集群中的服务器使用该查询条件查询与本服务器所在服务器集群通信的从数据库服务器中的权限信息数据库。
9.如权利要求8所述的方法,其特征在于,所述用户权限的信息还包括用户组的名称,该用户组的用户请求授权的服务器的服务器标识、该用户组的用户请求授权该服务器的root权限命令集合的名称;其中,所述用户组中包括多个用户名,所述root权限命令集合中包括多个root权限命令的名称。
10.如权利要求9所述的方法,其特征在于,所述授权管理服务器接收具有root权限的管理员输入的用户权限修改信息后,生成相应的数据库操作语句,具体包括 所述授权管理服务器接收具有root权限的管理员输入的用户权限修改信息后,调用与所述用户权限修改信息中修改类型相应的API函数,根据所述用户权限修改信息中的用户权限的信息生成相应的数据库操作语句。
全文摘要
本发明公开了一种用户root权限集中管理系统和管理方法,所述系统包括授权管理服务器、数据中心,以及服务器集群;其中,所述授权管理服务器接收用户权限修改信息后,更新数据中心的权限信息数据库中的记录;所述服务器集群中的服务器在用户登录、输入root权限命令后,根据该用户登录的用户名、输入的root权限命令的名称、服务器标识生成查询条件,使用该查询条件查询数据中心;根据查询结果,决定是否执行root权限命令。由于将用户权限信息存储在数据中心,由数据中心统一对服务器集群中的各服务器的用户root权限进行集中管理,而不必在每台服务器的配置文件中存储有所有的用户权限信息;从而大大节约了系统中的资源。
文档编号H04L29/06GK103067463SQ201210557359
公开日2013年4月24日 申请日期2012年12月19日 优先权日2012年12月19日
发明者聂彦超, 陈尔冬 申请人:新浪网技术(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1