linux - 为什么非 super 用户可以删除root创建的文件?

标签 linux

我以 root 身份创建了一个文件 foo.txt。

但我可以像普通用户一样删除该用户。文件的验证如下:

-rw-r--r--  1 user1 user1          0 Oct 11 09:31 foo.txt

这怎么可能?对于现实生活中的例子来说,这是危险的情况。

最佳答案

删除文件需要对包含该文件的目录进行写访问,而不是文件本身。您只需要记住操作的作用即可。删除并不涉及对要删除的文件进行任何更改,只是涉及从其所在的目录"file"中删除指向该文件的指针。

如果您打开文件进行写入并尝试更改其中的一个字节,您会发现它受到保护。请注意,这可能与编辑文件不同,因为可以通过读取文件、删除原始文件,然后写入新副本来完成(所有这些都可以通过对文件的读取访问权限和对目录的写入访问权限来完成)。

而且,不,这并不是真正危险,因为安全系统还保护包含真实系统文件的目录,例如/etc:

pax@paxBoxA> ls -ld /etc
drwxr-xr-x 1 root root 4096 Oct 11 14:45 /

关于linux - 为什么非 super 用户可以删除root创建的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58335471/

相关文章:

linux - 如何根据与 file2 的列匹配删除 file1 中的行

linux - 如何/在哪里找到要修复的 Linux 内核错误?

sql-server - 为 MSSQL Server docker 镜像启用 XA 事务

linux - 在 Linux 中设置 ACPI 字段

linux - .cshrc 修改后打不开

linux - UNIX如何多次解析目录中的文件列表

c - Linux 上的 Termios.h 错误,Windows 上的 -lftdi 错误。交叉编译

linux - Quotactl block 大小

linux - 将内核空间中的全局变量指针映射到用户空间?

c - 可能 `epoll_ctl`修改传递给它的 `epoll_event`结构?