Geralmente, as permissões não são propagadas pelo diretório em que os arquivos estão sendo copiados, mas novas permissões são controladas pelo usuário umask. No entanto, quando você copia um arquivo de um local para outro, é um caso especial, em que o usuário umaské essencialmente ignorado e as permissões existentes no arquivo são preservadas. Compreender esse conceito é a chave para conseguir o que deseja.
Portanto, para copiar um arquivo, mas "largar" suas permissões atuais, você pode dizer cppara "não preservar" usando o --no-preserve=allcomutador.
Exemplo
Digamos que tenho o seguinte arquivo como você.
$ mkdir -m 744 somedir
$ touch afile
$ chmod 400 afile
$ ll
total 0
-r--------. 1 saml saml 0 Feb 14 15:20 afile
E, como você confirmou, se apenas o copiarmos cegamente usando cp, obtemos o seguinte:
$ cp afile somedir/
$ ls -l somedir/
total 0
-r--------. 1 saml saml 0 Feb 14 15:20 afile
Agora vamos repetir isso, mas desta vez diga cppara "remover permissões":
$ rm -f somedir/afile
$ cp --no-preserve=all afile somedir/
$ ls -l somedir/
total 0
-rw-rw-r--. 1 saml saml 0 Feb 14 15:21 afile
Portanto, o arquivo copiado agora tem suas permissões definidas para 664, onde as obteve?
$ umask
0002
Se eu mudei meu umaskpara outra coisa, podemos repetir esse teste uma terceira vez e ver os efeitos que isso umasktem sobre os não preservados cp:
$ umask 037
$ rm somedir/afile
$ cp --no-preserve=all afile somedir/
$ ls -l somedir/
total 0
-rw-r-----. 1 saml saml 0 Feb 14 15:29 afile
Observe que as permissões não são mais 664, mas são 640? Isso foi ditado pelo umask. Estava dizendo a todos os comandos que criam um arquivo para desativar os 5 bits inferiores nas permissões ... esses caras: ( ----wxrwx).
setfaclcomando você tentou? Qual foi a sua saída?