基于sudo的权限配置方法、装置、电子设备及存储介质与流程

文档序号:17235138发布日期:2019-03-30 08:18阅读:187来源:国知局
基于sudo的权限配置方法、装置、电子设备及存储介质与流程

本发明涉及网络安全技术领域,具体涉及一种基于sudo的权限配置方法、装置、电子设备及存储介质。



背景技术:

近年来,在物联网、云计算等互联网信息技术高速发展的背景下,web应用也呈指数级增长,网络安全问题也引起了越来越多的关注。如果web应用在需求、设计、开发过程中产生的安全漏洞未在集成测试阶段被发现并整改,将给公司和用户造成损失。

目前,web应用程序中较常见的安全漏洞是越权漏洞,越权漏洞是一种逻辑漏洞,是指由于程序员疏忽,没有对某个操作所需的权限/用户进行严格的限制,导致本应没有操作权限的用户可正常进行操作。其威胁在于攻击者使用一个合法的账户,即可对存在越权缺陷漏洞的其他账户数据进行非法的操作,例如查询、插入、删除、修改等常规数据库命令。由于越权操作仍是一种正常的访问行为,安全网关设备无法区分出正常应用和异常应用,因此,越权漏洞发现难度大,且无法像其它攻击可以通过自动化测试环境检测发现。

因而,有必要解决在最初配置权限时,尤其是通过sudo为低权限用户配置高权限用户的权限时的技术问题。



技术实现要素:

鉴于以上内容,有必要提出一种基于sudo的权限配置方法、装置、电子设备及存储介质,通过多步确定,能够有效的解决在给低权限用户授权过程中存在的安全隐患。

本发明的第一方面提供一种基于sudo的权限配置方法,应用于电子设备中,所述方法包括:

接收第一权限用户的权限配置请求时,判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本;

当确定所述/etc/sudoers文件下存在对应所述权限配置请求中的命令的脚本时,根据所述第一权限用户的用户权限,判断所述/etc/sudoers文件下对应所述命令的脚本能否被所述第一权限用户编辑;

当确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑时,修改所述/etc/sudoers文件下的所述脚本对应的用户权限;

当确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑时,根据所述权限配置请求,通过sudo为所述第一权限用户配置第二权限。

根据本发明的一个优选实施例,所述判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本包括:

获取所述权限配置请求中的命令;

根据预先设置的命令与/etc/sudoers文件下的脚本之间的对应关系,判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本。

根据本发明的一个优选实施例,判断所述/etc/sudoers文件下对应所述命令的脚本能否被所述第一权限用户编辑包括:

获取所述权限配置请求中的用户权限;

根据预先设置的所述/etc/sudoers文件下脚本与用户权限之间的对应关系,当判断所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限为第一权限时,确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑;

当判断所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限不为第一权限时,确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑。

根据本发明的一个优选实施例,所述根据所述权限配置请求,通过sudo为所述第一权限用户配置第二权限包括:

根据所述权限配置请求过滤出所述/etc/sudoers文件中配置的目录;

获取过滤后的目录中的命令;

根据所述命令配置第二权限。

根据本发明的一个优选实施例,所述方法还包括:

为所述脚本配置root属主,权限至多为550;

自定义所述脚本上层目录属主为root,且当前用户不可写。

根据本发明的一个优选实施例,所述方法还包括:

当接收到所述第一权限用户的访问请求时,判断配置在所述/etc/sudoers文件下的对应所述命令的脚本为软链接还是硬链接;

当确定配置在所述/etc/sudoers文件下的对应所述命令的脚本为软连接时,对所述脚本进行风险提示。

根据本发明的一个优选实施例,当确定所述/etc/sudoers文件下不存在对应所述权限配置请求中的命令的脚本时,所述方法还包括:

向所述第一权限用户返回权限配置请求失败的提示信息。

本发明的第二方面提供一种基于sudo的权限配置装置,运行于电子设备中,所述装置包括:

接收模块,用于接收第一权限用户的权限配置请求;

第一判断模块,用于判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本;

第二判断模块,用于当所述第一判断模块确定所述/etc/sudoers文件下存在对应所述权限配置请求中的命令的脚本时,根据所述第一权限用户的用户权限,判断所述/etc/sudoers文件下对应所述命令的脚本能否被所述第一权限用户编辑;

