使用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
,它工作正常。
奇怪的是,输出文件没有权限问题:脚本仍然能够写入我的主目录中的输出文件夹。