我有这个文件:
$ ls -l store.sh
-rwxr-xr-x 1 root apache 117 Feb 5 2016 store.sh
$ id
uid=48(apache) gid=48(apache) groups=48(apache)
我认为我没有编辑此文件的权限,但可以删除和替换该文件。怎么会这样?有人能解释一下这种行为吗?
答案1
您不需要对文件具有写权限即可删除或移动(重命名)文件。您需要对目录具有写权限包含该文件,因为删除或重命名不是对文件的操作,而是对目录的文件列表的操作。因此在这种情况下,该文件的目录可能对apache
用户或apache
组具有写访问权限。
答案2
删除文件不会修改相关文件,而是会修改父目录,因为它会从目录列表中删除该文件。这也意味着您对该文件的父目录拥有完全权限