我如何能够在没有 sudo 的情况下删除根拥有的文件

hjp*_*r92 7 linux sudo permissions rm

我有以下输出ls -lFh

-rw-r--r-- 1 hjpotter92 hjpotter92  926 Aug  2 18:40 static.yaml
drwxr-xr-x 5 hjpotter92 hjpotter92 4.0K Sep 12 19:40 templates/
-rw-r--r-- 1 root       root       1.5K Sep 12 20:09 xyz
Run Code Online (Sandbox Code Playgroud)

我以hjpotter92. 我的用户NOPASSWDsudoers列表中没有条目。有人可以解释我尝试以下操作时的行为:

$ which rm
rm: aliased to rm -i
$ rm xyz
rm: remove write-protected regular file 'xyz'? y
$ sudo rm xyz
rm: cannot remove 'xyz': No such file or directory
$ ls -lFh
total 176K
<a lot of other files>
-rw-r--r-- 1 hjpotter92 hjpotter92  926 Aug  2 18:40 static.yaml
drwxr-xr-x 5 hjpotter92 hjpotter92 4.0K Sep 12 19:40 templates/
Run Code Online (Sandbox Code Playgroud)

Jar*_*era 14

在这种情况下,文件所在的目录具有重要的写权限。所以如果你可以写目录,你也可以删除那里的文件。

  • 更一般地,单个文件可以存在于多个目录中(通过硬链接)。从目录中删除文件不一定会从磁盘中删除其内容。 (6认同)
  • 当然是有记录的。在九十年代的这个常见问题解答中提到 http://www.ibiblio.org/pub/historic-linux/distributions/redhat-5.1/i386/doc/FAQ/html/Linux-FAQ-6.html#ss6.12 。https://en.wikipedia.org/wiki/File_system_permissions#Permissions 说:“写权限授予修改文件的能力。当为目录设置时,此权限授予修改目录中条目的能力。这包括创建文件、删除文件和重命名文件。” 文件所有者无关紧要。 (5认同)
  • 从安全的角度来看是可以的。如果您没有文件的写权限,则无法修改它。但是,如果文件在您可以写入的目录中,您可以修改该目录的内容。目录的内容由文件或子目录组成。 (2认同)
  • @hjpotter92:很多文档都写得很好。有一个粘性位禁止删除不属于您的文件。通常,具有特权的进程应该可以控制它们写入的目录(整个路径)。 (2认同)