我有一个非常简单的脚本,用于测试运行shell_exec(或反引号运算符)是否基本可行:
#!/usr/bin/php5
<?php
echo "This is a PHP script\n";
echo `ls -l /home/stoysnet/`;
除非我以root身份运行,否则它总是给我:
$ ./foo.php
This is a PHP script
Warning: _shell_exec(): Permission Denied in /home/stoysnet/foo.php on line 5
我尝试过几种不同的方式通过PHP运行它,但我总是得到同样的错误。但是,当我将脚本放入/etc/
所拥有的root:root
子目录并以root
执行时,它可以正常工作。
是什么给出了?
更新:只是为了澄清:
stoysnet
用户运行。我能够通过同一个会话执行传递给shell_exec
的命令。/etc/somedir/
并执行root
,则按预期工作。shell_exec
部分777
也不起作用。答案 0 :(得分:0)
您是否以与stoysnet
不同的用户身份运行此脚本?当您以与执行PHP脚本相同的用户运行ls -l /home/stoysnet
时会发生什么?
似乎您需要以拥有/home/stoysnet/
权限的用户身份运行脚本。