覆盖默认组所有权的 ACL 时出现问题

覆盖默认组所有权的 ACL 时出现问题

我无法覆盖之前设置的 ACL 设置。

它看起来是这样的:

root@ip-xxx-xxx:/srv/www# getfacl grace.staging.site.com.au/
# file: grace.staging.site.com.au/
# owner: web
# group: www-data
user::rwx
group::r-x
group:www-data:rwx
group:dev:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:www-data:rwx <---------
default:mask::rwx
default:other::r-x

如您所见,默认组是default:group:www-data:rwx- 此设置已递归应用。但是,每次我创建新文件或目录时,它们都会归因于luqo33:dev

luqo33@ip-xxx-xxx:/srv/www/grace.staging.site.com.au$ touch test_file
luqo33@ip-xxx-xxx:/srv/www/grace.staging.site.com.au$ ls -al
total 20
drwxrwxr-x+ 3 web    www-data 4096 Jun 28 19:14 .
drwxr-xr-x  5 web    www-data 4096 Jun 28 18:33 ..
drwxrwxr-x+ 2 web    www-data 4096 Jun 28 18:33 logs
-rw-rw-r--+ 1 luqo33 dev         0 Jun 28 19:14 test_file <-------

我需要使所有文件和目录都归web:www-data.显然,尽管组 ( www-data) 有默认 ACL,但它没有任何作用。我缺少什么?

答案1

这不是defaultACL 上条目的含义;而是该条目的含义。如果您查看创建的新文件,您会发现它已经有一个 ACL(+位于 ls 输出末尾),并且 agetfacl test_file将显示它已group:www-data:rwx与之关联。

如果您希望新创建的文件是拥有的那时www-data您需要在目录上添加 setgid 位。

如果没有该标志,如果我创建一个文件,那么它就在我的组中:

$ ls -ld .
drwxr-xr-x 2 sweh www-data 4096 Jun 28 17:37 ./

$ touch x
$ ls -l x
-rw-r--r-- 1 sweh sweh 0 Jun 28 17:38 x

我现在将 setgid 位添加到目录中,新文件的组所有权默认为 www-data

$ sudo chmod g+s .
$ ls -ld .
drwxr-sr-x 2 sweh www-data 4096 Jun 28 17:38 ./

$ touch y
$ ls -l y
-rw-r--r-- 1 sweh www-data 0 Jun 28 17:38 y

相关内容