Linux无法删除由www-data创建的文件

Sjw*_*ies 3 linux permissions

我有一个运行Ubutu 10.04和Apache2和PHP的Web服务器.

当我通过PHP将文件上传到服务器时,它使用'rwxr-xr-x'和'www-data www-data'作为用户和组创建它.

我已将"管理员"帐户添加到"www-data"组.

但是,当我通过SSH登录我的服务器并尝试删除其中一个创建的文件时,它会显示"Permission Denied"?即使我对它应用'0777'权限,我仍然无法删除该文件.

我发现允许我删除文件的唯一方法是将文件转到"管理员"帐户.显然我不想为每个上传的文件执行此操作,或者确实CHMOD每个文件都为'0777'.

我在这里做错了不会让我创建一个文件,然后使用另一个帐户删除它?

Ste*_*eet 6

删除文件的能力不受文件权限的控制,而是受包含目录的权限控制.

父目录的权限和所有者/组是什么?这些是您需要的权限.

查看注释中列出的权限,您需要为组www-data添加组写权限(尽管此处需要考虑安全注意事项)或将自己添加到sudoers文件以允许您的帐户执行命令www-data用户

编辑

创建目录的权限将受当前umask设置的影响.您可以更改umask以允许创建具有任意权限的文件,如下所示: -

$old = umask(0);
mkdir(date("Y", time()), 0775)
umask($old);
Run Code Online (Sandbox Code Playgroud)

  • 在目录上执行chmod 775,你就可以了.尽管如此,停下来想想这对安全的影响.还有谁是www-data组? (4认同)