Files
能夠將文件添加到目錄但不能刪除現有文件
是否有一些權限設置允許使用者,比如,
john
將文件添加到目錄d
,但不能刪除另一個使用者擁有的現有文件,比如,root
?我的理解是這是不可能的,因為需要執行權限才能將文件添加到目錄,但這也賦予了取消連結目錄中任何文件的權力。
(我使用的是 Mac OS 10.9,但這個問題可能適用於所有 POSIX 系統。)
是的,為此,您需要為該目錄設置粘性位。
摘抄
另一個重要的改進涉及在目錄上使用粘性位。設置了粘性位的目錄意味著只有文件所有者和超級使用者可以從該目錄中刪除文件。無論目錄權限如何,其他使用者都被拒絕刪除文件的權利。與文件粘性位不同,目錄上的粘性位一直存在,直到目錄所有者或超級使用者明確刪除目錄或更改權限。
也就是說,您將授予使用者
john
對該目錄的執行權限,d
以便他們可以向其中添加文件,然後將該目錄標記為“粘性”chmod +t /path/to/d
以確保john
(以及具有 +x 權限的任何其他使用者)只能刪除文件(或子目錄)他們擁有的。