cp + não quer sobrescrever permissões

21

Como você usa o comando cp sem alterar as permissões do arquivo de destino? Por exemplo:

cp /tmp/file   /home/file

Não quero alterar chown e chgrp on /home/file .

    
por David 26.05.2011 / 08:55

5 respostas

28

Se você apenas tiver aberto o manual para cp ...

O próximo não substituirá as permissões de arquivo e a propriedade + grupo:

cp --no-preserve=mode,ownership /tmp/file /home/file

Observe que os privilégios de root são necessários se você deseja preservar a propriedade e o grupo.

Um trecho do manual:

  --preserve[=ATTR_LIST]
      preserve   the   specified   attributes   (default:  mode,owner-
      ship,timestamps), if possible  additional  attributes:  context,
      links, xattr, all
    
por 26.05.2011 / 09:23
10

cat também funcionará:

cat /tmp/file > /home/file
    
por 26.05.2011 / 10:32
0

Ou você pode usar um programa install ainda melhor do GNU coreutils que foi feito para essa finalidade específica. Por favor, note que não é capaz de recurse (não -R ou -r opção).

link

    
por 03.06.2011 / 16:40
0

Não use nenhum parâmetro relacionado a permissão, especialmente --no-preserve , porque ele se comporta de forma estranha:

bom:

[il@localhost Downloads]$ sudo cp ssh_host_* /etc/ssh/
[il@localhost Downloads]$ ls -l /etc/ssh
total 604
-rw-r--r--  1 root root     581843 Oct 20  2017 moduli
-rw-r--r--  1 root root       2276 Oct 20  2017 ssh_config
-rw-------  1 root root       3907 Oct 20  2017 sshd_config
-rw-r-----. 1 root ssh_keys    227 Oct  2 12:26 ssh_host_ecdsa_key
-rw-r--r--. 1 root root        172 Oct  2 12:26 ssh_host_ecdsa_key.pub
-rw-r-----. 1 root ssh_keys    411 Oct  2 12:26 ssh_host_ed25519_key
-rw-r--r--. 1 root root        100 Oct  2 12:26 ssh_host_ed25519_key.pub
-rw-r-----. 1 root ssh_keys   1679 Oct  2 12:26 ssh_host_rsa_key
-rw-r--r--. 1 root root        392 Oct  2 12:26 ssh_host_rsa_key.pub

ruim:

[il@localhost Downloads]$ sudo cp --no-preserve=mode,ownership ssh_host_* /etc/ssh/
[il@localhost Downloads]$ ls -l /etc/ssh
total 604
-rw-r--r--  1 root root     581843 Oct 20  2017 moduli
-rw-r--r--  1 root root       2276 Oct 20  2017 ssh_config
-rw-------  1 root root       3907 Oct 20  2017 sshd_config
-rw-r--r--. 1 root ssh_keys    227 Oct  2 12:27 ssh_host_ecdsa_key
-rw-r--r--. 1 root root        172 Oct  2 12:27 ssh_host_ecdsa_key.pub
-rw-r--r--. 1 root ssh_keys    411 Oct  2 12:27 ssh_host_ed25519_key
-rw-r--r--. 1 root root        100 Oct  2 12:27 ssh_host_ed25519_key.pub
-rw-r--r--. 1 root ssh_keys   1679 Oct  2 12:27 ssh_host_rsa_key
-rw-r--r--. 1 root root        392 Oct  2 12:27 ssh_host_rsa_key.pub
    
por 02.10.2018 / 11:41
0

O cp não substitui as permissões por padrão. Se você quiser ter certeza de que a permissão não será substituída, use

cp --preserve=mode,ownership /tmp/file /target_dir_where_file_resides
    
por 21.10.2018 / 11:07

Tags