如果我复制一个基本 ACL 为:
u::rw-,g::r--,o::r--
进入默认 ACL 为的目录:
u::rwx,g::r-x,g:users:rwx,m::rwx,o::r-x
我获得一个掩码为m::r--
.我本来期望两个组条目的权限并集(即m::rwx
)。
为什么会这样呢?它是否取决于创建文件时mode
使用的参数?cp
答案1
(我假设您使用的是 Linux,ACL 的工作方式因 UNIX 变体而异。)
cp
复制文件时不会执行任何特殊操作;它使用原始文件的模式创建文件,并用目录掩码进行掩码。由于cp
不对文件的掩码执行任何操作,因此掩码最终成为路口目录掩码 ( rwx
) 和文件的组权限 ( r
)。
open("dir/file", O_WRONLY|O_CREAT|O_EXCL, 0644)