cp + möchte Berechtigungen nicht überschreiben


23

Wie können Sie den cpBefehl verwenden, ohne die Berechtigungen der Zieldatei zu ändern? Beispielsweise:

cp /tmp/file   /home/file

Ich will mich nicht ändern chownund chgrpweiter /home/file.


3
Es ist nicht klar, ob Sie die Quell- oder Zielberechtigungen beibehalten möchten. Sie haben auch Cross-Site-Spam an SuperUser gesendet.
Tom Shaw

Für die Aufzeichnung beziehen sich die "Erhaltungs" -Optionen auf die Quelle . cp -pLässt die Zielattribute mit den Quellattributen übereinstimmen (wodurch sie erhalten bleiben).
mpersico

1
Ich bin gerade auf diese Seite gestoßen. cp sollte standardmäßig die Berechtigungen für Zieldateien und user: group beibehalten, da es das Ziel im Aktualisierungsmodus öffnet und seinen Inode beibehält. Deshalb ist mir nicht klar, warum die Antworten dies nicht anzeigen.
Bulldozer

Antworten:


30

Wenn Sie nur das Handbuch fürcp ...

Der nächste überschreibt nicht die Dateiberechtigungen und Eigentumsrechte + Gruppenmitgliedschaft:

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

Beachten Sie, dass Root-Rechte erforderlich sind, wenn Sie Eigentümer und Gruppenmitgliedschaft beibehalten möchten.

Ein Auszug aus dem Handbuch:

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

Nicht genau das, was der Autor wollte. --no-preservemacht Sinn, wenn es nach --preserve(oder seinen Aliasen) verwendet wird, sonst hat es keinen Einfluss auf das Verhalten von cp. Der Autor wollte den Dateimodus einer vorhandenen Zieldatei beibehalten und nur deren Inhalt überschreiben
Becken

Beispiel: Ersetzen Sie die SSH-Host-Schlüssel cp --no-preserve=mode,ownership ssh* /etc/ssh/. Dadurch sind die geheimen Schlüssel weltweit lesbar.
Becken

Die Manpage --preserve Erklärung ist meiner Meinung nach unsinnig, da es nicht klar macht, was zu bewahren: Die Quell- oder
Zielattribute

10

cat wird auch funktionieren:

cat /tmp/file > /home/file


0

Verwenden Sie überhaupt keine berechtigungsbezogenen Schalter, insbesondere --no-preserve, weil sie sich seltsam verhalten:

gut:

[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

Schlecht:

[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

Der cp überschreibt standardmäßig keine Berechtigungen. Wenn Sie sicherstellen möchten, dass die Berechtigung nicht überschrieben wird, verwenden Sie

cp --preserve=mode,ownership /tmp/file /target_dir_where_file_resides
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.