題 403試圖下載時,/ var / www / html上的文件是否被禁止?


我正在嘗試將文件從我的服務器複製到台式計算機。我把它放進去了 /var/www/html (網頁的位置),當我嘗試下載它時,我得到了 403 Forbidden。我甚至試過了 chmod 777 在文件上它並沒有修復它。

我做錯了什麼,為什麼我會收到這個錯誤?


4
2018-05-09 17:34


起源




答案:


您需要修改該文件,以便它由Apache用戶擁​​有。默認情況下,Apache將作為 www-data 用戶(在。中找到) www-data 組)。您可以使用 chown 修改文件的所有者(可能必須使用 sudo):

chown -R www-data:www-data /var/www/html

最後,您需要確保文件具有 最小 讀取和執行Apache用戶的權限。正如你所說,你已經完成了這個,但是在修改了所有權限/文件所有者之後,你應該通過運行來確保一切正常 ls -l /var/www/html。作為安全措施,刪除其他用戶的所有權限也是明智之舉:

chmod -R 0550 /var/www/html

請注意,如果您使用PHP或其他需要寫訪問權限的腳本語言,則可能必須修改上面的權限掩碼 0770 代替。作為預防措施,僅在需要的目錄上使用該掩碼(例如,編寫網站緩存數據或上傳文件)


9
2018-05-09 18:04



chown:'www-data:www-data'無效用戶 - BigOmega
也試過apache作為用戶,它沒有給出錯誤,但我仍然無法下載文件(403) - BigOmega
@Ryan你需要檢查你的 httpd.conf 要么 apache2.conf 用於查看實際Apache用戶名的文件。 - Breakthrough
好的,我會做。文件類型是否也可能具有不同的權限?因為我可以在相同的路徑上瀏覽帶有圖像等的豐富html頁面。 - BigOmega
@Ryan檢查使用 ls -l 誰擁有這些文件,以及他們擁有什麼權限。您是否嘗試訪問原始HTML文件或某種動態頁面(即PHP / Python / Ruby)?此外,請確保您沒有在您的設置中設置任何類型的阻止規則 .htaccess, httpd.conf或站點配置文件。 - Breakthrough


我正在使用CentOS 7 + Apache,解決我的問題的唯一命令就是它(因為我之前嘗試過chown + chmod):

sudo setenforce 0 #disable SELinux

然後,我可以下載文件(在我的情況下,anyfile.zip),但是,它可以打開攻擊者編寫和執行代碼的大門。


4
2018-01-29 06:06





你可能有 SELinux的 啟用。對於當前目的,最簡單的方法是將有問題的文件chown到Apache正在運行的用戶ID。


0
2018-05-09 17:51