当我以具有 777 权限的 root 用户身份创建目录时,当我以默认用户身份登录时可以删除它,但当我以a
orb
用户身份登录时,我无法删除它。显示权限被拒绝。
我的问题是,为什么我的默认用户可以删除 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 拥有的子目录的目录,如果他们可以访问该目录(用户需要对该目录的执行权限,并且所有父目录)。