rm:无法删除:权限被拒绝

Nik*_*luk 53 linux bash

    max@serv$ whoami
    max
    max@serv$ ls -la ./defines.php 
    -rwxrwxrwx 1 max max 1985 2011-11-16 02:01 ./defines.php
    max@serv$ chmod 0777 ./defines.php 
    max@serv$ rm ./defines.php 
    rm: cannot remove `./defines.php': Permission denied
    max@serv$
Run Code Online (Sandbox Code Playgroud)

如何删除此文件?

Rob*_*obᵩ 140

代码说明了一切:

max@serv$ chmod 777 .
Run Code Online (Sandbox Code Playgroud)

好吧,它并没有说出一切.

在UNIX和Linux中,删除文件的能力不是由该文件的访问位决定的.它由包含该文件的目录的访问位确定.

可以这样想 - 删除文件不会修改该文件.你没有写入文件,为什么文件上的"w"很重要?删除文件需要编辑指向该文件的目录,因此该目录上需要"w".

  • 我的天啊!这个答案给了我另一个问题的解决方案,同样的逻辑适用于读取文件,而不仅仅是删除. (2认同)