403 嘗試下載時,位於 /var/www/html 的檔案被禁止?

403 嘗試下載時,位於 /var/www/html 的檔案被禁止?

我正在嘗試將文件從我的伺服器複製到我的桌上型電腦。我把它放在/var/www/html(網頁所在的位置),當我嘗試下載它時,我得到了403 Forbidden.我什至嘗試了chmod 777該文件,但它沒有修復它。

我做錯了什麼以及為什麼會收到此錯誤?

答案1

您需要修改該文件,使其歸 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。作為預防措施,僅在需要的目錄上使用該遮罩(例如寫入網站快取資料或上傳檔案)

答案2

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

sudo setenforce 0 #停用 SELinux

然後,我可以下載該檔案(在我的例子中為anyfile.zip),但是,它可以為攻擊者編寫和執行程式碼打開大門。

答案3

你可能有SELinux已啟用。就當前目的而言,最簡單的方法是將有問題的檔案 chown 為 Apache 運行時的使用者 ID。

相關內容