修改模块,用于当所述第二判断模块确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑时,修改所述/etc/sudoers文件下的所述脚本对应的用户权限;

配置模块,用于当所述第二判断模块确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑时,根据所述权限配置请求,通过sudo为所述第一权限用户配置第二权限。

本发明的第三方面提供一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述基于sudo的权限配置方法。

本发明的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时所述基于sudo的权限配置方法。

本发明所述的基于sudo的权限配置方法、装置、电子设备及存储介质,通过sudo为系统中的低权限用户配置高权限用户的权限时,先判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本;在确定所述/etc/sudoers文件下存在对应所述权限配置请求中的命令的脚本时,再根据所述第一权限用户的用户权限,判断所述/etc/sudoers文件下对应所述命令的脚本能否被所述第一权限用户编辑;当确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑时,修改所述/etc/sudoers文件下的所述脚本对应的用户权限;当确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑时,根据所述权限配置请求,通过sudo为所述第一权限用户配置第二权限。通过多步确定,能够有效的解决在给低权限用户授权过程中存在的安全隐患,防止低权限用户实施非法信息获取、数据篡改、违规操作等恶意攻击行为,提高了网络信息安全。

附图说明

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

图1是本发明实施例一提供的基于sudo的权限配置方法的流程图。

图2是本发明实施例二提供的基于sudo的权限配置装置的结构图。

图3是本发明实施例三提供的电子设备的示意图。

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

优选地,本发明的基于sudo的权限配置方法应用在一个或者多个电子设备或者服务器中。所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述电子设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述电子设备可以与客户客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

实施例一

图1是本发明实施例一提供的基于sudo的权限配置方法的流程图。

在本实施例中,所述基于sudo的权限配置方法可以应用于具备显示功能的电子设备或者固定电子设备中,所述电子设备并不限定于个人电脑、智能手机、平板电脑、安装有摄像头的台式机或一体机等。

所述基于sudo的权限配置方法也可以应用于由电子设备和通过网络与所述电子设备进行连接的服务器所构成的硬件环境中。网络包括但不限于:广域网、城域网或局域网。本发明实施例的基于sudo的权限配置方法可以由服务器来执行,也可以由电子设备来执行,还可以是由服务器和电子设备共同执行。

例如,对于需要进行基于sudo的权限配置的电子设备,可以直接在电子设备上集成本发明的方法所提供的基于sudo的权限配置功能,或者安装用于实现本发明的方法的客户端。再如,本发明所提供的方法还可以软件开发工具包(softwaredevelopmentkit,sdk)的形式运行在服务器等设备上。

如图1所示,所述基于sudo的权限配置方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。

s11:接收第一权限用户的权限配置请求。

本实施例中,第一权限用户请求配置权限时,可以向终端发送权限配置请求,请求获取权限。所述权限配置请求中携带有第一权限用户的用户权限。

本实施例中,终端可以预先提供显示界面,所述显示界面上显示了多个权限选项文本框。所述多个权限选项文本框可以包括,但不限于:请求的主机名文本框,请求的执行命令或者脚本的标识文本框,请求运行的命令文本框等。第一权限用户可以通过在多个权限选项文本框中输入对应的权限以向所述终端发送权限配置请求。

终端接收到多个权限选项文本框中输入的文本后,将多个文本进行组合后生成权限配置请求。示例性的,终端接收到请求的主机名文本框中输入的主机名all,接收到请求运行的命名文本框中输入的运行的命名为/etc/test111.sh,则终端将主机名为all和运行的命名为/etc/test111.sh进行组合生成权限配置请求为:主机名“all”&运行的命名“/etc/test111.sh”。

s12:判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本。

具体的,所述判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本可以包括:

获取所述权限配置请求中的命令;

根据预先设置的命令与/etc/sudoers文件下的脚本之间的对应关系,判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本。

本实施例中,配置在所述/etc/sudoers文件下的命令和脚本同时存在,即配置在所述/etc/sudoers文件下的命令和脚本是一一对应的。终端还可以预先设置命令与/etc/sudoers文件下的脚本之间的对应关系。当接收到第一权限用户的权限配置请求时,获取所述权限配置请求中的命令,根据所述命令判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本。当在所述/etc/sudoers文件下存在与所述权限配置请求中的命令相同的命令时,确定/etc/sudoers文件下存在对应所述权限配置请求中的命令的脚本。当在所述/etc/sudoers文件下不存在与所述权限配置请求中的命令相同的命令时,确定/etc/sudoers文件下不存在对应所述权限配置请求中的命令的脚本。

