使用PHP shell_exec时,什么(除了需要root权限)可能会导致权限错误?

使用PHP shell_exec时,什么(除了需要root权限)可能会导致权限错误?

问题描述:

我有一个bash脚本,它运行而不必成为根使用PHP shell_exec时,什么(除了需要root权限)可能会导致权限错误?

但是当我通过shell_exec()(或system(),或exec())运行它像这样:

return system("/home/tom/rrd/rrdtool-drawgraph.sh $interval $multiples - debug 2>&1;"); 

我得到以下信息:

SH:/家庭/嗵/ RRD/rrdtool的-drawgraph.sh:权限被拒绝

(奇怪的是,信息被重复,不知道这是否有关?编辑:当我使用反引号代替shell_exec时,它似乎没有重复。去图)。

我试过使用777文件的权限。我试过将所有者和组更改为www-data。我已经将其吐出的目录改为具有同样宽容的权限。

它仍然不会运行。

我能想到的唯一的事情是脚本在我的主目录中。如果这是问题,我会感到惊讶(因为我的web根目录也在我的主目录中),但我准备好纠正。如果这是问题,我可以修复它而不需要root权限吗?

如果不是在我的主目录中,是什么问题?我该如何解决它?

原因是,因为脚本的位置。

我把它全部移到/usr/share/rrdscripts,它工作正常。

奇怪的是,输出文件没有权限问题:脚本仍然能够写入我的主目录中的输出文件夹。