繁体   English   中英

带有shell_exec的命令行PHP适用于root用户,但不适用于其他用户

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM