试试这个代码
root /home/user $ touch hehehe
Run Code Online (Sandbox Code Playgroud)
然后作为普通用户
user ~ $ rm -f hehehe
Run Code Online (Sandbox Code Playgroud)
我们的用户可以删除其主目录中的 root 拥有的文件。这不仅适用于他们的主目录,而且适用于他们可写的任何目录。
现在试试
root /home/user $ mkdir -p testdir
Run Code Online (Sandbox Code Playgroud)
和
user ~ $ rm -rf testdir
Run Code Online (Sandbox Code Playgroud)
也有效。然而:
root /home/user $ mkdir -p testdir/childdir
user ~ $ rm -rf testdir/childdir
Run Code Online (Sandbox Code Playgroud)
失败,因此我们的用户显然无法删除可写目录中的非空不可写目录。
根据我的理解,这三个测试用例都应该失败了。但显然,当目录可写时,这赋予用户一些关于其内容的重要功能。
关于用户拥有的文件系统权限可以执行哪些原始文件系统操作(create,,delete等)的确切规则是什么?
一旦您了解在所有兼容 UNIX 的文件系统中,文件不是存在于目录中的东西,而是完全独立的东西,答案就变得非常清楚了。目录只不过是文件链接的集合(这就是为什么从目录中删除文件的系统调用是unlink())。当没有指向文件的链接(refcount为零)时,文件本身就会死亡。
这有几个含义:
| 归档时间: |
|
| 查看次数: |
595 次 |
| 最近记录: |