举例说明:在sudoers文件中配置了:zxnall=(root)nopasswd:/etc/test111.sh,但是系统中不存在test111.sh,切换到zxn用户后创建文件test111.sh,往文件中写入catshadow。这样zxn用户在/etc目录下执行sudo./test111.sh时就能打印出shadow文件中的内容

当确定所述/etc/sudoers文件下存在对应所述权限配置请求中的命令的脚本时,执行步骤s13。

当确定所述/etc/sudoers文件下不存在对应所述权限配置请求中的命令的脚本时,可以直接结束流程。或者,向所述第一权限用户返回权限配置请求失败的提示信息,提示所述第一权限用户,请求失败,避免所述第一权限用户一直等待权限配置。

s13:根据所述第一权限用户的用户权限,判断所述/etc/sudoers文件下对应所述命令的脚本能否被所述第一权限用户编辑。

具体的,判断所述/etc/sudoers文件下对应所述命令的脚本能否被所述第一权限用户编辑可以包括:

获取所述权限配置请求中的用户权限;

根据预先设置的所述/etc/sudoers文件下脚本与用户权限之间的对应关系,当判断所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限为第一权限时,确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑;

当判断所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限不为第一权限时,确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑。

本实施例中,终端可以预先设置所述/etc/sudoers文件下脚本与用户权限之间的对应关系。例如,所述/etc/sudoers文件下的第一脚本对应第一用户权限,所述/etc/sudoers文件下的第二脚本对应第二用户权限,所述/etc/sudoers文件下的第三脚本对应第三用户权限。所述权限是指可编辑的权限,例如,修改,删除,插入等。即拥有第一用户权限的用户能够编辑第一脚本,拥有第二用户权限的用户能够编辑第二脚本。

终端接收到权限配置请求后,获取所述权限配置请求中的用户权限,根据预先设置的脚本与用户权限之间的对应关系,判断所述/etc/sudoers文件下对应所述命令的脚本能否被第一权限用户编辑。

当判断所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限为第一权限时,确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑;

当判断所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限不为第一权限时,确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑。

当确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑时,执行步骤s14;否则,当确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑时,执行步骤s15。

s14:修改所述/etc/sudoers文件下的所述脚本对应的用户权限。

如果所述/etc/sudoers文件下对应所述命令的脚本能被第一权限用户编辑,则修改所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限。例如,第一脚本对应第一用户权限,发送权限配置请求的第一权限用户的用户权限为第一用户权限,则表明第一权限用户可以编辑第一脚本,此时需要将所述第一脚本与第一用户权限之间的对应关系进行修改,例如将第一用户权限修改为第二用户权限。如此可避免拥有第一用户权限的用户对第一脚本进行编辑,造成第一脚本数据损坏。

s15:根据所述权限配置请求,通过sudo为所述第一权限用户配置第二权限。

终端接收到第一权限用户的权限配置请求时,根据所述权限配置请求中的主机名、请求执行命令或者脚本的身份、请求运行的命令,通过sudo为第一权限用户配置对应的第二权限。所述第二权限包括:运行第一权限用户使用的主机名、请求执行命令或者脚本的标识、请求运行的命令。

本实施例中,所述第一权限可以为低权限,所述第二权限可以为高权限(例如,root权限)。所述高权限是相对于所述低权限而言的。所述第二权限用户可以是指具有所有操作权限的用户,例如,具有读取、查询、插入、删除、修改等操作权限。所述第一权限用户可以是指具有部分操作权限的用户,例如,仅具有读取操作权限或者查询操作权限。终端通过sudo可以为低权限用户配置高权限用户的权限,即为第一权限用户配置第二权限。

sudo是linux系统的指令,通过sudo的配置可以获取到root用户的一些权限,比如查看或者编辑root属主的文件;或者执行root命令:halt,reboot;或者是启动系统服务等等。通过sudo配置不仅可以减少root或者其他高级用户的登陆和管理时间,还可提高网络安全性。

sudo的配置文件是sudoers文件,默认路径是/etc/sudoers。

具体地,所述根据所述权限配置请求,通过sudo为所述第一权限用户配置第二权限可以包括:

