文件所有者/组48/48

时间:2012-10-22 22:12:19

标签: php filesystems

我遇到了问题。在我的PHP主机中,当我创建文件或目录(通过rename()mkdir())时,我的文件是使用OWNER 48,GROUP 48而不是FTP OWNER / GROUP(与其他主机一样)创建的。

问题在于,如果我通过PHP执行mkdir(),我无法管理这个目录(比如放入一些文件,重命名dir或删除),即使在PHP中也是如此!如果我通过FTP创建这个目录,我可以做到。真奇怪。

现在我需要知道:我错了或我的PHP主机被窃听?他们告诉我这是代码问题。

我的代码:

mkdir($image_dir, 0777, true);

它会在FTP上创建类似的东西:

NAME   TYPE  DATE   PERMS      OWNER/GROUP
./1967 [DIR] [DATE] fle (0755) 48/48

即使我将mkdir()上的chmod设置为0777,它也会创建为0755。

那么,我可以做点什么,或者我的主人需要做什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

起初这并不奇怪,webserver / php作为与ftp客户端不同的用户运行是好的。

这很丑,但可以帮助你:在任何文件操作之前使用umask(0000);。当php创建时,它会尝试生成所有文件和目录0777

您应该检查webserver / php和ftp客户端是否至少在同一组中,以便您可以使用umask 0007。

顺便说一句。 php是否以安全模式运行?它可以防止文件写入其他用户...无论如何你应该确保禁用它,因为自从5.3以来它被弃用并从5.4开始删除