Não está claro se você está perguntando sobre preservar as permissões de origem ou de destino. Você também enviou spam entre sites para o SuperUser.
Tom Shaw
Para o registro, as opções de "preservação" estão em referência à fonte . cp -pfaz com que os atributos de destino correspondam (preservando assim) os atributos de origem.
Mpersico
1
Eu apenas tropecei nesta página. Por padrão, o cp deve preservar as permissões dos arquivos de destino e o grupo user: porque ele abre o destino no modo de atualização e mantém seu inode. Portanto, não está claro para mim por que as respostas não indicam isso.
Observe que privilégios de root são necessários se você deseja preservar a propriedade e a associação de grupos.
Um trecho do manual:
--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,owner-
ship,timestamps), if possible additional attributes: context,
links, xattr, all
Não é exatamente o que o autor queria. --no-preservefaz sentido se usado depois --preserve(ou seus aliases), caso contrário, não afeta o comportamento de cp. O autor queria manter o modo de arquivo de um arquivo de destino existente e substituir somente seu conteúdo
bacia
Ex: substitua as chaves do host ssh cp --no-preserve=mode,ownership ssh* /etc/ssh/. Isso torna as chaves secretas legíveis pelo mundo.
bacia
A explicação --preserve da página de manual é IMHO sem sentido, pois não deixa claro preservar o que: Os atributos de origem ou destino
Ou você pode usar um programa de instalação ainda melhor a partir do GNU coreutils, criado para esse fim específico. Observe que não é possível efetuar o recursão (sem opção -R ou -r).
cp -p
faz com que os atributos de destino correspondam (preservando assim) os atributos de origem.Respostas:
Se você abriu o manual apenas para
cp
...O próximo não substituirá as permissões do arquivo e a propriedade + associação de grupo:
Observe que privilégios de root são necessários se você deseja preservar a propriedade e a associação de grupos.
Um trecho do manual:
fonte
--no-preserve
faz sentido se usado depois--preserve
(ou seus aliases), caso contrário, não afeta o comportamento decp
. O autor queria manter o modo de arquivo de um arquivo de destino existente e substituir somente seu conteúdocp --no-preserve=mode,ownership ssh* /etc/ssh/
. Isso torna as chaves secretas legíveis pelo mundo.cat
também funcionará:fonte
Ou você pode usar um programa de instalação ainda melhor a partir do GNU coreutils, criado para esse fim específico. Observe que não é possível efetuar o recursão (sem opção -R ou -r).
http://www.gnu.org/software/coreutils/manual/html_node/install-invocation.html
fonte
Não use opções relacionadas à permissão, especialmente
--no-preserve
porque se comporta de maneira estranha:Boa:
ruim:
fonte
O cp não substitui as permissões por padrão. Se você quiser garantir que a permissão não seja substituída, use
fonte