cp + izinlerin üzerine yazmak istemiyor


23

cpHedef dosyanın izinlerini değiştirmeden komutu nasıl kullanıyorsunuz ? Örneğin:

cp /tmp/file   /home/file

Değişmek istemiyorum chownve chgrpüzerinde /home/file.


3
Kaynak izinlerini mi yoksa hedef izinleri mi korumayı istediğinizi açık değil. Ayrıca, SuperUser’a spam gönderilmiş siteler arası da.
Tom Shaw

Kayıt için, "koruma" seçenekleri kaynağa referanslıdır . cp -pHedef niteliklerin kaynak niteliklerle eşleşmesini (böylece korunmasını) sağlar.
mpersico

1
Ben sadece bu sayfada tökezledi. cp varsayılan olarak hedef dosya izinlerini ve user: grup korumasını sağlamalıdır, çünkü hedefi güncelleme modunda açar ve inode'u korur. Bu yüzden cevapların neden bunu göstermediği açık değil.
dozer

Yanıtlar:


30

Kılavuzucp sadece açtıysanız ...

Bir sonraki dosya izinlerini ve sahiplik + grubunu geçersiz kılmayacak:

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

Sahipliği ve gruplandırmayı korumak istiyorsanız kök ayrıcalıklarına gerek olduğunu unutmayın.

Kılavuzdan bir alıntı:

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

Yazarın istediği tam olarak değil. --no-preservesonra kullanılırsa --preserve(veya takma adı) mantıklı olur , aksi halde davranışını etkilemez cp. Yazar, mevcut bir hedef dosyanın dosya modunu korumak ve içeriğinin yalnızca üzerine yazmak istedi
havza

Ör: ssh ana bilgisayar anahtarlarını değiştirin cp --no-preserve=mode,ownership ssh* /etc/ssh/. Bu, gizli anahtarları dünyaca okunabilir hale getirir.
havza

Man sayfasının - özel açıklamaları IMHO saçmadır, çünkü neyi koruyacağını açıkça belirtmez: Kaynak veya hedef nitelikler
Waslap



0

Özellikle izinsiz anahtar kullanmayın --no-preserve, çünkü garip davranıyor:

iyi:

[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

kötü:

[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 varsayılan olarak izinleri geçersiz kılmaz. İzinlerin geçersiz kılınmayacağından emin olmak istiyorsanız,

cp --preserve=mode,ownership /tmp/file /target_dir_where_file_resides
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.