Se cp
criar o arquivo de destino, ele replicará as permissões do arquivo de origem, exceto os bits definidos no umask. Este é um comportamento padrão (veja, por exemplo, a etapa 3.b na especificação Unix v3 (POSIX 2001) .
Por que o cp foi projetado dessa maneira? Porque há muitos casos em que esse comportamento é desejável, por exemplo, preservando a privacidade de um arquivo quando as permissões originais são restritivas, e preservar a executabilidade é quase sempre a coisa certa a fazer. No entanto, é lamentável que nem mesmo o GNU cp tenha uma opção para desativar esse comportamento.
A maioria das ferramentas de cópia (por exemplo, pax, rsync) se comporta da mesma maneira. Você pode garantir que o arquivo será criado com a permissão padrão ao desacoplar a origem do destino, por exemplo, com cat <baz >foo/baz
.