bak*_*ytn 46 permissions directory rm
假设用户有Directory1并且它包含File1 File2 CantBeDeletedFile 如何使用户永远不会被允许删除CantBeDeletedFile?
如果我更改Directory1的所有权并删除写入权限,用户将无法删除任何文件。他们也无法添加新文件等。
我只是希望能够设置一些永远不会被删除的文件。
更具体的描述。
我正在创建用户配置文件。我正在他们的Desktop 中创建应用程序启动器文件。所以我想设置一些启动器文件 (.desktop) 并让它们让用户只能启动它们而他们不能重命名或删除,只需启动。
当前,如果用户拥有包含任何文件的目录。他可以删除。
如果没有适用于所有 *nix 的通用方法,那就是 Linux 和 ext4 FS。
Kei*_*ith 69
使用i
属性使文件不可变。
chattr +i file.desktop
Run Code Online (Sandbox Code Playgroud)
man chattr
有关更多信息,请参阅。
Sté*_*nez 42
(我不喜欢闯入用户的家,我认为他们应该被允许对他们的家做任何他们想做的事情......但无论如何......)
这应该适用于 linux(至少)。我假设user
已经是该组的成员user
。一种解决方案是更改目录的所有权Directory1
并在目录上设置粘滞位:
chown root:user Directory1
chmod 1775 Directory1
Run Code Online (Sandbox Code Playgroud)
然后使用:
chown root Directory1/CantBeDeletedFile
Run Code Online (Sandbox Code Playgroud)
现在,user
由于粘滞位¹ ,将无法删除此文件。将user
仍然能够在添加/删除自己的文件Directory1
。但请注意,他们将无法删除,Directory1
因为它永远不会被清空。
—
1. 当目录上启用粘滞位时,用户(所有者除外)只能删除目录中自己的文件。这用于/tmp
权限为1777
= 的目录rwxrwxrwt
。