
我正在嘗試將文件從我的伺服器複製到我的桌上型電腦。我把它放在/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。