Ubuntu

腳本嘗試執行時權限被拒絕

  • February 14, 2015

我有一個 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,一切都應該執行良好。

引用自:https://serverfault.com/questions/667663