Linux

Nginx 嘗試寫入圖像文件時權限被拒絕

  • June 5, 2018

我正在將 Nginx 用於 Linux 伺服器,並且我有這個文件夾/usr/local/openresty/nginx/webfolder/img,我希望 nginx 在其中保存我上傳的圖像文件。

所以,這就是我所做的:

1)我將目錄的所有者更改為組中的www-data使用者www-data

chown -R www-data:www-data /usr/local/openresty/nginx/webfolder/img

2)然後我更新了目錄的權限:

sudo chmod 0600 /usr/local/openresty/nginx/webfolder/img

Lua上傳錯誤部分(我記錄錯誤的地方):

fileToSave, errMessage = io.open(savefiletarget, "w+b")
                       if not fileToSave then
                           --ngx.say("failed to open file ", savefiletarget)
                           ngx.log(ngx.NOTICE,'failed to save file : '..savefiletarget..' reason: '..errMessage);
                           ngx.say('{"filename" : "'..filenametosave..'","status" : 0 ,"message":"failed to open file"}')
                           return
                       end

現在Permission Denied,當我嘗試上傳文件時,我的錯誤日誌仍然顯示。

我假設www-datanginx 使用的使用者對嗎?那麼為什麼我仍然無法寫入文件?

你給了目錄錯誤的權限。0600將授予目錄的讀取寫入權限。但是要訪問目錄,還需要執行權限。這是一個例子:

[jenny@temeraire sf] $ mkdir test1
[jenny@temeraire sf] $ chmod 0600 test1
[jenny@temeraire sf] $ touch test1/foo
touch: test1/foo: Permission denied
[jenny@temeraire sf] $ chmod 0700 test1
[jenny@temeraire sf] $ touch test1/foo
[jenny@temeraire sf] $ ls -ld test1/foo
-rw-r--r--  1 jenny  staff  0 Jun  5 07:46 test1/foo

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