根据所述权限配置请求过滤出所述/etc/sudoers文件中配置的目录;

获取过滤后的目录中的命令;

根据所述命令配置第二权限。

下面用一个实例来详细解释如何通过/etc/sudoers文件为第一权限用户配置第二权限:

zxnall=(root)nopasswd:/user/bin/who

1234

位置1表示sudo配置的对象,所述对象可以是用户或者用户组,例如,创建第一权限用户zxn。需要说明的是,系统中有可能存在用户和用户组重名的情况,因而如果通过sudo配置的对象是用户组而不是用户的话,需在用户组对象名称前用%开头表示。

位置2表示sudo配置的主机名,all代表为用户配置了所有主机的权限。如果不想为用户配置所有主机的权限,可将all替换为对应的主机名。例如,sudo为第一权限用户zxn配置了所有主机的权限。

位置3表示sudo为位置1的用户或者用户组配置的执行命令或者脚本的身份。例如,sudo配置第一权限用户zxn以root的身份执行命令或者脚本。

位置4的值表示请求运行的命令。即请求运行的命令能被位置1的用户以位置3的身份来运行。例如,sudo配置第一权限用户zxn作为root用户运行/usr/bin/who命令。

本实施例中,通过sudo为第一权限用户配置第二权限时,需具体到命令,否则当配置不当时,容易导致权限扩大引发安全隐患。例如,第一权限用户只需要请求/user/bin目录下who文件的读取权限,而终端通过sudo配置了整个/user/bin目录下所有文件的读取权限,将会导致其他文件存在安全隐患。如果配置zxnall=(root)nopasswd:/user/bin,则第一权限用户zxn不仅能获取user/bin目录下的who命令的权限,也能获取到user/bin目录下的whoami命令的权限,以及/user/bin目录下所有命令的权限。因此,给低级用户配置高级用户的系统命令时,在位置4处填写需要的高级用户的权限,一定要指定范围,确保做到权限最小化。

优选地,所述方法还可以包括:

为所述脚本配置root属主,权限至多为550;

自定义所述脚本上层目录属主为root,且当前用户不可写。

若需为所述脚本配置非root属主,可以使用chattr+i来防止脚本被篡改;同时如果上层或者上上层目录不是root属主,也需要使用chattr+i来防止脚本被篡改。

进一步的,在所述步骤s15之后,所述方法还可以包括:

当接收到所述第一权限用户的访问请求时,判断配置在所述/etc/sudoers文件下的对应所述命令的脚本为软链接还是硬链接;

当确定配置在所述/etc/sudoers文件下的对应所述命令的脚本为软连接时,对所述脚本进行风险提示。

例如,在/etc/sudoers中配置的脚本softlink.sh是软链接脚本,用户可以修改,而且softlink.sh软链接到soft.sh是root属主脚本,所以修改softlink.sh脚本就可以达到修改soft.sh脚本的目的,并且以root执行soft.sh脚本,通过执行softlink.sh脚本获取shadow文件内容。因此,如果在sudoers中配置非root文件或者目录,引用时需要判断路径是否有做防软硬链接。

本发明的有益效果为:

通过sudo为系统中的低权限用户配置高权限用户的权限时,先判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本;在确定所述/etc/sudoers文件下存在对应所述权限配置请求中的命令的脚本时,再根据所述第一权限用户的用户权限,判断所述/etc/sudoers文件下对应所述命令的脚本能否被所述第一权限用户编辑;当确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑时,修改所述/etc/sudoers文件下的所述脚本对应的用户权限;当确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑时,根据所述权限配置请求,通过sudo为所述第一权限用户配置第二权限。通过多步确定,能够有效的解决在给低权限用户授权过程中存在的安全隐患,防止低权限用户实施非法信息获取、数据篡改、违规操作等恶意攻击行为,提高了网络信息安全。

上述图1详细介绍了本发明的基于sudo的权限配置方法,下面结合第2~3图,分别对实现所述基于sudo的权限配置方法的软件装置的功能模块以及实现所述基于sudo的权限配置方法的硬件装置架构进行介绍。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

实施例二

参阅图2所示,是本发明基于sudo的权限配置装置的较佳实施例中的功能模块图。

