当父目录所有者不是同一用户时,为什么无法重命名子目录

当父目录所有者不是同一用户时,为什么无法重命名子目录

可能的重复:
无法重命名我拥有的目录

我试图理解为什么当用户 A 拥有目录 X 时,当 X 的父目录由用户 B 拥有时,无法重命名它。任何人都可以解释一下吗?

$ls -l ~
drwxr-xr-x 11 root root   4096 Jan 31 09:43 mymedia

~/mymedia$ ls -l
drwxr-xr-x  6 rag rag  4096 Jan 31 08:34 Entertainment

~/mymedia$ mv  Entertainment/ entertainment
mv: cannot move `Entertainment/' to `entertainment': Permission denied

答案1

重命名文件时,您不会更改该文件,而是更改其父目录。文件名是目录中的一个条目。想想电话目录,要更改目录中与电话号码关联的名称,您需要修改目录,而不是电话线路。该名称仅与该目录中的电话线路相关联。该电话号码可能位于另一个目录中,且名称不同(硬链接)。

但重命名目录有一个警告,因为目录包含对其父级(其..条目)的引用。为了能够移动目录,仅对旧父目录(以删除条目)和新父目录(以添加新条目)具有写权限是不够的,您还需要对目录本身具有写权限才能更新条目..(如果旧的和新的父项不同)。

相关内容