我以 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/