[英]Problems with php shell_exec permissions
我正在以www-data
身份運行,並嘗試使用shell_exec(/foobar/script/myscript.sh)
執行Shell腳本,但是當腳本嘗試寫入日志文件時出現以下錯誤
cannot create /foobar/foo.log: Permission denied
但是,如果我嘗試直接從終端運行腳本,則不會遇到任何問題。 即
$ sudo su www-data
$ /foobar/script/myscript.sh
$
知道這里會發生什么嗎?
我還應該補充一點,我將www-data添加到了mybar組中,這就是我列出目錄時顯示的內容
drwxrwxr-x 3 mybar mybar 4096 May 14 14:18 foobar # ls -l /
-rw-rw-r-- 1 mybar mybar 2824 May 15 09:57 foo.log # ls -l /foobar
我認為可以有兩種選擇:
這對我有用:
sudo chown www-data:www-data -R foobar/
您試圖在其中創建文件的目錄必須屬於執行命令的任何人。
您可以輸入:
ls -la
看看它屬於誰。
您應該會看到以下內容:
drwxr-xr-x 8 jack jack 4096 Jul 22 11:36 application
當我登錄到ubuntu機器時,我以jack@jack
身份登錄,因此我可以在以下目錄中創建文件,而無需發出sudo
命令:
drwxr-xr-x 8 jack jack 4096 Jul 22 11:36 application
因為它是當前用戶擁有的。
當您嘗試運行通過訪問網頁執行的腳本時。 www-data
是執行命令的用戶,因此您試圖創建/修改/刪除的任何目錄或文件都必須由www-data
擁有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.