Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        5个月前关闭。
                                                                                            
                
        
我创建了一个文件foo.txt作为root。

但是我可以将该用户删除为普通用户。该文件的身份验证如下:

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


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

最佳答案

删除文件需要对包含文件的目录(而不是文件本身)具有写访问权。您只需要记住操作是做什么的。删除不涉及对要删除的文件的任何更改,而只是涉及从其所在目录“文件”中删除指向该文件的指针。

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

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

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

10-07 19:45
查看更多