(Eu suponho que você esteja trabalhando no Linux, o funcionamento de ACLs é diferente entre variantes unix.)
cp
não faz nada de especial quando você copia o arquivo; cria o arquivo com o modo do arquivo original, mascarado pela máscara do diretório. Como cp
não faz nada para a máscara do arquivo, a máscara acaba sendo a intersecção da máscara de diretório ( rwx
) e as permissões de grupo do arquivo ( r
).
open("dir/file", O_WRONLY|O_CREAT|O_EXCL, 0644)