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 的管理员。