![更改 Apache 中 html/ 資料夾的擁有者是否安全?](https://rvso.com/image/1127594/%E6%9B%B4%E6%94%B9%20Apache%20%E4%B8%AD%20html%2F%20%E8%B3%87%E6%96%99%E5%A4%BE%E7%9A%84%E6%93%81%E6%9C%89%E8%80%85%E6%98%AF%E5%90%A6%E5%AE%89%E5%85%A8%EF%BC%9F.png)
我知道如何使用 chmod 之類的東西,所以這不是問題。我有一個小型伺服器(Ubuntu LTS),上面運行著 Apache,標準資料夾位於/var/www/html/
.預設情況下,root 是該資料夾的擁有者html/
。
問題:更改資料夾的擁有者是否安全html/
?
答案1
更改 中文件的所有權是完全安全的/var/www
,實際上該資料夾中的任何內容都是您可以編輯和更改的。
例如,如果使用者tsmith
需要能夠寫入文件,/var/www/myweb
那麼將這些文件的擁有者設定為tsmith
.或者,如果您願意,可以將所有者保留為root
並要求tsmith
sudo 以便給他們寫信 - 如果您信任他/她的 sudo。
如果您有多個使用者需要能夠編輯文件,並且您不想給他們 sudo,您也可以使用群組成員身份,例如建立一個群組並將使用者新增至該群組,然後設定群組所有權和群組寫入相關文件以使該組的成員能夠修改這些文件。執行此操作時,您可能需要chmod g+s dir
在包含目錄上使用 SetGID 位元 ( ) 以確保新檔案繼承相同的群組所有權,並umask 002
在每個使用者的目錄中~/.profile
確保他們獲得群組寫入權限,否則任何新檔案都只能由其使用者編輯創建者而不是該群組的其他成員。
但是,您應該注意以下不良做法:
如果您授予群組寫入權限,請勿將任何檔案的所有權設定給使用者
www-data
或群組。用戶www-data
的全部意義www-data
在於它是非特權用戶,無法寫入任何檔案。可從外部網路(例如 Web 伺服器)存取的伺服器守護程式通常以非特權使用者身分執行,因此,如果它們因漏洞而遭到駭客攻擊,攻擊者所能做的事情是微乎其微的。例外:某些網頁應用程式需要對某些文件和資料夾進行寫入訪問,以實現附件存儲等功能。
www-data
僅有的對於這些文件,將可寫入的文件數量保持在www-data
最低限度。出於同樣的原因,不要將任何文件設定為全域可寫入。
如果建立群組,請不要重新調整現有使用者群組的用途,例如
admin
,sudo
或者特別是www-data
,它們在 Ubuntu 中已經有用途,因為如果這些群組不打算能夠寫入文件,這可能會降低系統安全性。相反,創建您自己的群組並向其中添加成員。
答案2
使用具有 root 權限(所有權或單一權限)的任何目錄或檔案都不是很安全。對於靜態 HTML 文件,這不會是一個大的安全性問題,但一旦有正在運行的腳本(PHP、JavaScript、任何表單等),您就會遇到嚴重的問題。
答案3
如果您只需要提供內容(html、映像等),則無需為 中的目錄/檔案設定特殊所有權/var/www
,只要 apache2 使用者 ( www-data
) 有權存取該內容即可。
如果您需要執行更多操作,您可能需要修改所有權。例如,如果您需要從 CMS(例如 WordPress、Joomla 等)上傳文件,則需要將上傳目錄的所有權變更為www-data
(或至少向該使用者授予寫入權限)
我個人擁有mod/var/www
的使用者(與 相同)和擁有的網站(即:)目錄。root
1777
/tmp
/var/www/site1
www-data
希望能幫助你!