root 拥有的文件夹的权限

root 拥有的文件夹的权限

当我以具有 777 权限的 root 用户身份创建目录时,当我以默认用户身份登录时可以删除它,但当我以aorb用户身份登录时,我无法删除它。显示权限被拒绝。

我的问题是,为什么我的默认用户可以删除 root 创建的文件夹,而其他用户却不能,因为所有人都拥有 777 权限。

答案1

如果用户对目录具有写入和执行权限,则他们可以删除其中的任何文件或目录,无论其所有权如何。之所以如此,是因为从目录中删除文件或子目录是对目录的修改,而不是对被删除内容的修改。

示例:我在我拥有的目录中创建一个 root 拥有的目录,然后将其删除。

$ sudo mkdir directory
$ ls -l
total 4
drwxr-xr-x  2 root  wheel  512 Nov 25 11:11 directory
$ rmdir directory
$ ls -l

(无输出)

现在,如果子目录包含文件,那么该目录的权限就变得更有趣了:

$ sudo mkdir directory
$ sudo touch directory/file
$ rm -rf directory
rm: directory/file: Permission denied
rm: directory: Directory not empty

在这里,我无法删除子目录,因为我无权删除其中的文件。

但是你说权限设置为777,这意味着任何人都可以删除其中的文件:

$ sudo chmod 777 directory
$ rm -rf directory

(没有错误)

我系统上的另一个用户仍然无法执行此操作,因为他们在我正在工作的目录中没有写权限,尽管他们可以还是删除内容root 拥有的子目录的目录,如果他们可以访问该目录(用户需要对该目录的执行权限,并且所有父目录)。

相关内容