Permissions
/var/www/html 的所有權
所以我搜尋了很多,發現了相互矛盾的答案。
為了每個人的緣故,如果有人能就如何設置 /var/www/html 的所有權/權限提出一個完全合理和引用的答案,我將不勝感激
例如,假設您想使用 sftp 訪問該目錄,但預設情況下您的使用者無法在該目錄中寫入文件。從安全的角度來看,對此的正確解決方案是什麼。
(讓我們假設一個LAMP環境)
從安全的角度來看,對我來說,這個目錄以及網路伺服器需要去的任何目錄都應該以這樣的方式設置,即網路伺服器不是文件/目錄的所有者,並且以這樣的方式它無權寫入任何目錄/文件**。**
這樣做意味著,無論您在伺服器中遇到什麼漏洞,都不會導致超過 DOS 和洩露,文件將無法被網路伺服器寫入。
當然,在現實生活中,事情可能會變得更複雜:
- 網路伺服器內的某些 CGI/應用程序可能需要在某處具有寫訪問權限,例如,如果未使用數據庫來儲存會話數據
- 網路伺服器本身通常需要在某處寫入訪問權限來寫入日誌文件等。
- 在某些設置中,它可以產生積極的安全效果,網路伺服器內的每個應用程序都可以在另一個 UID 下執行,而不是網路伺服器本身。所有權和權利的權衡可能會變得複雜。這可能就是為什麼你可以在網上看到很多人多次說:
rwx
隨處放就行了。當然,如果您賦予每個人所有權利,它“有效”,但它們是安全明智的後果。因此,如果您有喜歡的使用者連接到您的伺服器以通過 SFTP 上傳新文件以便它們可以由網路伺服器提供服務,我會:
- 使每個使用者擁有其特定目錄,並對其擁有完全權限
- 使 webserver 主組成為每個使用者特定目錄的組,
rx
對其具有權限- 其他使用者完全沒有權利
通過這樣做,每個使用者只能看到自己的文件,而沒有其他內容(SFTP 還可以選擇 chrooting 以增加安全性,但這也有其自身的複雜性),並且網路伺服器只能訪問所有文件以進行讀取。
在每個目錄中,您可以擁有網路伺服器組擁有的所有文件,甚至可以
rx
為任何人放置,因為這將受到頂層目錄的保護,除了所有者或網路伺服器之外,其他使用者根本沒有任何權限。