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.