cp + ne veut pas écraser les autorisations


23

Comment utilisez-vous la cpcommande sans modifier les autorisations du fichier cible? Par exemple:

cp /tmp/file   /home/file

Je ne veux pas changer chownet ainsi de chgrpsuite /home/file.


3
Il n'est pas clair si vous demandez de conserver les autorisations source ou les autorisations cible. Vous avez également inter-sites spammé vers SuperUser.
Tom Shaw,

Pour mémoire, les options de "préservation" se réfèrent à la source . cp -pfait correspondre les attributs cibles (préservant ainsi) les attributs source.
mpersico

1
Je suis juste tombé sur cette page. cp par défaut devrait conserver les permissions des fichiers cibles et user: group car il ouvre la cible en mode mise à jour et conserve son inode. Donc, je ne comprends pas pourquoi les réponses ne l'indiquent pas.
bulldozer

Réponses:


30

Si vous n'avez ouvert le manuel que pourcp ...

Le suivant ne remplacera pas les autorisations de fichiers et la propriété + le groupe:

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

Notez que les privilèges root sont nécessaires si vous souhaitez conserver la propriété et le groupe.

Un extrait du manuel:

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

Pas exactement ce que l'auteur voulait. --no-preserveest logique s'il est utilisé après --preserve(ou ses alias), sinon il n'affecte pas le comportement de cp. L'auteur a voulu conserver le mode fichier d'un fichier cible existant et écraser uniquement son contenu
bassin

Ex: remplacer les clés d'hôte ssh cp --no-preserve=mode,ownership ssh* /etc/ssh/. Cela rend les clés secrètes lisibles dans le monde entier.
bassin

L'explication --preserve de la page de manuel est absurde à
mon humble avis



0

N'utilisez pas du tout de commutateurs liés aux autorisations, en particulier --no-preserve, car ils se comportent étrangement:

bien:

[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

mauvais:

[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

Le cp ne remplace pas les autorisations par défaut. Si vous voulez vous assurer que l'autorisation ne sera pas remplacée, utilisez

cp --preserve=mode,ownership /tmp/file /target_dir_where_file_resides
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.