
問題是關於最佳實踐,而不是一個確切的問題。
靜態網站檔案和目錄的正確所有權和權限是什麼?我將對root:<server-group>
檔案使用權限 640,對目錄使用權限 750。因此,由於群組權限,伺服器可以讀取所有內容,但普通使用者在不明確使用 sudo 的情況下無法意外或故意修改檔案。
或者也許有我不知道的更好的做法?我的方法看起來有點過於複雜。
答案1
root 沒有必要阻止使用者修改人們負責的文件。透過將所有權授予非特權使用者(例如同步文件的服務使用者)也可以實現相同的目的。
理想情況下,不是 Web 伺服器運行的用戶,也不是任何特定的人,而只是一些進行檔案傳輸的自動化用戶。負責將內容暫存到某個儲存的人員,並在準備部署文件傳輸時複製到位。人們無需接觸生產網路伺服器,也無需特殊權限。
由 root 擁有,需要重組或更改檔案時,管理員或自動化腳本可能需要成為 root。這是非常高的權限,能夠刪除安全措施或以其他方式破壞主機。
當然,掛載點或軟體包由 root 擁有是有意義的,因此更改系統需要特權。例如,如果網站內容位於 /srv/www/example.net/,則 /srv/ 和 /srv/www/ 可能由 root 擁有,並且 /srv/www/example.net/ 等網站由非特權使用者擁有。