Freebsd 次要组不允许删除文件夹

Freebsd 次要组不允许删除文件夹

TLDR:我有一个用户,他是某个组的次要成员。作为次要用户,此用户可以删除权限为 664 的文件,但不能删除权限为 775 的目录。

详细信息:我有一个用户。我们称他为 ftpuser。我使用他将文件上传和下载到我的 devbox。该用户的主要组是“ftp”,并且作为次要组位于组“www”中。我的 Web 服务器以用户 www 和组 www 的身份运行,并且我已将 proftpd(以 www 和 www 的身份运行)配置为将所有文件放入所需目录 www 和 www(用于文件所有权),文件的权限为 664,目录的权限为 775。

我的问题是(尝试使用 2 个 ftp 客户端)ftp 客户端可以删除文件,但不能删除文件夹。Filezilla 返回 550 权限被拒绝。未设置仅所有者可以删除标志,我已三次检查权限,它们确实是 775。

每次都要登录服务器手动删除文件夹,这让我很抓狂。有些文件夹和文件是由我的 php 脚本创建的,但当我检查文件的属性时,权限设置正确。

目录和文件创建工作非常出色。可以删除文件,但不能删除目录。

Freebsd 9.0 在 VirtualBox 中运行(全程 32 位) Proftpd(以 www 和 www 身份运行)作为 ftp 服务器(尝试使用 dreamweaver 和 filezilla 作为客户端)基本 amp 设置(apache、mysql 和 php)。

编辑:

父文件夹是 755。我知道这是一件非常简单且容易被忽略的事情。我以为我将两个目录(apache22/data)的批量权限设置为 775,但我必须在设置权限后创建该目录。你每天都会学到新东西。谢谢!

答案1

要删除目录,您必须对其父级具有写入权限。例如,给定此目录:

drwxr-xr-x    3 owner  staff   102 Nov  5 22:00 .
drwxr-xr-x  160 owner  admin  5440 Nov  5 22:00 ..
drwxr-xr-x    2 owner  staff    68 Nov  5 22:00 foo

只能owner删除目录foo(因为只owner对父目录有写权限)。

如果授予该staff组对父目录的写权限:

drwxrwxr-x    3 owner  staff   102 Nov  5 22:00 .
drwxr-xr-x  160 owner  admin  5440 Nov  5 22:00 ..
drwxr-xr-x    2 owner  staff    68 Nov  5 22:00 foo

然后该组的任何成员都staff可以删除该目录foo
但请注意,为了删除该目录,他们还需要能够删除其所有内容,因为您无法删除非空目录。

答案2

删除文件夹的权限就是“写入”父文件夹的权限。您实际上要做的是删除父文件夹中的“子文件夹”条目。我猜父文件夹对“www”组没有写入权限。

相关内容