[英]Command Line PHP with shell_exec works for root but not others
我有一个非常简单的脚本,用于测试运行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运行此程序,但是我总是遇到相同的错误。 但是,当我将脚本放入root:root
拥有的/etc/
的子目录中并以root
身份执行时,它可以工作。
是什么赋予了?
更新:只是为了澄清:
stoysnet
用户通过命令行运行它。 我能够执行通过同一会话传递给shell_exec
的命令。 /etc/somedir/
并以root
身份执行,则它将按预期工作。 shell_exec
部分 777
也不起作用。 您是否以与stoysnet
不同的用户身份运行此脚本? 当您以与执行PHP脚本相同的用户身份运行ls -l /home/stoysnet
时会发生什么?
似乎您需要以具有/home/stoysnet/
权限的用户身份运行脚本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.