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

3

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

当我通过PHP上传文件到服务器时,它会以“rwxr-xr-x”和“www-data www-data”作为用户和组来创建文件。

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

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

我发现唯一让我删除该文件的方法是将文件的所有权更改为“管理员”帐户。显然,我不想为每个上传的文件都这样做,或者确实将每个文件的CHMOD更改为“0777”。

我在这里做错了什么,以至于无法使用不同的帐户创建文件,然后删除它?

1个回答

6
能够删除文件的权限不由文件本身的权限控制,而是由包含该文件的目录的权限控制。
父目录的权限和所有者/组是什么?这些是您需要的权限。
查看您在评论中列出的权限,您需要为www-data组添加组写入权限(尽管这里需要考虑安全问题),或将自己添加到sudoers文件中,以允许您的帐户以www-data用户执行命令。
编辑
目录创建时使用的权限将受到当前umask设置的影响。您可以更改umask以允许创建具有任意权限的文件,如下所示:
$old = umask(0);
mkdir(date("Y", time()), 0775)
umask($old);

drwxr-xr-x 2 www-data www-data 4096 2010-10-22 13:48 2010 - Sjwdavies
4
对该目录执行chmod 775,你就可以完成了。不过要停下来想一想这样做可能带来的安全影响。还有谁属于www-data组? - Paul Rubel
@ Paul Ruben:只有我们IT部门的5名成员(全部是开发人员)。如果我将我的php更改为使用“mkdir(date("Y", time()), 0775)” ,它会创建一个像这样的目录“drwxr-xr-x 2 www-data www-data 4096 2010-10-22 14:09 2010”。 - Sjwdavies

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接