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

时间:2010-10-22 12:46:24

标签: linux permissions

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

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

我已将“管理员”帐户添加到“www-data”群组。

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

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

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

1 个答案:

答案 0 :(得分:6)

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

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

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

修改

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

$old = umask(0);
mkdir(date("Y", time()), 0775)
umask($old);