带有shell_exec的命令行PHP适用于root用户,但不适用于其他用户
我有一个非常简单的脚本,用于测试运行shell_exec或backtick操作符是否基本有效:带有shell_exec的命令行PHP适用于root用户,但不适用于其他用户,php,linux,permissions,command-line-interface,Php,Linux,Permissions,Command Line Interface,我有一个非常简单的脚本,用于测试运行shell_exec或backtick操作符是否基本有效: #!/usr/bin/php5 <?php echo "This is a PHP script\n"; echo `ls -l /home/stoysnet/`; 我尝试过通过PHP以几种不同的方式运行它,但我总是遇到相同的错误。但是,当我将脚本放入root:root拥有的/etc/子目录并以root身份执行时,它就可以工作了 有什么好处 更新:只是澄清一下: 我试图通过命令行以stoys
#!/usr/bin/php5
<?php
echo "This is a PHP script\n";
echo `ls -l /home/stoysnet/`;
我尝试过通过PHP以几种不同的方式运行它,但我总是遇到相同的错误。但是,当我将脚本放入root:root拥有的/etc/子目录并以root身份执行时,它就可以工作了
有什么好处
更新:只是澄清一下:
我试图通过命令行以stoysnet用户的身份运行它。我能够通过同一会话执行传递给shell_exec的命令。
如果我将脚本移动到/etc/somedir/并以root用户身份执行,它将按预期工作。
脚本本身运行,而不是backtick操作符或shell_exec部分
执行权限已设置,777也不起作用。
您是否以与stoysnet不同的用户身份运行此脚本?当您以执行PHP脚本的用户身份运行ls-l/home/stoysnet时会发生什么
似乎您需要以具有/home/stoysnet/权限的用户身份运行脚本,在/home/stoysnet目录上的权限/所有权是什么?为了能够“ls”一个目录,例如:列出/枚举其内容,执行脚本的用户必须以所有者、组或“所有人”的身份对该目录拥有执行权限。
$ ./foo.php
This is a PHP script
Warning: _shell_exec(): Permission Denied in /home/stoysnet/foo.php on line 5