代码之家  ›  专栏  ›  技术社区  ›  Tom Wright

在使用phps shell_exec时,什么(除了需要是根目录之外)可能导致权限错误?

  •  0
  • Tom Wright  · 技术社区  · 15 年前

    我有一个bash脚本 不需要根 .

    但当我通过 shell_exec() (或) system() exec() 像这样:

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

    我收到以下信息:

    sh:/home/tom/rrd/rrdtool-drawgraph.sh:权限被拒绝

    (奇怪的是,信息被重复。不确定这是否相关? 编辑: 当我用倒计时代替 shell_exec . 算了吧。

    我已经尝试使用777文件权限。我尝试将所有者和组更改为 www-data . 我已经更改了它将输出吐入的目录,使其具有相同的许可权限。

    它还是跑不动。

    我唯一能想到的就是脚本在我的主目录中。如果这是问题所在,我会很惊讶(因为我的web根目录也在我的主目录中),但我已经准备好了要纠正。如果是这个问题,我可以在不需要根特权的情况下解决它吗?

    如果不是因为在我的主目录中,有什么问题?我该怎么修复它呢?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Tom Wright    15 年前

    结果证明 因为脚本的位置。

    我把它全部转移到 /usr/share/rrdscripts 而且效果很好。

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