在一些实施例中,所述基于sudo的权限配置装置20运行于电子设备中。所述基于sudo的权限配置装置20可以包括多个由程序代码段所组成的功能模块。所述基于sudo的权限配置装置20中的各个程序段的程序代码可以存储于电子设备的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)基于sudo的权限配置。

本实施例中,所述基于sudo的权限配置装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块201、第一判断模块202、第二判断模块203、修改模块204、配置模块20及第三判断模块206。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

接收模块201,用于接收第一权限用户的权限配置请求。

本实施例中,第一权限用户请求配置权限时,可以向终端发送权限配置请求,请求获取权限。所述权限配置请求中携带有第一权限用户的用户权限。

本实施例中,终端可以预先提供显示界面,所述显示界面上显示了多个权限选项文本框。所述多个权限选项文本框可以包括,但不限于:请求的主机名文本框,请求的执行命令或者脚本的标识文本框,请求运行的命令文本框等。第一权限用户可以通过在多个权限选项文本框中输入对应的权限以向所述终端发送权限配置请求。

接收模块201接收到多个权限选项文本框中输入的文本后,将多个文本进行组合后生成权限配置请求。示例性的,接收模块201接收到请求的主机名文本框中输入的主机名all,接收到请求运行的命名文本框中输入的运行的命名为/etc/test111.sh,则接收模块201将主机名为all和运行的命名为/etc/test111.sh进行组合生成权限配置请求为:主机名“all”&运行的命名“/etc/test111.sh”。

第一判断模块202,用于判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本。

具体的,所述第一判断模块202判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本可以包括:

获取所述权限配置请求中的命令;

根据预先设置的命令与/etc/sudoers文件下的脚本之间的对应关系,判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本。

本实施例中,配置在所述/etc/sudoers文件下的命令和脚本同时存在,即配置在所述/etc/sudoers文件下的命令和脚本是一一对应的。终端还可以预先设置命令与/etc/sudoers文件下的脚本之间的对应关系。当接收到第一权限用户的权限配置请求时,获取所述权限配置请求中的命令,根据所述命令判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本。当在所述/etc/sudoers文件下存在与所述权限配置请求中的命令相同的命令时,确定/etc/sudoers文件下存在对应所述权限配置请求中的命令的脚本。当在所述/etc/sudoers文件下不存在与所述权限配置请求中的命令相同的命令时,确定/etc/sudoers文件下不存在对应所述权限配置请求中的命令的脚本。

举例说明:在sudoers文件中配置了:zxnall=(root)nopasswd:/etc/test111.sh,但是系统中不存在test111.sh,切换到zxn用户后创建文件test111.sh,往文件中写入catshadow。这样zxn用户在/etc目录下执行sudo./test111.sh时就能打印出shadow文件中的内容

所述第一判断模块202还可以用于确定所述/etc/sudoers文件下不存在对应所述权限配置请求中的命令的脚本时,向所述第一权限用户返回权限配置请求失败的提示信息,提示所述第一权限用户,请求失败,避免所述第一权限用户一直等待权限配置。

第二判断模块203,用于当所述第一判断模块202当确定所述/etc/sudoers文件下存在对应所述权限配置请求中的命令的脚本时,根据所述第一权限用户的用户权限,判断所述/etc/sudoers文件下对应所述命令的脚本能否被所述第一权限用户编辑。

具体的,所述第二判断模块203判断所述/etc/sudoers文件下对应所述命令的脚本能否被所述第一权限用户编辑可以包括:

获取所述权限配置请求中的用户权限;

根据预先设置的所述/etc/sudoers文件下脚本与用户权限之间的对应关系,当判断所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限为第一权限时,确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑;

当判断所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限不为第一权限时,确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑。

本实施例中,终端可以预先设置所述/etc/sudoers文件下脚本与用户权限之间的对应关系。例如,所述/etc/sudoers文件下的第一脚本对应第一用户权限,所述/etc/sudoers文件下的第二脚本对应第二用户权限,所述/etc/sudoers文件下的第三脚本对应第三用户权限。所述权限是指可编辑的权限,例如,修改,删除,插入等。即拥有第一用户权限的用户能够编辑第一脚本,拥有第二用户权限的用户能够编辑第二脚本。

终端接收到权限配置请求后,获取所述权限配置请求中的用户权限,根据预先设置的脚本与用户权限之间的对应关系,判断所述/etc/sudoers文件下对应所述命令的脚本能否被第一权限用户编辑。

