删除没有超级用户权限的 chmod 0 文件?

Tar*_*haf 2 ftp chmod

PHP 脚本意外地将目录的正确标志 (chmod) 更改为 0。(任何人都不能访问,包括所有者)。如果我没有对这台服务器的 root 访问权限,是否可以使用 FTP 或 PHP 再次删除该文件?

Chr*_*sen 6

除非在基本权限系统之外使用某些 ACL,chmod 000否则无需额外权限即可撤消。权限位控制对文件内容的访问,但不控制对权限位本身的写访问。通常,root 和文件所有者始终对权限位具有写访问权限。因此,您应该能够“恢复”文件,只要您可以作为文件所有者采取行动。

$ id -u                                       
501
$ echo foo > foo                              
$ stat -f '%u %p' foo; cat foo                
501 100644
foo
$ chmod 000 foo
$ stat -f '%u %p' foo; cat foo
501 100000
cat: foo: Permission denied
$ chmod 644 foo
$ stat -f '%u %p' foo; cat foo
501 100644
foo
Run Code Online (Sandbox Code Playgroud)

如果您具有 shell 访问权限并且您的 shell 用户拥有该文件(或者您的用户可以更改为该文件的所有者 (su/sudo/...)),那么只需chmod手动将其返回。否则,如果您可以编辑 PHP 脚本(并且 PHP 作为文件的所有者运行),只需将其编辑chmod到所需的权限即可。