【发布时间】:2011-02-22 22:18:28
【问题描述】:
今天只是一个关于 unix 和 PHP 的问题。
我在我的 PHP 上做的是使用 Unix 系统解压缩一个 tar 文件。
exec("tar -xzf foo.tar.gz");
通常一切正常,直到我遇到这个特定的 foo.tar.gz,它的文件系统如下:
Applications/
Library/
Systems/
运行 tar 命令后,文件权限似乎更改为 644(而不是 755)。
这会导致Permission denied (errno 13) 并因此禁用我的大部分代码。 (我猜是因为没有权限)
有什么方法可以阻止这个 tar 命令完全破坏我的权限?
谢谢。
哦,这似乎只发生在我有一个具有这个特定文件系统的 foo.tar.gz 文件时。其他任何事情,我都很好。
【问题讨论】:
-
100% 确定这是权限问题,而不是文件大小或其他问题?对
chmod的调用会返回什么?可以试试PHP内置的chmod()吗? -
如果描述正确,那么这不是文件的权限问题,因为权限0644将允许所有者读写所有其他文件。即使假设他没有以 root 身份运行,他也应该能够访问这些文件。
-
它是共享主机,所以我不认为我是以 Root 身份运行的。
标签: php unix file-permissions tar