当所述第二判断模块203判断所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限为第一权限时,确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑;

当所述第二判断模块203判断所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限不为第一权限时,确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑。

修改模块204,用于当所述第二判断模块203确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑时,修改所述/etc/sudoers文件下的所述脚本对应的用户权限。

如果所述/etc/sudoers文件下对应所述命令的脚本能被第一权限用户编辑,则修改所述/etc/sudoers文件下对应所述命令的脚本对应的用户权限。例如,第一脚本对应第一用户权限,发送权限配置请求的第一权限用户的用户权限为第一用户权限,则表明第一权限用户可以编辑第一脚本,此时需要将所述第一脚本与第一用户权限之间的对应关系进行修改,例如将第一用户权限修改为第二用户权限。如此可避免拥有第一用户权限的用户对第一脚本进行编辑,造成第一脚本数据损坏。

配置模块205,用于当所述第二判断模块203确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑时,根据所述权限配置请求,通过sudo为所述第一权限用户配置第二权限。

终端接收到第一权限用户的权限配置请求时,根据所述权限配置请求中的主机名、请求执行命令或者脚本的身份、请求运行的命令,通过sudo为第一权限用户配置对应的第二权限。所述第二权限包括:运行第一权限用户使用的主机名、请求执行命令或者脚本的标识、请求运行的命令。

本实施例中,所述第一权限可以为低权限,所述第二权限可以为高权限(例如,root权限)。所述高权限是相对于所述低权限而言的。所述第二权限用户可以是指具有所有操作权限的用户,例如,具有读取、查询、插入、删除、修改等操作权限。所述第一权限用户可以是指具有部分操作权限的用户,例如,仅具有读取操作权限或者查询操作权限。终端通过sudo可以为低权限用户配置高权限用户的权限,即为第一权限用户配置第二权限。

sudo是linux系统的指令,通过sudo的配置可以获取到root用户的一些权限,比如查看或者编辑root属主的文件;或者执行root命令:halt,reboot;或者是启动系统服务等等。通过sudo配置不仅可以减少root或者其他高级用户的登陆和管理时间,还可提高网络安全性。

sudo的配置文件是sudoers文件,默认路径是/etc/sudoers。

具体地,所述根据所述权限配置请求,通过sudo为所述第一权限用户配置第二权限可以包括:

根据所述权限配置请求过滤出所述/etc/sudoers文件中配置的目录;

获取过滤后的目录中的命令;

根据所述命令配置第二权限。

下面用一个实例来详细解释如何通过/etc/sudoers文件为第一权限用户配置第二权限:

zxnall=(root)nopasswd:/user/bin/who

1234

位置1表示sudo配置的对象,所述对象可以是用户或者用户组,例如,创建第一权限用户zxn。需要说明的是,系统中有可能存在用户和用户组重名的情况,因而如果通过sudo配置的对象是用户组而不是用户的话,需在用户组对象名称前用%开头表示。

位置2表示sudo配置的主机名,all代表为用户配置了所有主机的权限。如果不想为用户配置所有主机的权限,可将all替换为对应的主机名。例如,sudo为第一权限用户zxn配置了所有主机的权限。

位置3表示sudo为位置1的用户或者用户组配置的执行命令或者脚本的身份。例如,sudo配置第一权限用户zxn以root的身份执行命令或者脚本。

位置4的值表示请求运行的命令。即请求运行的命令能被位置1的用户以位置3的身份来运行。例如,sudo配置第一权限用户zxn作为root用户运行/usr/bin/who命令。

本实施例中,通过sudo为第一权限用户配置第二权限时,需具体到命令,否则当配置不当时,容易导致权限扩大引发安全隐患。例如,第一权限用户只需要请求/user/bin目录下who文件的读取权限,而终端通过sudo配置了整个/user/bin目录下所有文件的读取权限,将会导致其他文件存在安全隐患。如果配置zxnall=(root)nopasswd:/user/bin,则第一权限用户zxn不仅能获取user/bin目录下的who命令的权限,也能获取到user/bin目录下的whoami命令的权限,以及/user/bin目录下所有命令的权限。因此,给低级用户配置高级用户的系统命令时,在位置4处填写需要的高级用户的权限,一定要指定范围,确保做到权限最小化。

优选地,所述配置模块205还可以用于:

为所述脚本配置root属主,权限至多为550;

