如果我在php中使用mkdir()创建一个文件夹,它有www-data:www-data用户和755权限。
问题是我无法用ftp-user删除此文件夹(zapbe:psasrv) 我尝试用php中的chmod($ path,“0777”)修改文件夹,但这不起作用。
如何为www-data和ftp-user创建可读/可删除的已创建文件夹和上传文件?
答案 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)