php 执行cmd 权限,[转载]ubuntu php 调用系统命令 以及实现同时执行多

1.第一点就是注意写上命令的完整路径:

比如调用adb命令:

$test="/home/wxl/platform-tools/adb devices";

echo shell_exec($test);

2.第二点就是注意看apache所在用户组具不具有执行权限:

比如调用iptables命令(需要root权限):

2.1先编译一个可执行文件cmd.cpp,使得当前用户可以执行root权限命令:

#include

#include

#include

#include

#include

#include

using namespace std;

int main(int ac,char

**argv) // 获取iptables命令参数

{

string get("");

for(int i=1;i

string temp(argv[i]);

get+=" ";

get+=temp;

}

string

cmd=get; //命令字符串

cout<

0"<

setuid(0); //将当前用户的uid设置为0

(root用户的uid为0),使其具有root权限

system(cmd.c_str()); //执行命令

cout<

0"<

}

编译:g++ -o cmd -Wall cmd.cpp

2.2再修改cmd文件的权限问题:

ls -al查看cmd的权限:

-rwxr-xr-- 1 root root 8465

Dec 2 16:10 cmd

注意两个地方,第一个:chmod u+s cmd(使得群组里面的用户可以以root权限调用cmd)

第二个地方:chown :www-data(修改群组,把群组改为apache所在群组)

其中,查看群组命令:ps -ef | grep apache

2.3在php中调用cmd来执行root命令:

$cmdstr="iptables -L";

passthru("/var/www/cmd /sbin/iptables -L");

3.有关group和user的相关信息,请点击查看

===================多条shell命令的执行=============

4. 如下图所示:

a4c26d1e5885305701be709a3d33442f.png

然后修改tmp.sh脚本为可执行文件

最后执行shell脚本即可

注意:其中多条shell命令写在一起,用n换行符隔开每一条命令。千万不能直接用回车符。

5.要实现sudo命令,就需要给该用户赋予root权限,切不需要输入密码。具体操作如下:

打开文件:vim sudo /etc/sudoers

在最后一行添加具有root执行权限的用户即可。

a4c26d1e5885305701be709a3d33442f.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值