如何配置權限以允許 apache 安全地訪問共享環境中的文件?
在我的學校,我們有一個由多個使用者和多個組組成的共享伺服器環境。
相關組:
students
daemon
(執行阿帕奇)我想讓學生能夠完全訪問他們擁有的文件,而不能訪問其他學生的文件。兩個不同的學生甚至不能看到彼此的文件。
我還希望 apache 能夠讀取和執行所有學生文件。具體來說,我希望 apache 能夠讀取每個學生擁有的密碼文件,我還希望密碼文件的所有者能夠完全訪問它。
據我了解,最好的方法是將密碼文件的組所有者更改為 apache。
所以讀完這篇之後,
https://serverfault.com/questions/357108/what-are-the-best-linux-permissions-to-use-for-my-website
似乎一個簡單的 chgrp 可以解決它。
但後來我遇到了這個:
您必須是文件的所有者以及目標組(或 root)的成員才能使用此操作。
所以每個學生都不是守護程序組的一部分,他們不能執行這個命令。給他們那個組是沒有意義的,因為他們也可以看到其他學生的密碼文件。
從上一個執行緒中,我了解到目前的安全設置不合適,我已安排與我的系統管理員 tommarrow 會面。
但我仍然不確定我應該讓我的系統管理員做什麼。
我真的不能要求他手動更改伺服器上每個密碼文件的權限,文件名和位置不同,許多學生甚至還沒有設置。
讓學生完全訪問 chgrp 似乎很危險,
我的傾向似乎是要求他創建某種類型的腳本,提示學生輸入文件,然後執行 chgrp 代替學生,從而賦予 apache 組所有權。這似乎可行,但也相當複雜,因為我對 Linux 還是很陌生。他能輕易做到這樣的事情嗎?
我也考慮過 ACL,但我的構想直接回到 chgrp,讓學生訪問 setacl 似乎很危險。
ACL 就是答案。學生不需要任何特殊權限即可執行
setfacl
,使用者可以設置自己擁有的任何文件的ACL。如果您需要為 ACL 設置系統,請參閱使目錄中的所有新文件都可供組訪問
告訴學生,如果他們需要一個可供 Apache 訪問的文件,那麼他們必須執行
setfacl -m group:daemon:r ~/path/to/password.file setfacl -m group:daemon:x ~ ~/path ~/path/to
目錄權限是訪問這些
x
目錄中的文件(包括子目錄)所必需的。