脚本尝试运行时拒绝了权限

我有一个PHP脚本运行下面的命令使用exec()

 /root/gsutil/gsutil <COMMAND> 

在我的错误日志中,我收到以下内容:

 sh: 1: /root/gsutil/gsutil: Permission denied 

有谁知道我可以做什么让我的PHP脚本来运行该命令?

/ root下的任何东西通常由root用户拥有。 PHP通常不会(因为安全原因决不应该)在root用户下运行。 您应该将gsutil安装在PHP具有执行权限的位置。 例如,将其复制到/var/www

 cp /root/gsutil/gsutil /var/www/gsutil 

我认为,在Ubuntu下,PHP通常以www-data用户身份运行(不是100%确定),所以您需要将该文件的所有权更改为该用户:

 chown www-data.www-data /var/www/gsutil 

最后,通过设置chmod 770来确保文件对于拥有的用户/组(www-data)是可执行的:

 chmod 770 /var/www/gsutil 

然后设置你的PHP脚本来运行/var/www/gsutil而不是所有的应该运行良好。