เมื่อใช้ยูทิลิตี tar เพื่อเก็บไฟล์ในการสำรองข้อมูลหนึ่งจะสูญเสีย ACL ที่ขยายเพิ่ม
มีบางส่วนที่ใช้กันทั่วไปและไม่ใช่โซลูชันแฮ็ค (เช่น: สร้างสคริปต์ที่จะคำนวณ ACLs ใหม่ตั้งแต่เริ่มต้น) เพื่อรักษา ACLs หรือไม่
เมื่อใช้ยูทิลิตี tar เพื่อเก็บไฟล์ในการสำรองข้อมูลหนึ่งจะสูญเสีย ACL ที่ขยายเพิ่ม
มีบางส่วนที่ใช้กันทั่วไปและไม่ใช่โซลูชันแฮ็ค (เช่น: สร้างสคริปต์ที่จะคำนวณ ACLs ใหม่ตั้งแต่เริ่มต้น) เพื่อรักษา ACLs หรือไม่
คำตอบ:
ใช้น้ำมันดิน
เพื่อสร้าง:
tar --acls -cpf backup.tar some-dir-or-file
วิธี untar:
tar --acls -xpf backup.tar
tar: unrecognized option '--acls'
ไม่สำเร็จ.
--acls
tar
ไม่สนับสนุน--acls
จนกระทั่งเจสซี่ (ดูข้อผิดพลาด # 732071 .) wheezy-backports
คุณลักษณะที่ยังมีอยู่ในแพคเกจจาก
wheezy-backports
รุ่นที่กล่าวtar
มีข้อผิดพลาด--acls
ตัวเลือก การสกัด Tarball โดยใช้ตัวเลือกดังกล่าวจะกำหนด acl แม้ว่าไฟล์เก็บถาวรจะไม่มี (!) ดูที่นี่
ที่จริงฉันเชื่อว่าคำถามไม่ได้เกี่ยวกับบิตสิทธิ์ของไฟล์ (มาตรฐาน) แต่ข้อมูล ACL ที่ขยายเพิ่ม (ดู setfacl (1) หรือ acl (5))
สำหรับความรู้ของฉัน tar GNU ที่ไม่ได้แก้ไขจะไม่สนใจข้อมูล ACL (หน้า man สำหรับ GNU tar 1.15.1 ตามที่จัดส่งมาพร้อมกับ RHEL 5.2 กล่าวถึงสวิตช์ - acls และ - no-acls แต่ฉันไม่ได้ทำให้ใช้งานได้)
อย่างไรก็ตามโปรแกรมดาวสามารถสำรองและกู้คืน ACL ได้หากคุณเลือกรูปแบบexustar :
star -c -p -acl artype=exustar -f archive.tar files...
star -x -acl -f archive.tar
ติดดาวหน้าแรก: http://cdrecord.berlios.de/new/private/star.html Star มีให้บริการใน Ubuntu อย่างน้อย
star
ไม่พร้อมใช้งานบน Debian และดูเหมือนจะไม่ได้รับการดูแลรักษาโดย "ทีม" โครงการยังคงมีชีวิตอยู่และได้รับการบำรุงรักษาหลังจาก 30 ปีขึ้นไป ลองbsdtar
ถ้าคุณต้องการอย่างอื่น
ฉันกำลังมองหาวิธีการแก้ปัญหาเช่นกันจนถึงตอนนี้ฉันพบสิ่งนี้:
ทำ getfactl จากโฟลเดอร์ของฉันก่อน
getfacl -R /a_folder > folder.acl
จากนั้นทำ tar ปกติ
tar -czvf folder.tar.gz /a_folder
เมื่อฉันดึงมันออกมา
tar -xvf folder.tar.gz
ทำ setfacl สำหรับการอนุญาต
setfacl --restore=folder.acl
มันใช้งานได้สำหรับฉัน
rsync with the -A and/or -X options.
rdiff-backup
หากคุณกำลังมองหาวิธีการแก้ปัญหาที่มีประสิทธิภาพยังง่ายต่อการใช้งานผมอยากแนะนำให้
โดยพื้นฐานแล้วมันจะทำสำเนาของไดเรกทอรีต้นทางไปยังไดเรกทอรีปลายทาง แต่ก็ยังบันทึกข้อมูลเพิ่มเติมเพื่อให้คุณสามารถย้อนเวลากลับไปได้ทุกเมื่อที่คุณต้องการ
และแน่นอนว่ามันจะรักษา symlink, ไฟล์พิเศษ, hardlinks, การอนุญาต, ความเป็นเจ้าของ uid / gid และเวลาการแก้ไข
bsdtar
ผมขอแนะนำให้คุณใช้
bsdtar
การสำรองข้อมูลขยาย ACL โดยค่าเริ่มต้นจะใช้ไวยากรณ์เดียวกันเป็นGNU tar
, GNU tar
และเก็บมันผลิตสามารถอ่านได้จาก
แพคเกจและชื่อคำสั่ง (ภายใต้การกระจาย Debian based) bsdtar
คือ
bsdtar cf archive.tar /my/folder/using/extd_acl
bsdtar xf archive.tar
คำสั่งที่ 2 (แยก) กู้คืน ACLs
จากหน้า Man tar
-p, --same-permission, --preserve-permission
ละเว้น umask เมื่อทำการแตกไฟล์ (ค่าเริ่มต้นสำหรับ root)
มันไม่ได้เป็นการกระทำของการเก็บถาวรที่เปลี่ยนแปลงสิทธิ์การเข้าถึง (ACLs) แต่เป็นการกระทำของการคลายออก กลาสีเรือมักถูกใช้เพื่อแจกจ่ายไฟล์จากผู้ใช้รายหนึ่งไปยังอีกคนหนึ่งและดังนั้นจึงเป็นเรื่องที่สะดวกที่จะใช้ผู้ใช้ขอumaskเมื่อแกะ
เพื่อรักษาสิทธิ์ก่อนหน้าไฟล์เพียง ad ap สำหรับตัวเลือกของคุณ ตัวอย่างเช่น
น้ำมันดินตรง:
tar xvp some-file
bz.tar:
tar xvjp some-file
gz.tar:
tar xvzp some-file