CN108090345B - linux系统外部命令执行方法及装置 - Google Patents
linux系统外部命令执行方法及装置 Download PDFInfo
- Publication number
- CN108090345B CN108090345B CN201611041334.9A CN201611041334A CN108090345B CN 108090345 B CN108090345 B CN 108090345B CN 201611041334 A CN201611041334 A CN 201611041334A CN 108090345 B CN108090345 B CN 108090345B
- Authority
- CN
- China
- Prior art keywords
- command
- target file
- file
- configuration information
- executing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种linux系统外部命令执行方法及装置,属于系统安全管理领域。所述linux系统外部命令执行方法包括:生成目标文件,所述目标文件用于执行系统外部命令;定时检测是否存在目标文件;当检测到存在目标文件时,对目标文件进行校验;若校验成功,则根据目标文件执行外部命令。本发明通过定时运行的脚本实现外部命令的安全执行,无需额外部署脚本服务器和开发资源;且由脚本语言动态生成敏感信息,并在读取后删除,提高代码的安全性;适用于所有禁用系统外部命令函数的linux服务器,应用范围广,增加整体的安全性。
Description
技术领域
本发明涉及系统安全管理领域,特别涉及一种linux系统外部命令执行方法及装置。
背景技术
Linux命令分为内部命令和外部命令,内部命令是在系统启动时就调入内存的,外部命令是用户需要时从硬盘中读入内存的,需要执行系统外部命令函数来调用外部命令,在linux服务器下运行的脚本语言,出于安全考虑一般会禁用执行系统外部命令的函数,如php的exec、system等函数,禁用的设置方法为打开配置文件,查找到disable_functions,在该函数下添加需禁用的函数名。
在这种情况下,为了满足脚本语言执行外部系统命令的需求,现有的解决方案是单独搭建一台或一套内部的专用服务器,出于安全考虑,该专用服务器会设置iptables,从而只允许内部服务器访问,该专用服务器不会禁止脚本语言执行外部系统命令,当外部服务器即可被用户访问的服务器需要执行外部系统命令时,会通过调用该专用服务器预设的接口来实现。
现有技术至少存在以下缺点:
1、需要额外部署一台或一套服务器,增加硬件成本;
2、额外部署的服务器限定ip,因此维护该服务器需要跳板机或VPN(VirtualPrivate Network,虚拟专用网络)来实现,增加维护成本;
3、为了实现连接超时、防注入等功能,需要实现一套接口中间件,增加开发成本;
4、由于该服务器没有禁用脚本语言执行系统外部命令的函数,所以一旦发生注入就可以执行所有系统命令,存在安全隐患。
发明内容
为了解决现有技术的问题,本发明提供了一种linux系统外部命令执行方法及装置,无需额外部署脚本服务器和开发资源,代码安全性高,应用范围广。所述技术方案如下:
一方面,本发明提供了一种linux系统外部命令执行方法,所述方法包括:
生成目标文件,所述目标文件用于执行系统外部命令;
定时检测是否存在目标文件;
当检测到存在目标文件时,对目标文件进行校验;
若校验成功,则根据目标文件执行外部命令。
具体地,所述目标文件为命令文件或配置信息文件,进一步地,所述生成目标文件包括:在有写权限的系统目录下写入执行命令或者新建配置信息文件。
进一步地,本发明提供的linux系统外部命令执行方法还包括:在执行目标文件之后,删除所述目标文件。
进一步地,所述根据目标文件执行外部命令包括:若所述目标文件为命令文件,则执行相应命令;若所述目标文件为配置信息文件,则读取配置信息,进而根据所述配置信息生成命令并执行命令。
进一步地,所述对目标文件进行校验包括:读取所述目标文件,若所述目标文件的内容为合法命令或者根据所述目标文件的内容能够生成合法命令,则校验成功,否则校验失败。
具体地,对目标文件进行校验之前还包括:预设合法命令库,所述合法命令库用于存放设定的合法命令。
进一步地,所述定时检测是否存在目标文件包括:通过定时脚本检查目标文件,所述定时脚本由定时任务配置命令管理。
另一方面,本发明提供了一种系统外部命令执行装置,所述装置包括:
写入模块,用于生成目标文件,所述目标文件用于执行系统外部命令;
检测模块,用于定时检测是否存在目标文件;
校验模块,用于对目标文件进行校验;
执行模块,用于根据目标文件执行外部命令。
具体地,所述目标文件为命令文件或配置信息文件,进一步地,所述写入模块用于在有写权限的系统目录下写入执行命令或者新建配置信息文件。
进一步地,本发明提供的linux系统外部命令执行装置还包括删除模块,用于在执行目标文件之后,删除所述目标文件。
可选地,若所述目标文件为命令文件,则执行模块执行相应命令;若所述目标文件为配置信息文件,则执行模块读取配置信息,进而根据所述配置信息生成命令并执行命令。
具体地,所述校验模块的校验内容包括:读取所述目标文件,若所述目标文件的内容为合法命令或者根据所述目标文件的内容能够生成合法命令,则校验成功,否则校验失败。
进一步地,本发明提供的linux系统外部命令执行装置还包括预设模块,用于预设合法命令库,以存放设定的合法命令。
进一步地,所述检测模块包括定时任务子模块,所述定时任务子模块利用定时任务配置命令实现脚本定时执行检查目标文件操作。
本发明提供的技术方案带来的有益效果如下:
1)无需额外部署服务器资源,降低硬件成本;
2)只需要一个实现定时运行的shell脚本,无需额外的开发资源;
3)调用系统命令需要的敏感信息由脚本语言动态生成,所以这些敏感信息只存储在脚本语言中,方便配置提高代码安全,核心脚本语言文件在运行或读取后就会被删除,提高数据安全性;
4)所有服务器都可以禁用脚本语言调用系统外部命令的函数,增加整体安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的linux系统外部命令执行方法及装置的实施环境示意图;
图2是本发明实施例提供的linux系统外部命令执行方法的流程图;
图3是本发明实施例提供的基于web运维平台的数据库备份的方法示意图;
图4是本发明实施例提供的基于web服务的指令执行方法的流程图;
图5是本发明实施例提供的linux系统外部命令执行装置的模块架构图;
图6是本发明实施例提供的linux系统外部命令执行装置的计算机终端的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明提供了一种linux系统外部命令执行方法及装置,参考图1可以看出,其示出了本发明实施例提供的linux系统外部命令执行方法及装置所涉及的实施环境的结构示意图。该实施环境包括配置有用户终端101、执行装置102和数据库103。
其中,执行装置102如下面装置实施例所述,每个用户终端101通过执行装置102进行linux系统外部命令的执行。执行装置102可以配置在用户终端101中,也可以独立于用户终端101而配置。实施环境中可以有一至多个执行装置102,组成一个执行装置的集群,当需要进行linux系统外部命令执行的用户终端101的个数较多时,多个执行装置102可以并行执行操作,从而提高外部命令执行的速度。
数据库103中存储有执行装置102在执行外部命令过程中所需的数据,如数据库的用户名、密码及数据库名字等等。
数据库103除了可以独立于执行装置102和用户终端101配置之外,还可以配置在执行装置102中,使得执行装置102可以直接从自身配置的数据库中获取所需的数据,或者数据库103还可以配置在用户终端101中,使得执行装置102从用户终端101配置的数据库中获取所需的数据,本发明实施例在此不对数据库103的配置方式进行具体限定。
用户终端101与执行装置102之间通过网络进行通信,执行装置102与数据库103之间也通过网络进行通信,该网络可以为无线网络或有线网络,本发明实施例在此不对通信方式进行具体限定。
在本发明的一个实施例中,提供了一种linux系统外部命令执行方法,参见图2,方法流程包括:
S101、生成目标文件。
具体地,所述目标文件用于执行系统外部命令,所述目标文件的生成方式有多种,方式一为在linux系统中有写权限的目录下写入命令,写入的命令即为需要执行的系统外部命令;方式二为在有写权限的目录下新建配置信息文件,所述配置文件中的内容为配置相应指令的参数信息,本发明对能够实现生成目标文件的方式不作具体限定。
S102、定时检测是否存在目标文件。
在linux系统中,定时检测功能可以通过crontab来实现,crontab命令用于设置周期性被执行的指令,所述crontab命令从标准输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行,crontab文件一般位于/etc/下,这里面存放系统运行的调度程序。在本实施例中,通过crontab命令,可以自动定时检查是否存在目标文件,具体地,生成目标文件的过程中,将所述目标文件的文件名设置为预设的名字,并将所述有写权限的目录设置为预设的固定目录。
S103、对目标文件进行校验。
具体地,在预设的目录下查找文件名,当检测到存在所述目标文件时,对其进行校验,校验规则如下:预设一个合法命令库,所述合法命令库中存放设定的合法命令,合法命令的设定方式可以依据特定的业务场景,比如涉及数据库业务的场景下,定义所有Linux中的数据库操作命令以及一些常用的文件命令cd、ls等作为合法命令,也可以宽泛地将所有Linux系统能识别的命令定义为合法命令,这需要根据具体执行外部命令的情况设定,本发明对合法命令的其他设定方式不作具体限定,反之,不在所述合法命令库中的命令为不合法命令;读取目标文件,若所述目标文件的内容为合法命令或者根据所述目标文件的内容能够生成合法命令,则校验成功,否则校验失败。
S104、根据目标文件执行外部命令。
具体地,在校验成功后,若所述目标文件为命令文件,即目标文件的内容为命令,则直接执行该目标文件;若所述目标文件为配置信息文件,则执行所述配置信息生成的相应命令。
需要说明的是,步骤S101-S104的先后顺序不是固定的,比如,步骤S102为定时执行的,如果检测结果为目标文件不存在,则等待一个周期直至下次检测,当步骤S101完成后,执行步骤S102之后才继续执行S103;同理,若S103的校验结果为不通过,即校验失败,则继续定时检测下一个写入的目标文件,直至校验结果通过,才继续执行S104。
在本发明的一个实施例中,为了更有效地进行阐述,本实施例以一个具体的应用场景来举例:在该场景中,用户需要通过点击web页面上的备份按钮来完成数据库备份的操作,图3是本发明实施例提供的基于web运维平台的数据库备份的方法示意图,方法流程包括:
首先,用户在web页面上点击备份按钮,web页面向后台服务,比如向php服务发起备份请求,根据收到的备份请求,利用php脚本语言在指定目录,比如/bin/user/下创建一个新的文件mysql.backup,内容为数据库mysql的连接信息,包括数据库名字、ip、用户名、密码、导出名字等信息,此时,php后台服务向web返回响应,在web页面上向用户提示数据库备份内容正在导出。
进一步地,web页面向php服务询问备份是否导出完毕,这时,php后台服务向linux系统提供一个shell脚本,这个shell脚本通过crontab定时脚本实现定时执行查找文件操作,查找文件可以使用find命令,即将如下指令放入crontab文件:
find/bin/user/-name mysql.backup;
另一方面,crontab文件的格式为“M H D m d Cmd”,其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天),Cmd表示要运行的程序,即为上述find命令,它被送入命令执行文件执行,通过设定M、H、D、m和d这五个参数可以设置crontab的定时执行命令的时间以及频率,具体可以根据用户的实际需求和应用场合来制定。
当find的结果为存在mysql.backup文件时,读取mysql.backup的文件内容,为了提高数据库信息安全性,在读取完mysql.backup的文件内容后,删除mysql.backup文件,这样,使得调用系统命令需要的敏感信息,本实施例中即指数据库连接的账号密码等信息由脚本语言动态生成,这些敏感信息只存储在脚本语言中,方便配置,且能够提高代码安全。
然后,对读取的mysql.backup的文件内容进行校验,如果mysql.backup的文件内容为mysqldump命令,文件内容比如:
mysqldump-umaster-pXXX-hlocalhost-P36000dbname>/data/bak/mysql.sql
或者,文件内容能够生成mysqldump命令,即mysql.backup文件中存有生成mysqldump命令所需的所有参数,文件内容比如:
master
XXX
localhost
36000
dbname
/data/bak/musql.sql,
则校验通过,否则校验不通过。
在校验成功之后,加载所述mysql.backup的文件内容,并执行mysqldump命令或利用其文件内容生成mysqldump命令,并执行mysqldump命令,以对数据库mysql进行数据备份。
将数据库内容备份到指定位置后,php后台服务向web返回响应,并在web页面上向用户显示导出已完成的提示信息,至此,在禁用后台服务执行系统外部命令的linux系统中,完成了web运维的数据库备份操作。
除了上述实施例所述的应用场景,本发明还可以在其他场景中得到应用,比如基于web的运维平台的代码发布、redis重启操作功能等,或者基于web的Sass服务的后台业务初始化、数据恢复等操作功能,基于此,在本发明的一个实施例中,提供了一种基于web服务的指令执行方法,参见图4,所述方法流程包括:
S301、接收请求信号。
所述请求信号由用户在web页面上点击按钮发送相应请求,场景不同,请求不同,比如,redis重启操作对应的就是redis重启请求,业务初始化对应的就是初始化请求。
S302、新建配置文件。
在指定的有写权限的目录下新建配置文件,配置文件中存储的信息为执行与请求任务相应的命令所需要的配置信息。
S303、创建shell脚本定时检测是否存在上述配置文件。
具体地,所述shell定时脚本由定时任务配置命令管理,所述定时任务配置命令具体为crontab命令,所述crontab命令的使用方法如上述实施例说明,在此不再赘述。
S304、判断配置文件是否存在,若存在,则执行S305;若不存在,则返回S303。
若不存在配置文件,则等待下一次的定时脚本检测配置文件,直至检测到配置文件。
S305、读取配置文件。
本实施例中,配置文件内容为生成shell命令的配置参数,读取所述配置参数进行下一步的校验,另一种实施方式为,配置文件内容可以直接设置为shell命令。
S306、删除配置文件。
为了提高数据库信息安全性,在读取完配置文件内容后,删除配置文件,这样,使得调用系统命令需要的敏感信息由脚本语言动态生成,第一时间删除配置文件能够提高代码安全。
S307、对配置文件进行校验。
首先,校验所述配置文件内容是否为合法命令,或者利用配置文件内的配置信息能够生成合法命令,如果是,则校验通过,否则校验失败,校验失败后返回S303,校验成功后执行S308。
S308、根据配置信息生成shell命令。
加载配置文件内的配置信息内容,根据所述配置信息内容得到各应用场景相关操作服务对应的shell命令,如跟数据库相关的服务,则配置成mysqldump命令;如果所述配置文件内容为shell命令,则无需配置,直接执行S309。
S309、执行shell命令。
执行生成的shell命令,以完成相应的服务操作。
需要说明的是,本发明对本实施例中的流程步骤的先后顺序不作限定,比如,S306的删除步骤和S307的校验操作之间的先后顺序是可以互换的,在此不作赘述。
在本发明的一个实施例中,提供了一种系统外部命令执行装置,所述装置的模块架构参见图5,所述装置包括以下模块:
写入模块510,用于生成目标文件,所述目标文件用于执行系统外部命令;
检测模块520,用于定时检测是否存在目标文件;
预设模块560,用于预设合法命令库,以存放设定的合法命令;
校验模块530,用于对目标文件进行校验;
执行模块540,用于根据目标文件执行外部命令。
删除模块550,用于在执行目标文件之后,删除所述目标文件。
具体地,所述目标文件为命令文件或配置信息文件,写入模块用于在有写权限的系统目录下写入执行命令或者新建配置信息文件。
相应地,若所述目标文件为命令文件,则执行模块执行相应命令;若所述目标文件为配置信息文件,则执行模块读取配置信息,进而根据所述配置信息生成命令并执行命令。
具体地,所述校验模块的校验内容包括:读取所述目标文件,若所述目标文件的内容为合法命令或者根据所述目标文件的内容能够生成合法命令,则校验成功,否则校验失败,其中,包含在所述预设模块560预设的合法命令库中的命令即为合法命令,否则为不合法命令。
优选地,所述检测模块包括定时任务子模块521,所述定时任务子模块521利用定时任务配置命令实现脚本定时执行检查目标文件操作,所述定时任务子模块521利用crontab命令实现,所述crontab命令的使用方法同上述实施例,在此不再赘述。
在本发明的一个实施例中,提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图6是本发明实施例的系统外部命令执行装置的计算机终端的硬件结构框图。如图6所示,终端800可以包括RF(RadioFrequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图6中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端800的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端800的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图6中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端800还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端800移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端800还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端800之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端800的通信。
WiFi属于短距离无线传输技术,终端800通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块170,但是可以理解的是,其并不属于终端800的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端800的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端800的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端800还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端800还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
生成目标文件,所述目标文件用于执行系统外部命令;
定时检测是否存在目标文件,通过定时脚本检查目标文件,所述定时脚本由定时任务配置命令管理;
当检测到存在目标文件时,对目标文件进行校验;
若校验成功,则根据目标文件执行外部命令。
其中,所述目标文件为命令文件或配置信息文件,具体地,终端的处理器还用于执行以下操作的指令:在有写权限的系统目录下写入执行命令或者新建配置信息文件。
具体地,终端的处理器还用于执行以下操作的指令:在执行目标文件之后,删除所述目标文件。
具体地,终端的处理器还用于执行以下操作的指令:若所述目标文件为命令文件,则执行相应命令;若所述目标文件为配置信息文件,则读取配置信息,进而根据所述配置信息生成命令并执行命令。
具体地,终端的处理器还用于执行以下操作的指令:读取所述目标文件,若所述目标文件的内容为合法命令或者根据所述目标文件的内容能够生成合法命令,则校验成功,否则校验失败。
具体地,终端的处理器还用于执行以下操作的指令:预设合法命令库,所述合法命令库用于存放设定的合法命令。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解到本发明提供的系统外部命令执行技术方案可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本发明的一个实施例中,提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,一个或者一个以上程序被一个或者一个以上的处理器用来执行系统外部命令执行的方法,所述方法包括:
生成目标文件,所述目标文件用于执行系统外部命令;
定时检测是否存在目标文件;
当检测到存在目标文件时,对目标文件进行校验;
若校验成功,则根据目标文件执行外部命令。
具体地,所述目标文件为命令文件或配置信息文件,进一步地,所述生成目标文件包括:在有写权限的系统目录下写入执行命令或者新建配置信息文件。
进一步地,本发明提供的linux系统外部命令执行方法还包括:在执行目标文件之后,删除所述目标文件。
进一步地,所述根据目标文件执行外部命令包括:若所述目标文件为命令文件,则执行相应命令;若所述目标文件为配置信息文件,则读取配置信息,进而根据所述配置信息生成命令并执行命令。
进一步地,所述对目标文件进行校验包括:读取所述目标文件,若所述目标文件的内容为合法命令或者根据所述目标文件的内容能够生成合法命令,则校验成功,否则校验失败。
具体地,对目标文件进行校验之前还包括:预设合法命令库,所述合法命令库用于存放设定的合法命令。
进一步地,所述定时检测是否存在目标文件包括:通过定时脚本检查目标文件,所述定时脚本由定时任务配置命令管理。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种linux系统外部命令执行方法,其特征在于,所述方法包括:
接收请求信号,生成目标文件,所述目标文件用于执行系统外部命令;其中,所述目标文件包括配置信息文件;所述配置信息文件包括所述请求信号对应的配置信息;所述请求信号包括数据结构服务器重启请求;相应的,所述执行系统外部命令包括:执行数据结构服务器重启命令;
定时检测是否存在目标文件;
当检测到存在目标文件时,对目标文件进行校验;所述对目标文件进行校验包括:读取所述配置信息文件,对所述配置信息文件进行校验,若根据所述配置信息文件能够生成合法命令,校验成功,否则校验失败;
若校验成功,则根据目标文件执行外部命令;
在执行目标文件之后,删除所述目标文件;所述在执行目标文件之后,删除所述目标文件包括:在读取所述配置信息文件之后,删除所述配置信息文件。
2.根据权利要求1所述的linux系统外部命令执行方法,其特征在于,所述目标文件还包括命令文件,
所述生成目标文件包括:在有写权限的系统目录下写入执行命令或者新建配置信息文件。
3.根据权利要求2所述的linux系统外部命令执行方法,其特征在于,所述根据目标文件执行外部命令包括:
若所述目标文件为命令文件,则执行相应命令;
若所述目标文件为配置信息文件,则读取配置信息,进而根据所述配置信息生成命令并执行命令。
4.根据权利要求2或3所述的linux系统外部命令执行方法,其特征在于,所述对目标文件进行校验包括:读取所述目标文件,若所述目标文件的内容为合法命令,则校验成功,否则校验失败。
5.根据权利要求4所述的linux系统外部命令执行方法,其特征在于,对目标文件进行校验之前还包括:预设合法命令库,所述合法命令库用于存放设定的合法命令。
6.根据权利要求1-3中任意一项所述的linux系统外部命令执行方法,其特征在于,所述定时检测是否存在目标文件包括:
通过定时脚本检查目标文件,所述定时脚本由定时任务配置命令管理。
7.一种linux系统外部命令执行装置,其特征在于,包括:
写入模块,用于接收请求信号,生成目标文件,所述目标文件用于执行系统外部命令;其中,所述目标文件包括配置信息文件;所述配置信息文件包括所述请求信号对应的配置信息;所述请求信号包括数据结构服务器重启请求;相应的,所述执行系统外部命令包括:执行数据结构服务器重启命令;
检测模块,用于定时检测是否存在目标文件;
校验模块,用于对目标文件进行校验;还用于读取所述配置信息文件,对所述配置信息文件进行校验,若根据所述配置信息文件能够生成合法命令,校验成功,否则校验失败;
执行模块,用于根据目标文件执行外部命令;
删除模块,用于在执行目标文件之后,删除所述目标文件;还用于在读取所述配置信息文件之后,删除所述配置信息文件。
8.根据权利要求7所述的linux系统外部命令执行装置,其特征在于,所述目标文件还包括命令文件,写入模块用于在有写权限的系统目录下写入执行命令或者新建配置信息文件。
9.根据权利要求7所述的linux系统外部命令执行装置,其特征在于,若所述目标文件为命令文件,则执行模块执行相应命令;若所述目标文件为配置信息文件,则执行模块读取配置信息,进而根据所述配置信息生成命令并执行命令。
10.根据权利要求7所述的linux系统外部命令执行装置,其特征在于,所述校验模块的校验内容包括:读取所述目标文件,若所述目标文件的内容为合法命令,则校验成功,否则校验失败。
11.根据权利要求10所述的linux系统外部命令执行装置,其特征在于,还包括预设模块,用于预设合法命令库,以存放设定的合法命令。
12.根据权利要求7-11任意一项所述的linux系统外部命令执行装置,其特征在于,所述检测模块包括定时任务子模块,所述定时任务子模块利用定时任务配置命令实现脚本定时执行检查目标文件操作。
13.一种终端,其特征在于,所述终端包括处理器和存储器,以及一个或者一个以上程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行权利要求1至6任一所述的linux系统外部命令执行方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质可以是存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质;所述计算机可读存储介质存储有一个或一个以上程序,一个或者一个以上程序被一个或者一个以上处理器用来执行权利要求1至6任一所述的linux系统外部命令执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611041334.9A CN108090345B (zh) | 2016-11-21 | 2016-11-21 | linux系统外部命令执行方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611041334.9A CN108090345B (zh) | 2016-11-21 | 2016-11-21 | linux系统外部命令执行方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108090345A CN108090345A (zh) | 2018-05-29 |
CN108090345B true CN108090345B (zh) | 2021-08-17 |
Family
ID=62170186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611041334.9A Active CN108090345B (zh) | 2016-11-21 | 2016-11-21 | linux系统外部命令执行方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108090345B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107479859A (zh) * | 2017-08-02 | 2017-12-15 | 深圳市易材科技有限公司 | 一种采用php程序执行系统命令的方法 |
CN111399974B (zh) * | 2019-03-26 | 2024-05-28 | 深圳市鸿合创新信息技术有限责任公司 | 一种资源管理方法及装置、电子设备 |
CN111008041B (zh) * | 2019-12-04 | 2022-03-11 | 北京百度网讯科技有限公司 | 用于主机的命令处理方法、装置、电子设备和存储介质 |
CN111259412B (zh) * | 2020-01-09 | 2023-12-05 | 远景智能国际私人投资有限公司 | 权限控制方法、装置、计算机设备及存储介质 |
CN111680288B (zh) * | 2020-06-10 | 2024-09-24 | 深圳前海微众银行股份有限公司 | 容器的命令执行方法、装置、设备及存储介质 |
CN116192600B (zh) * | 2023-03-02 | 2024-08-27 | 杭州乒乓智能技术有限公司 | 一种自动统一管理堡垒机各节点的运维方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103645971A (zh) * | 2013-12-13 | 2014-03-19 | 江苏名通信息科技有限公司 | Linux系统下文件备份及转移方法 |
CN104717192A (zh) * | 2013-12-16 | 2015-06-17 | 腾讯科技(深圳)有限公司 | 合法性验证方法及中间服务器 |
CN104932965A (zh) * | 2014-03-18 | 2015-09-23 | 北京奇虎科技有限公司 | 对象实时监控方法和装置 |
CN105204960A (zh) * | 2015-09-18 | 2015-12-30 | 浪潮集团有限公司 | 一种利用linux时间池定时异地备份数据库的方法 |
-
2016
- 2016-11-21 CN CN201611041334.9A patent/CN108090345B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103645971A (zh) * | 2013-12-13 | 2014-03-19 | 江苏名通信息科技有限公司 | Linux系统下文件备份及转移方法 |
CN104717192A (zh) * | 2013-12-16 | 2015-06-17 | 腾讯科技(深圳)有限公司 | 合法性验证方法及中间服务器 |
CN104932965A (zh) * | 2014-03-18 | 2015-09-23 | 北京奇虎科技有限公司 | 对象实时监控方法和装置 |
CN105204960A (zh) * | 2015-09-18 | 2015-12-30 | 浪潮集团有限公司 | 一种利用linux时间池定时异地备份数据库的方法 |
Non-Patent Citations (3)
Title |
---|
MySQL自动定时备份方式的实现;许雪晶 等;《宜春学院学报》;20140331;第36卷(第3期);第51-53页 * |
基于Linux平台的MySQL数据库的自动备份与恢复;钱爱增 等;《福建电脑》;20060331(第3期);第173-175页 * |
钱爱增 等.基于Linux平台的MySQL数据库的自动备份与恢复.《福建电脑》.2006,(第3期), * |
Also Published As
Publication number | Publication date |
---|---|
CN108090345A (zh) | 2018-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10635449B2 (en) | Method and apparatus for running game client | |
CN108090345B (zh) | linux系统外部命令执行方法及装置 | |
CN107276789B (zh) | 日志上传方法、装置及计算机可读存储介质 | |
CN110869907B (zh) | 一种浏览应用页面的方法及终端 | |
US10853437B2 (en) | Method and apparatus for invoking application programming interface | |
CN106598584B (zh) | 一种处理资源文件的方法、装置和系统 | |
CN106502703B (zh) | 一种函数调用方法和装置 | |
US20160105418A1 (en) | Method, system, device, and terminal for network initialization of multimedia playback device | |
CN107273160A (zh) | 一种版本升级的方法及装置 | |
WO2015131790A1 (en) | Network connection method, application authentication server, terminal and router | |
CN106713608B (zh) | 应用的功能状态修改方法、装置及终端 | |
EP2979177B1 (en) | Method for controlling process of application and computer system | |
KR20200140555A (ko) | 전자 장치 및 전자 장치의 듀얼 스탠바이 모드 및 싱글 스탠바이 모드의 전환 방법 | |
US9588757B2 (en) | Data update method, user terminal, and data update system | |
US11063962B2 (en) | Malicious URL detection method and apparatus, terminal, and computer storage medium | |
CN106919458B (zh) | Hook目标内核函数的方法及装置 | |
WO2014161353A1 (en) | Method for starting process of application and computer system | |
WO2014173211A1 (en) | Code coverage testing method, device and system | |
EP2869604B1 (en) | Method, apparatus and device for processing a mobile terminal resource | |
CN109067751B (zh) | 一种非Root环境下ARP欺骗检测方法、装置及终端 | |
EP3021250B1 (en) | Electronic device and method for suggesting response manual in occurrence of denial | |
CN106302603A (zh) | 远程删除信息的方法和装置 | |
CN105975316A (zh) | 一种进程管理方法、装置及设备 | |
US9928134B2 (en) | Method and apparatus for repairing dynamic link library file | |
EP2869233B1 (en) | Method, device and terminal for protecting application program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230919 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |