chmod 777在php中

时间:2011-02-16 16:32:50

标签: php linux permissions chmod

如果我在php中使用mkdir()创建一个文件夹,它有www-data:www-data用户和755权限。

问题是我无法用ftp-user删除此文件夹(zapbe:psasrv) 我尝试用php中的chmod($ path,“0777”)修改文件夹,但这不起作用。

如何为www-data和ftp-user创建可读/可删除的已创建文件夹和上传文件?

4 个答案:

答案 0 :(得分:5)

bool chmod ( string $filename , int $mode )

在PHP中,它们可能对安全性有一些限制,因此根据您的配置,它可能无法正常工作。

上面的函数返回一个booleon,让你知道它是否成功更改了实体权限。

if(!chmod($directory,0777))
{
    echo "Unable to chmod $direcotry";
}

PHP的引用:

  

当前用户是运行PHP的用户。它可能与您用于普通shell或FTP访问的用户不同。只有在大多数系统上拥有该文件的用户才能更改该模式。

了解上述情况,您应该查看chown

答案 1 :(得分:4)

要删除目录,您需要具有父目录的写权限,而不是您要删除的目录。为了在父级上提供写访问权限,一个好方法是让某个组拥有该父级,即www-data和你的ftp用户都是其成员,并且永远不会使用777权限。另外,请确保您的父文件夹没有设置粘滞位。

答案 2 :(得分:2)

默认情况下,当您在* nix中创建文件夹时,其他用户将无法删除/修改该文件夹。

更改www-data created文件夹的权限,从浏览器的php脚本中运行命令,它应该成功更新

  

注意不要将新权限放在双引号中,它必须是   八进制数

chmod($path, 0777);
// not chmod($path, "0777);

一旦你这样做,任何人都可以修改文件夹

答案 3 :(得分:0)

删除双引号并尝试并检查文件所有者

chmod($path, 0777)