使用PHP执行root命令

概述:

  • 主要是借助于C语言程序作为中间层,进行调用root命令。

1. 在PHP代码的任意一个地方调用exec函数

public function handle()
{
   // c语言编译后的目录地址
   exec('/opt/bin/php-root');
}

2. C语言代码

#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
    setuid(0);
    system("/bin/bash /opt/bin/restart-service");
    return 0;
}

3. restart-service脚本文件

# restart-service脚本的名称

# 在这个脚本文件中可以放入PHP需要执行的任意root命令
# 增加这个脚本文件的意义在于,不用每次新增一个root命令就需要重新编译c语言,方便修改

4. 编译C语言代码

gcc -o php-root php-root.c

5. 给编译后的php-root程序授权

sudo chmod u=rwx,go=xr,+s php-root

6. 编写需要执行的root命令在restart-service中

#!/bin/bash

# 需要重启或需要执行root的命令
systemctl restart php7.0-fpm.service

 

转载于:https://my.oschina.net/u/3054299/blog/2966683

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值