คุณจะใช้cp
คำสั่งโดยไม่เปลี่ยนสิทธิ์ของไฟล์เป้าหมายได้อย่างไร ตัวอย่างเช่น:
cp /tmp/file /home/file
ฉันไม่ต้องการที่จะเปลี่ยนแปลงchown
และ บนchgrp
/home/file
cp -p
ทำให้แอตทริบิวต์เป้าหมายตรงกัน (ซึ่งช่วยรักษา) แอตทริบิวต์ของแหล่งที่มา
คุณจะใช้cp
คำสั่งโดยไม่เปลี่ยนสิทธิ์ของไฟล์เป้าหมายได้อย่างไร ตัวอย่างเช่น:
cp /tmp/file /home/file
ฉันไม่ต้องการที่จะเปลี่ยนแปลงchown
และ บนchgrp
/home/file
cp -p
ทำให้แอตทริบิวต์เป้าหมายตรงกัน (ซึ่งช่วยรักษา) แอตทริบิวต์ของแหล่งที่มา
คำตอบ:
หากคุณเปิดคู่มือสำหรับcp
...
ถัดไปจะไม่เขียนทับสิทธิ์ของไฟล์และการเป็นเจ้าของ + กลุ่ม:
cp --no-preserve=mode,ownership /tmp/file /home/file
โปรดทราบว่าจำเป็นต้องมีสิทธิ์ใช้งานรูทหากคุณต้องการรักษาความเป็นเจ้าของและกลุ่ม
ข้อความที่ตัดตอนมาจากคู่มือ:
--preserve[=ATTR_LIST] preserve the specified attributes (default: mode,owner- ship,timestamps), if possible additional attributes: context, links, xattr, all
--no-preserve
ทำให้รู้สึกว่าใช้หลัง--preserve
(หรือนามแฝงของมัน) cp
มิฉะนั้นจะไม่ได้ส่งผลกระทบต่อการทำงานของ ผู้เขียนต้องการที่จะให้โหมดไฟล์ของไฟล์เป้าหมายที่มีอยู่และเขียนทับเนื้อหาของมันเท่านั้น
cp --no-preserve=mode,ownership ssh* /etc/ssh/
เปลี่ยนคีย์โฮสต์ นี่ทำให้ปุ่มลับสามารถอ่านได้ทั่วโลก
cat
จะทำงานด้วย:
cat /tmp/file > /home/file
หรือคุณสามารถใช้โปรแกรมติดตั้งที่ดียิ่งขึ้นจาก GNU coreutils ที่สร้างขึ้นเพื่อวัตถุประสงค์เฉพาะนี้ โปรดทราบว่ามันไม่สามารถเรียกคืนได้ (ไม่มีตัวเลือก -R หรือ -r)
http://www.gnu.org/software/coreutils/manual/html_node/install-invocation.html
อย่าใช้สวิตช์ที่เกี่ยวข้องกับการอนุญาตโดยเฉพาะอย่างยิ่ง--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
CPไม่แทนที่สิทธิ์โดยค่าเริ่มต้น หากคุณต้องการให้แน่ใจว่าการอนุญาตจะไม่ถูกแทนที่ให้ใช้
cp --preserve=mode,ownership /tmp/file /target_dir_where_file_resides