หลังจากหนึ่งปีครึ่งของการพัฒนา Rsync 3.2.4 ก็พร้อมใช้งานแล้ว ซึ่งเป็นยูทิลิตี้การซิงโครไนซ์ไฟล์และการสำรองข้อมูลที่ช่วยให้คุณลดปริมาณการรับส่งข้อมูลด้วยการคัดลอกการเปลี่ยนแปลงแบบเพิ่มหน่วย การขนส่งอาจเป็น ssh, rsh หรือโปรโตคอล rsync ที่เป็นกรรมสิทธิ์ รองรับการจัดระเบียบเซิร์ฟเวอร์ rsync ที่ไม่ระบุชื่อ ซึ่งเหมาะสมที่สุดสำหรับการรับประกันการซิงโครไนซ์มิเรอร์ รหัสโครงการได้รับการเผยแพร่ภายใต้ใบอนุญาต GPLv3
ท่ามกลางการเปลี่ยนแปลงเพิ่มเติม:
- มีการเสนอวิธีการใหม่สำหรับการป้องกันอาร์กิวเมนต์บรรทัดคำสั่ง ซึ่งคล้ายกับตัวเลือก “--protect-args” (“-s”) ที่มีอยู่ก่อนหน้านี้ แต่ไม่ทำลายการทำงานของสคริปต์ rrsync (rsync แบบจำกัด) การป้องกันเกิดขึ้นที่การหลีกเลี่ยงอักขระพิเศษ รวมถึงการเว้นวรรค เมื่อส่งคำขอไปยังตัวแปลคำสั่งภายนอก วิธีการใหม่นี้จะไม่หลีกอักขระพิเศษภายในบล็อกที่มีเครื่องหมายคำพูด ซึ่งช่วยให้คุณสามารถใช้เครื่องหมายอัญประกาศธรรมดาล้อมรอบชื่อไฟล์โดยไม่ต้องมีการหลีกเพิ่มเติม ตัวอย่างเช่น คำสั่ง “rsync -aiv host:'a simple file.pdf' ได้รับอนุญาตแล้ว ” หากต้องการคืนลักษณะการทำงานแบบเก่า มีการเสนอตัวเลือก “--old-args” และตัวแปรสภาพแวดล้อม “RSYNC_OLD_ARGS=1”
- แก้ไขปัญหาที่มีมายาวนานเกี่ยวกับการจัดการอักขระจุดทศนิยมตามสถานที่ปัจจุบัน (" แทนที่จะเป็น ".") สำหรับสคริปต์ที่ออกแบบมาเพื่อประมวลผลเฉพาะ “” เท่านั้น เป็นตัวเลข ในกรณีที่มีการละเมิดความเข้ากันได้ คุณสามารถตั้งค่าภาษาเป็น "C"
- แก้ไขช่องโหว่ (CVE-2018-25032) ในโค้ดที่รวมมาจากไลบรารี zlib ที่ทำให้เกิดบัฟเฟอร์ล้นเมื่อพยายามบีบอัดลำดับอักขระที่เตรียมไว้เป็นพิเศษ
- ใช้ตัวเลือก “--fsync” เพื่อเรียกใช้ฟังก์ชัน fsync() ในแต่ละไฟล์เพื่อล้างแคชของดิสก์
- สคริปต์ rsync-ssl ใช้ตัวเลือก "-verify_hostname" เมื่อเข้าถึง openssl
- เพิ่มตัวเลือก "--copy-devices" เพื่อคัดลอกไฟล์อุปกรณ์เป็นไฟล์ปกติ
- ลดการใช้หน่วยความจำเมื่อถ่ายโอนไดเร็กทอรีขนาดเล็กจำนวนมากแบบเพิ่มหน่วย
- บนแพลตฟอร์ม macOS ตัวเลือก “—atimes” ใช้งานได้
- ใช้ความสามารถในการอัปเดตแอตทริบิวต์ xattrs สำหรับไฟล์ในโหมดอ่านอย่างเดียวหากผู้ใช้ได้รับอนุญาตให้เปลี่ยนสิทธิ์การเข้าถึง (เช่น เมื่อทำงานในฐานะ root)
- เพิ่มและเปิดใช้งานโดยค่าเริ่มต้นพารามิเตอร์ “--info=NONREG” เพื่อแสดงคำเตือนเกี่ยวกับการถ่ายโอนไฟล์พิเศษ
- สคริปต์ rrsync (rsync แบบจำกัด) ถูกเขียนใหม่ใน Python เพิ่มตัวเลือกใหม่ "-munge", "-no-lock" และ "-no-del" ตามค่าเริ่มต้น การบล็อกตัวเลือก --copy-link (-L), --copy-dirlinks (-k) และ --keep-dirlinks (-K) จะถูกเปิดใช้งานเพื่อทำให้การโจมตีที่จัดการ symlink ไปยังไดเร็กทอรียากขึ้น
- สคริปต์ atomic-rsync ได้รับการเขียนใหม่ใน Python และขยายออกไปเพื่อละเว้นโค้ดส่งคืนที่ไม่ใช่ศูนย์ ตามค่าเริ่มต้น รหัส 24 จะถูกละเว้นเมื่อไฟล์สูญหายในขณะที่ rsync กำลังทำงานอยู่ (เช่น รหัส 24 จะถูกส่งคืนสำหรับไฟล์ชั่วคราวที่มีอยู่ในระหว่างการสร้างดัชนีเริ่มต้น แต่ถูกลบออกไปตามเวลาของการย้าย)
- สคริปต์ munge-symlinks ถูกเขียนใหม่ใน Python
ที่มา: opennet.ru