Permissions
有什麼方法可以防止從使用者擁有的目錄中刪除某些文件?
假設使用者有Directory1並且它包含File1 File2 CantBeDeletedFile 如何使使用者永遠不會被允許刪除CantBeDeletedFile?
如果我更改Directory1的所有權並刪除寫入權限,使用者將無法刪除任何文件。他們也無法添加新文件等。
我只想能夠設置一些永遠不會被刪除的文件。
更具體的描述。
我正在創建使用者配置文件。我正在他們的Desktop中創建應用程序啟動器文件。所以我想設置一些啟動器文件(.desktop)並製作它們,以便使用者只能啟動它們並且他們無法重命名或刪除,只需啟動即可。
目前,如果使用者擁有包含任何文件的目錄。他可以刪除。
如果沒有適用於所有 *nix 的通用方式,那就是 Linux 和 ext4 FS。
(我不喜歡闖入使用者的家,我認為應該允許他們對自己的家做任何他們想做的事……但無論如何……)
這應該適用於linux(至少)。我假設
user
已經是該組的成員user
。一種解決方案是更改所有權Directory1
並在目錄上設置粘性位:chown root:user Directory1 chmod 1775 Directory1
然後使用:
chown root Directory1/CantBeDeletedFile
現在,
user
由於粘性位¹,將無法刪除此文件。user
仍然能夠在Directory1
. 但請注意,他們將無法刪除Directory1
,因為它永遠不會被清空。—
- 當目錄啟用sticky bit 時,使用者(除了所有者)只能刪除目錄中自己的文件。這用於
/tmp
權限為1777
=的目錄rwxrwxrwt
。
i
使用該屬性使文件不可變。chattr +i file.desktop
有關更多資訊,請參閱
man chattr
。