美文网首页
PHP使用命令函数执行shell脚本

PHP使用命令函数执行shell脚本

作者: nilzz | 来源:发表于2019-08-11 10:49 被阅读0次

PHP使用命令函数执行shell脚本

  • CentOS 7.6 64位
  • 宝塔Linux面板

运行环境

  • Nginx 1.17.1
  • PHP-7.1

步骤

01 解除禁用的命令函数

出于安全考虑,命令函数是被禁用,我安装宝塔是被禁用的

#修改php.ini文件
disable_functions =  #被禁用函数都在这一行 把需要解除的函数删除就行了 
system exec passthru shell_exec #PHP常用命令函数
02 PHP调用Linux命令权限不足的解决方法

关于这个问题我踩的太多坑了,这也是我要写这篇文章的原因,我本人记性不好,所以记录一下

  • 01 查看启动你PHP的进程的用户是谁
ps -ef | grep php #通过终端命令行执行查询
echo exec('whoami'); #通过PHP命令函数查询 总来说默认没有任何权限
  • 02 添加一个用户和组 终端命令↓↓↓
/usr/sbin/groupadd wroot  # wroot 用户可以自定义的
/usr/sbin/useradd -g wroot -s /bin/bash wroot
vim /etc/passwd #查看你刚刚添加的用户 是否添加成功
wroot 是刚刚添加的
  • 03 修改PHP启动用户为您刚添加的用户
    php-fpm.conf 修改这个配置文件
    编辑成 user = wroot; group = wroot; (wroot为您刚才添加的用户)
service php-fpm restart #命令重启php-fpm
ps -ef | grep php #命令查看PHP启动进程的用户、是否已经变了
  • 04 添加刚才的用户wroot到sudoers里面
visudo #命令修改 /etc/sudoers的内容
## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
wroot   ALL=(ALL)       ALL //新添加这一行
%wroot  ALL=(ALL)      NOPASSWD: ALL  
#NOPASSWD为设置用户组下面的用户使用sudo不需要输入密码

以上操作完成,但是我发现依然不能解决PHP命令shell脚本问题

  • 05 关于linux 用vi命令使用vi编辑(外话)
s #vi界面出现 INSERT后,开始进行编辑操作 编辑完毕后,按ESC键,跳到命令模式
:w #保存,不退出vi
:w! #强制保存,不退出vi
:w file #将修改另外保存到file中,但不退出vi
:wq 或 :x #保存,并退出vi
:wq! #强制保存,并退出vi
:q #不保存,并退出vi
:q! #不保存,并强制退出vi
:e! #放弃所有修改,从上次保存文件开始再编辑
03 但第二部操作还是无法解决PHP命令shell脚本问题

还是权限问题,最后添加www-data ALL=(ALL) NOPASSWD: ALL解决了

www-data ALL=(ALL) NOPASSWD: ALL #编辑visudo
编辑visudo添加www-data

编写test.sh脚本,简单的一个shell脚本 创建一个文件夹

#! /bin/sh
mkdir /www/a #注意.sh文件需要给执行权限
#PHP
system('sudo /usr/bin/test.sh') #注意绝对路径
system('sudo /www/wwwroot/wert/prt.sh') #例如路径

内容部分来源网络,我只是执行操作整理

相关文章

  • PHP使用命令函数执行shell脚本

    PHP使用命令函数执行shell脚本 CentOS 7.6 64位 宝塔Linux面板 运行环境 Nginx 1....

  • 第二篇原理篇(3)

    命令执行漏洞 PHP:提供了部分函数用来执行外部应用程序,例如: system()、 shell_ exec()、...

  • php语言怎么执行shell脚本语言

    在php编程中,笔者想到能不能用php来执行shell脚本语言(PHP调用LINUX命令的功能),然后通过LAM...

  • shell入门

    0. shell脚本执行 可使用自动显示git 分支的脚本来验证 1. source 通过source命令执行脚本...

  • shell基础

    shell脚本 1.shell脚本执行方式 1.1 添加执行权 1.2 指定shell命令 2.shell变量 2...

  • 3-2 Shell脚本的语法

    第一个Shell脚本 文件内容 执行结果 可交互的 shell脚本 文件内容 使用 read 命令从 stdin...

  • 多个scrapy同时执行

    项目中单机使用shell脚本进行多个scrapy命令的运行,即同个shell进行多个scrapy命令的执行,这样会...

  • Python脚本中执行shell命令

    在python脚本中执行shell命令,使用os.popen方法 直接执行命令后,返回执行命令后的输出。 非常方便!

  • 四.shell脚本语言

    shell脚本: 文件包含 cat命令介绍 获取用户输入_read命令 printf命令使用 函数 输入/输出重定...

  • [Linux]Shell

    shell:命令解释器,驱动linux内核;应用程序调用shell命令 1.Shell脚本的执行方式 脚本格式要求...

网友评论

      本文标题:PHP使用命令函数执行shell脚本

      本文链接:https://www.haomeiwen.com/subject/jqyjjctx.html