Freebsd 二级组不允许删除文件夹

Jar*_*eff 6 freebsd unix permissions

TLDR:我有一个用户是作为辅助组的组的成员。此用户可以作为辅助用户删除具有 664 perms 的文件,但不能删除具有 775 perms 的目录。

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

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

每次都必须登录我的服务器才能手动删除文件夹,这让我发疯了。一些文件夹和文件是由我的 1 个 php 脚本创建的,但是当我检查文件的属性时,权限设置正确。

目录和文件创建效果惊人。可以删除文件,只是不能删除目录。

Freebsd 9.0 在 VirtualBox 中运行(32 位) Proftpd(作为 www 和 www 运行)作为 ftp 服务器(尝试使用 Dreamweaver 和 filezilla 作为客户端)基本放大器设置(apache、mysql 和 php)。

编辑:

父文件夹是 755。我知道这将是愚蠢而简单且容易被忽视的东西。我以为我将 mass perms 设置为 775 两个目录(apache22/data),但我必须在设置 perms 后创建该目录。你每天学习新的东西。谢谢!

vor*_*aq7 3

为了删除目录,您必须对其父目录具有写权限。例如,给定这个目录:

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
Run Code Online (Sandbox Code Playgroud)

只能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
Run Code Online (Sandbox Code Playgroud)

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