我很确定我做错了什么,但我无法弄清楚......
我设置了一些目录,内容如下:
sudo setfacl -dR -m u::rwX,g::rwX,o::rX,u:ubuntu:rwX,u:www-data:rwX,g:www-data:rwX .
sudo setfacl -R -m u:ubuntu:rwX,u:www-data:rwX,g:www-data:rwX .
我的问题是,其中的现有文件突然在组上获得一个可执行标志。在我的测试服务器上,我做了完全相同的事情,但这种情况并没有发生。此服务器与测试服务器之间的唯一区别是我使用 rysnc 复制文件并创建目录,但使用的命令不包含用于保留权限的标志(-rltvz
)。在测试服务器上我使用了。机器之间的匹配scp
结果也是如此。getfacl
在测试机上,如果我touch test.txt
执行第二个setfacl
命令(如上所列),则该文件将添加组执行位,而其余文件则保持原样。保留相同权限的现有文件具有以下设置:
# file: veggies.png
# owner: ubuntu
# group: www-data
user::rw-
user:www-data:rw-
user:ubuntu:rw-
group::rw-
group:www-data:rw-
mask::rw-
other::r--
新创建的文件具有以下设置:
# file: test.txt
# owner: ubuntu
# group: ubuntu
user::rw-
user:www-data:rwx #effective:rw-
user:ubuntu:rwx #effective:rw-
group::rwx #effective:rw-
group:www-data:rwx #effective:rw-
mask::rw-
other::r--
但ls
说:-rw-rw-r--+ 1 ubuntu ubuntu 0 Feb 28 10:00 test.txt
编辑: 因此,在阅读了大量资料后,问题似乎是第二个命令正在“重新计算掩码”。您可以看到组权限列为“rwx”,掩码为“rw-”,因此ls
显示“rw-”,但第二个命令将掩码重新计算为“rwx”,然后在中显示“rwx” ls
。但是,我仍然不明白为什么touch test.txt
第一个命令将默认值设置为“g::rwX”,这意味着常规文件应该具有“rw-”权限,而组权限为“rwx”的文件却没有创建。