ตั้งค่าการอนุญาตอย่างเข้มงวดเมื่อเรียกใช้ rsync


15

ขณะนี้ฉันกำลังสำรองข้อมูลกิกะไบต์และกิกะไบต์จากเซิร์ฟเวอร์สดไปยังเซิร์ฟเวอร์สำรองโดยใช้สคริปต์ชุด rsync / ssh เพื่อให้สามารถดำเนินการอัตโนมัติทุกคืนด้วยงาน cron

ปัญหาที่ฉันมีคือการอนุญาต

การรัน rsync ด้วยโหมด -a จะทำการคัดลอกผู้ใช้: กลุ่มและโหมดไฟล์ซึ่งขณะนี้มี 54122: เกมและ -rwx - S ---

เพื่อให้สามารถเรียกใช้ไฟล์บนเซิร์ฟเวอร์สำรองได้ (อย่าถามฉันว่าทำไมนายจ้างถึงต้องการสิ่งนี้) ฉันต้องใช้เวลา - และค่าใช้จ่ายซีพียู (เนื่องจากจำนวนข้อมูลที่ถ่ายโอน) จำนวนมาก chown () และ chmod () ตั้งค่าทุกไฟล์ / โฟลเดอร์เป็น www-data: www-data และการอนุญาต 755

ฉันสามารถตั้งค่า rsync ให้บังคับให้แต่ละไฟล์ / โฟลเดอร์เป็น www-data: www-data และ 755 หรือฉันกำลังดูปัญหานี้จากมุมที่ผิดหรือไม่?

ฉันเดาว่าฉันสามารถรัน -rltD แทน -a (ซึ่งเทียบเท่ากับ -rlptgoD) แต่แล้วเกิดอะไรขึ้นกับไฟล์ใหม่ พวกเขาได้รับการอนุญาตและเจ้าของ: การตั้งค่ากลุ่ม?

คำตอบ:


23

ท่ามกลางตัวเลือกอื่น ๆrsyncสามารถเปลี่ยนการอนุญาตโดยใช้มันด้วยตัวเลือก:

rsync [options] --chmod=CHMOD source destination

ซึ่งคุณยังสามารถรวมตัวเลือก--archiveกับตัวเลือก--no-ownerหรือ--no-permsยกเว้นการสงวนไว้ซึ่งการดูแลของเจ้าของ สิทธิ์ สำหรับตัวเลือกเพิ่มเติมเกี่ยวกับการตั้งค่าที่ลึกซึ้งมากสำหรับ CHMOD ดูmanpage สำหรับ rsync


โปรดทราบว่า--permsจำเป็นต้องตั้งค่าสถานะเพื่อให้คำสั่งด้านบนทำงานได้ นอกจากนี้แม้ว่าฉันไม่ได้ลอง แต่ฉันคิดว่าการ--no-permsตั้งค่าสถานะจะไม่ทำงาน แต่ส่วนใหญ่จะปิดการใช้งานการ--chmodตั้งค่าสถานะ
เรน

7
ตัวอย่าง:rsync --chmod=ugo=rX source/ destination/
Flimm

อีกตัวอย่างหนึ่ง:rsync --chmod=764 source/ destination/
andschar

1

หากการอนุญาตได้รับการตั้งค่าด้วยวิธีนั้นบนเครื่องคุณกำลังคัดลอกจากคุณสามารถลอง -p มันจะบันทึกการอนุญาต นอกจากนี้คุณอาจต้องการลอง grsync มันเป็น gui สำหรับ rsync ที่ทำให้ตัวเลือกบางอย่างชัดเจนขึ้น ยัง - เก็บรักษาเจ้าของ

หวังว่าจะช่วย โชคดี.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.