2014-03-03 89 views
3

我想知道什麼是對網站文件和文件夾執行chown和chmod的最佳,正確和推薦的方式。分配網絡文件夾權限的最佳做法

最近,我開始工作在Linux和我已經在站點根目錄像下面已經做了:

sudo chown www-data:www-data -R ./ 
sudo chmod 775 -R ./ 

我知道這是不是最好的方法。有這不應該是與瀏覽器訪問,不應該是寫一個受保護的文件夾,所以我做了以下受保護的文件夾:

sudo chown root:root -R protected/ 
sudo chmod 755 -R protected/ 

它是正確的嗎?如果有什麼可以改進的,請讓我知道。

回答

0

再次閱讀您的命令。你所說的是「使一切可執行文件」在這些目錄下面。 HTML或gif是否可執行?我不這麼認爲。

關於不應該由Web服務器寫入的目錄。想想你想做什麼。你想撤銷從Web服務器和Web服務器組(以及其他人)寫入目錄的權利。所以它會翻譯爲chmod -w theDir。你所做的就是告訴系統「我想讓root對這個目錄進行修改,這個目錄應該可以被每個人和根組讀取」。我非常懷疑這一點。

所以我建議擁有一個只有最小讀訪問權限的web服務器用戶所擁有的目錄,它應該屬於一組(用戶,即用戶),它可以做必要的修改。網絡服務器不屬於該組,因爲您希望外部世界不能進行修改。另一個選擇是將所有目錄移交給root和編輯組,並通過「others」權限組修改webserver可以執行的操作。但是,重要的用途取決於你的環境。

編輯: 一般來說,「最低權利」政策被認爲是一種好的做法:儘可能少地放棄權利來完成工作。這意味着可以讀取靜態文件,並根據您的環境php文件,讀取和執行cgi可執行文件的權限以及讀取和執行目錄權限。目錄的執行權限允許您輸入並讀取它。網絡服務器有史以來應該不能寫入文檔根目錄中的目錄。這是一種安全風險,儘管一些大型CMS的開發者似乎並不關心這一點。對於臨時文件夾,我會將用戶和組設置爲nobody:nogroup,併爲用戶和組設置粘滯位。