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

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

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

/root/gsutil/gsutil <COMMAND>

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

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

有人知道我该怎么做才能让我的 php 脚本运行该命令吗?

答案1

/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,一切都应该正常运行。

相关内容