自定义所述脚本上层目录属主为root,且当前用户不可写。

若需为所述脚本配置非root属主,可以使用chattr+i来防止脚本被篡改;同时如果上层或者上上层目录不是root属主,也需要使用chattr+i来防止脚本被篡改。

进一步的,所述基于sudo的权限配置装置20还可以包括第三判断模块206,

当接收到所述第一权限用户的访问请求时,判断配置在所述/etc/sudoers文件下的对应所述命令的脚本为软链接还是硬链接;

当确定配置在所述/etc/sudoers文件下的对应所述命令的脚本为软连接时,对所述脚本进行风险提示。

例如,在/etc/sudoers中配置的脚本softlink.sh是软链接脚本,用户可以修改,而且softlink.sh软链接到soft.sh是root属主脚本,所以修改softlink.sh脚本就可以达到修改soft.sh脚本的目的,并且以root执行soft.sh脚本,通过执行softlink.sh脚本获取shadow文件内容。因此,如果在sudoers中配置非root文件或者目录,引用时需要判断路径是否有做防软硬链接。

本发明的有益效果为:

通过sudo为系统中的低权限用户配置高权限用户的权限时,先判断/etc/sudoers文件下是否存在对应所述权限配置请求中的命令的脚本;在确定所述/etc/sudoers文件下存在对应所述权限配置请求中的命令的脚本时,再根据所述第一权限用户的用户权限,判断所述/etc/sudoers文件下对应所述命令的脚本能否被所述第一权限用户编辑;当确定所述/etc/sudoers文件下对应所述命令的脚本能被所述第一权限用户编辑时,修改所述/etc/sudoers文件下的所述脚本对应的用户权限;当确定所述/etc/sudoers文件下对应所述命令的脚本不能被所述第一权限用户编辑时,根据所述权限配置请求,通过sudo为所述第一权限用户配置第二权限。通过多步确定,能够有效的解决在给低权限用户授权过程中存在的安全隐患,防止低权限用户实施非法信息获取、数据篡改、违规操作等恶意攻击行为,提高了网络信息安全。

实施例三

参阅图3所示,为本发明实施例提供的电子设备的结构示意图。在本发明较佳实施例中,所述电子设备3包括存储器31、至少一个处理器32、至少一条通信总线33及显示屏幕34。

本领域技术人员应该了解,图3示出的电子设备的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述电子设备3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。

在一些实施例中,所述电子设备3包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器、嵌入式设备等。所述电子设备3还可包括客户客户设备,所述客户客户设备包括但不限于任何一种可与客户客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。

需要说明的是,所述电子设备3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。

在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述电子设备3中的基于sudo的权限配置装置20,并在电子设备3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(read-onlymemory,rom)、随机存储器(randomaccessmemory,ram)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、一次可编程只读存储器(one-timeprogrammableread-onlymemory,otprom)、电子擦除式可复写只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述电子设备3的控制核心(controlunit),利用各种接口和线路连接整个电子设备3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行电子设备3的各种功能和处理数据,例如执行基于sudo的权限配置的功能。

在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31、所述至少一个处理器32以及所述显示屏幕34等之间的连接通信。

在一些实施例中,所述显示屏幕34可用于显示由观看者输入的信息或提供给观看者的信息以及电子设备3的各种图形观看者接口,这些图形观看者接口可以由图形、文本、图标、视频和其任意组合来构成。所述显示屏幕34可包括显示面板,可选的,可以采用液晶显示屏幕(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板。

所述显示屏幕34还可以包括触摸面板。如果所述显示屏幕34包括触摸面板,所述显示屏幕34可以被实现为触摸屏,以接收来自观看者的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。上述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与上述触摸或滑动操作相关的持续时间和压力。所述显示面板与所述触摸面板可以作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将所述显示面板与所述触摸面板进行集成而实现输入和输出功能。

尽管未示出,所述电子设备3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备3还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。

在进一步的实施例中,结合图1,所述至少一个处理器32可执行所述电子设备3的操作装置以及安装的各类应用程序(如所述的基于sudo的权限配置装置20)、程序代码等,例如,上述的各个模块。

所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到基于sudo的权限配置的目的。

在本发明的一个实施例中,所述存储器31存储多个指令,所述多个指令被所述至少一个处理器32所执行以基于sudo进行权限配置。

具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

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