使用apache / php以root身份运行shell脚本

时间:2013-07-26 06:42:30

标签: php shell permissions root

我想使用由执行的shell脚本来更改目录的权限,因此这会在apache用户下运行。 不幸的是,有些目录的权限设置为root

是否可以将此脚本作为root运行,还是可以考虑其他替代方案?

2 个答案:

答案 0 :(得分:0)

您正在寻找名为sudo的工具:https://en.wikipedia.org/wiki/Sudo但最有可能的是,您应该重新考虑您的应用架构,因为一旦您的httpd受到攻击,攻击者就可以轻松获得root权限。

答案 1 :(得分:0)

我最近发布了一个项目,允许PHP获取真正的Bash shell并与之交互。在此处获取:https://github.com/merlinthemagic/MTS

下载后,您只需使用以下代码:

    $shell    = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);
    $return1  = $shell->exeCmd("/path/to/script");
    //the return will be a string containing the return of the script
    echo $return1;

或者您可以简单地绕过脚本,直接在PHP中通过shell发出原始命令。这种方法可以让你处理异常。