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

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

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

答案1

除非在基本权限系统之外使用 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

如果您有 shell 访问权限,并且您的 shell 用户拥有该文件(或者您的用户可以更改为该文件的所有者 (su/sudo/…)),则只需chmod手动将其恢复即可。否则,如果您可以编辑 PHP 脚本(并且 PHP 以该文件的所有者身份运行),则只需将其编辑为该chmod文件以获得所需的权限。

答案2

如果您可以首先修改创建该文件的 PHP,也许您可​​以让 PHP 将权限重置为您想要的......

答案3

基本上不会。您失去了对该文件的所有访问权限。只有 root 可以更改该文件的权限。请联系您的系统管理员,或托管该网站的托管公司或 ISP 的管理员。

相关内容