ACL 未应用默认组

ACL 未应用默认组

我想要目录中的所有新文件/文件夹/var/www/公司及其所有子目录,以拥有用户公司和组www-数据

所以我像这样设置我的 ACL:

$ getfacl /var/www/company/
getfacl: Removing leading '/' from absolute path names
# file: var/www/company/
# owner: company
# group: www-data
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:company:rwx
default:group::r-x
default:group:www-data:rwx
default:mask::rwx
default:other::r-x

但是,如果我创建一个新文件,例如,touch foo那么用户和组都设置为公司:

-rw-rw-r--+ 1 公司 公司 0 Jun 30 09:52 foo


$ getfacl foo
# file: foo
# owner: company
# group: company
user::rw-
user:company:rwx            #effective:rw-
group::r-x          #effective:r--
group:www-data:rwx      #effective:rw-
mask::rw-
other::r--

$ id company
uid=1000(company) gid=33(www-data) groups=33(www-data),27(sudo)

答案1

ACL 与新对象的主要组无关。 Linux 唯一可能的操作是强制使用与父目录相同的组。为此,您必须为该目录设置 SGID 位:

chmod g+s /var/www/company

答案2

您无法创建具有执行权限的文件。除了执行之外,默认值似乎在创建时保留。

您可以尝试创建一个文件夹来检查这里是否有“执行”(通过)权限。

相关内容