Permissions
設置文件和文件夾的權限 - 文件夾權限繼承是否總是隱含的?
**目標:**在根目錄創建一個文件夾,chown 到組並將使用者添加到組 - 但是使用者獲得的權限太寬了!
考慮以下:
# as root # we need a user group groupadd team1 # we need a shared folder mkdir /project1 chown root:team1 /project1 chmod 770 /project1 # we need users - and they get set pw elsewhere :) for i in bob tina jim joy; do useradd $i; done # we add them to the project group 'team1' that gives access to the shared folder usermod -aG team1 [username]
令人費解的是,使用者
jim
可以在其中創建文件,/project1
使用者joy
可以在vim中打開、更改和保存文件,或者嘗試刪除文件,確認這是意圖後才會執行。**問題:**這是否被認為是正確的行為?不應
chmod 770 /project1
僅限於文件夾本身的權限,但不應像看起來那樣:遞歸到所述文件夾中的文件?
這是正常行為。
目錄的 770 權限允許目錄的所有者和目錄組的任何成員讀取、寫入和搜尋目錄。這意味著該組的任何成員都可以刪除目錄中的文件並創建新文件,而與文件本身的權限和所有權無關。這就是你所看到的;
jim
文件上設置的任何權限joy
都可以刪除它並用另一個文件替換它,這就是這樣vim
做的。在標準 Unix 權限模型中,您可以在目錄上設置其他權限。
這裡第一個有用的是粘性位,它限制刪除:文件只能由其所有者、目錄所有者或
root
.chmod g+t /project1
會設置它,然後
joy
將無法刪除jim
的文件。第二個有用的權限是
sgid
位,它使目錄的組應用於目錄中新創建的文件:chmod g+s /project1
要結合兩者,執行
chmod 3770 /project1
有關詳細資訊,請參閱了解 UNIX 權限和文件類型。