cp +不想覆盖权限


23

cp不更改目标文件的权限的情况下如何使用该命令?例如:

cp /tmp/file   /home/file

我不想改变chownchgrp/home/file


3
目前尚不清楚您是要保留源权限还是目标权限。您还跨站点向超级用户发送了垃圾邮件。
萧伯纳

为了便于记录,“ preservation”选项是参考source的cp -p使目标属性与源属性匹配(从而保留)。
mpersico '17

1
我只是偶然发现了此页面。默认情况下,cp应该保留目标文件的权限和user:group,因为它以更新模式打开目标并保留其inode。因此,我不清楚为什么答案没有表明这一点。
推土机

Answers:


30

如果您只cp ... 打开了手册

接下来不会覆盖文件的权限和所有权+分组身份:

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

请注意,如果要保留所有权和分组身份,则需要root特权。

手册摘录:

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

不完全是作者想要的。--no-preserve如果在之后使用--preserve(或其别名)是有意义的,否则它不会影响的行为cp。作者希望保留现有目标文件的文件模式,仅覆盖其内容
盆地

例如:更换ssh主机密钥cp --no-preserve=mode,ownership ssh* /etc/ssh/。这使秘密密钥具有世界可读性。
盆地

手册页的--preserve解释是恕我直言,因为它并没有明确地保留以下内容:源或目标属性
Waslap



0

根本不要使用与权限相关的开关,尤其是--no-preserve,因为它的行为很奇怪:

好:

[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

坏:

[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

0

CP默认不覆盖权限。如果您要确保权限不会被覆盖,请使用

cp --preserve=mode,ownership /tmp/file /target_dir_where_file_resides
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.