在PHP中使用shell_exec()函数时没有任何反应

时间:2013-12-17 08:00:28

标签: php linux ubuntu tcp

我正在尝试使用shell_exec()函数通过PHP执行以下命令:

sudo -u USERNAME -pPASSWORD echo "SOME-STRING" > /dev/tcp/127.0.0.1/64444

但没有任何反应(如果我手动将其复制/粘贴到它工作的终端)。 $output函数的shell_exec()中也没有任何内容。

因此,使用该命令,我尝试通过具有sudo权限的其他用户通过TCP发送字符串。

编辑#1:完整的PHP命令如下所示:

shell_exec('sudo -u USERNAME -pPASSWORD echo "RLSET|79-192.168.1.33-0-1" > /dev/tcp/127.0.0.1/64444');

编辑#2:我还检查了phpinfo()函数和safe_mode is offshell_exec()函数也不在不允许的函数列表中。

编辑#4:我的PHP PATH变量包含以下位置:

  

的/ usr / local / bin中:在/ usr / bin中:/ bin中

我迷失在这里,任何和所有的帮助都将不胜感激。

3 个答案:

答案 0 :(得分:1)

scape你的报价把你的完整命令路径:

 shell_exec("sudo -u USERNAME -pPASSWORD echo \"FULL-PATH-COMMAND\" > /dev/tcp/127.0.0.1/64444")

答案 1 :(得分:0)

也许您的二进制文件(sudoecho,...)不在PATH env变量中:

putenv('PATH', '/bin:/sbin:/usr/bin:/usr/sbin:') // etc...

答案 2 :(得分:0)

你试过在-p之后放一个空格吗?

那应该是

shell_exec('sudo -u USERNAME -p PASSWORD echo "RLSET|79-192.168.1.33-0-1" > /dev/tcp/127.0.0.1/64444');

我刚刚在自己的机器上尝试了一些命令。

我试过

sudo -u USERNAME -p PASSWORD ls

它有效,但当我尝试

sudo -u USERNAME -pPASSWORD ls

它提供了使用信息。