Answers:
有点粗略,但这很接近-如果您删除目录上的写访问权限,则无法删除其中的文件。它并不需要sudo
您是否拥有它:
=^_^= izkata@izein:~$ mkdir test
=^_^= izkata@izein:~$ touch test/delme
=^_^= izkata@izein:~$ chmod a-w test
=^_^= izkata@izein:~$ echo 'Hello' > test/delme
=^_^= izkata@izein:~$ cat test/delme
Hello
=^_^= izkata@izein:~$ rm test/delme
rm: cannot remove `test/delme': Permission denied
因此,您可以根据需要设置文件本身的权限。
另外,正如@Rinzwind所说,围绕它肯定有很多方法。
要删除文件,您需要对该文件链接到的所有目录具有写权限。要将其从一个目录取消链接,您需要对该目录具有写权限。
因此,只要您授予文件写入权限(甚至所有权),但不授予文件所链接的目录的写权限,则无法删除该文件。
实现此目标的最佳方法是将文件链接到root拥有的目录,该目录不能被任何人写入。您可以改为拥有它,这意味着您和root都可以删除它。
这样仍然可以使其他用户将该文件链接到其他目录,然后再从该目录取消链接,但是他们仍然无法删除该文件,因为他们可以从您自己的目录取消链接。
请注意,要使此功能充分发挥作用,必须控制每个路径组件对文件的写入权限。因为例如,如果文件是,/a/b/the-file
并且您/a/b
不是任何人都可以写的/a
,但是每个人都可以对进行写访问,那么他们可以将其重命名/a/b
为其他文件,然后重新创建自己的文件/a/b
并在其中创建自己的文件/a/b/the-file
。