Linux(Pop_OS)在没有适当权限的情况下删除了文件?

Linux(Pop_OS)在没有适当权限的情况下删除了文件?

有一天,我在做一些清理工作,决定删除我开发环境中的一个日志文件,当我这样做的时候,我开始想权限不应该允许我这样做,我不应该有权限。我不需要这个文件,但是为什么它允许我这样做呢?以下是之前和之后的对比:

jim@jim-pop-os:~/development/apps/apoxeia/log$ ls -altr
total 441800  
-rwxr-xr-x  1 jim  jim          0 Jan 25  2020 .gitkeep  
-rw-r--r--  1 jim  jim          0 Jan 25  2020 bullet.log  
drwxr-xr-x  2 jim  jim       4096 Apr  9 22:13 .  
-rw-r--r--  1 root root    759153 Apr 20 08:31 production.log  
-rw-r--r--  1 jim  jim    1208297 May  3 18:03 development.log  
-rw-rw-r--  1 jim  jim  449190680 May  6 08:07 test.log  
drwxr-xr-x 25 jim  jim       4096 May  6 08:14 ..  
-rw-rw-r--  1 jim  jim    1214644 May  6 08:41 capistrano.log  
jim@jim-pop-os:~/development/apps/apoxeia/log$ rm production.log   
rm: remove write-protected regular file 'production.log'? y  
jim@jim-pop-os:~/development/apps/apoxeia/log$ ls -altr  
total 441052  
-rwxr-xr-x  1 jim jim         0 Jan 25  2020 .gitkeep  
-rw-r--r--  1 jim jim         0 Jan 25  2020 bullet.log  
-rw-r--r--  1 jim jim   1208297 May  3 18:03 development.log  
-rw-rw-r--  1 jim jim 449190680 May  6 08:07 test.log  
drwxr-xr-x 25 jim jim      4096 May  6 08:14 ..  
-rw-rw-r--  1 jim jim   1214644 May  6 08:41 capistrano.log  
drwxr-xr-x  2 jim jim      4096 May  6 21:14 .  
jim@jim-pop-os:~/development/apps/apoxeia/log$   

请注意,文件 production.log 仅对 root 具有写入权限,但我删除了它,而没有 root 权限。

这是怎么回事?[抱歉格式不对。看了提示,但还是没找到更好的选择。]

答案1

删除文件并不会写入文件 - 它只会写入父目录,您已经拥有wx权限。

(Linux 实际上没有“删除文件”系统调用——它只有一个解除链接调用该函数,其工作原理是删除指向该文件的目录条目……如果这是最后一个指针,则实际文件将被垃圾收集。它与关联通过添加目录条目来创建硬链接。)

相关内容