cod*_*oob 2 linux permissions rm
前几天我在做一些清理,决定删除一个我卡在我的开发环境中的日志文件,当我这样做时,我开始认为权限不应该让我,我不应该有权限。我不需要这个文件,但为什么它让我呢?这是之前和之后:
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$
Run Code Online (Sandbox Code Playgroud)
请注意,文件 production.log 仅对 root 有写权限,但我删除了它,没有 root 权限。
那是怎么发生的?[抱歉格式化。查看了提示,但仍然没有看到更好的选择。]
删除文件不会写入文件——它只会写入您已经拥有w
和x
权限的父目录。
(Linux 并没有真正的“删除文件”系统调用——它只有一个unlink调用,它通过删除指向文件的目录条目来工作……如果这是最后一个指针,那么实际的文件会得到垃圾收集。它与通过添加目录条目创建硬链接的链接相反。)
归档时间: |
|
查看次数: |
120 次 |
最近记录: |