การเปิดตัวยูทิลิตี้การซิงโครไนซ์ไฟล์ Rsync 3.2.4

หลังจากหนึ่งปีครึ่งของการพัฒนา 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

เพิ่มความคิดเห็น