ฉันต้องการสำรองข้อมูลด้วยตัวเลือก "p" บนคำสั่ง tar ปัญหาคือสถานที่ที่ฉันจะกู้คืนข้อมูลนี้จะมีผู้ใช้เดียวกันทั้งหมด แต่ผู้ใช้เหล่านั้นอาจมี ID ที่แตกต่างกัน สิ่งนี้สร้างความแตกต่างให้กับ tar หรือจะเรียกคืนสิทธิ์อย่างถูกต้องด้วยชื่อผู้ใช้หรือไม่?
ฉันต้องการสำรองข้อมูลด้วยตัวเลือก "p" บนคำสั่ง tar ปัญหาคือสถานที่ที่ฉันจะกู้คืนข้อมูลนี้จะมีผู้ใช้เดียวกันทั้งหมด แต่ผู้ใช้เหล่านั้นอาจมี ID ที่แตกต่างกัน สิ่งนี้สร้างความแตกต่างให้กับ tar หรือจะเรียกคืนสิทธิ์อย่างถูกต้องด้วยชื่อผู้ใช้หรือไม่?
คำตอบ:
tarบันทึกการอนุญาตตาม UID และ GID ไม่ใช่จากสายอักขระที่เกี่ยวข้อง ดังนั้นหาก UID บนเซิร์ฟเวอร์เดียวคือ 3300 และนั่นเชื่อมโยงกับ 'bob' บนเซิร์ฟเวอร์ใหม่ไฟล์นั้นจะเป็นเจ้าของโดยผู้ใช้ที่มี UID 3300
ทุกอย่างเสมือนจริง (ฉันต้องการพูดทุกอย่าง แต่คุณไม่มีทางแน่ใจได้ 100%) บน UNIX ใช้ค่า UID: GID เพราะนั่นคือสิ่งที่ถูกจัดเก็บจริงในระดับระบบไฟล์ ชื่อเป็นเพียงการค้นหาอย่างง่ายในไฟล์ passwd การตรวจสอบเบื้องต้นจะทำโดยใช้ค่าตัวเลข
tar ไม่ชื่อเจ้าของบันทึก
สรุปคำตอบก่อนหน้าและเพิ่มข้อมูลสำคัญ:
เมื่อมีการสร้างที่เก็บtarมักจะรักษาแฟ้มผู้ใช้และรหัสกลุ่มเว้นแต่บอกอย่างอื่นที่มี,--owner=NAME --group=NAMEแต่ยังคงมีผู้ใช้และกลุ่มที่เกี่ยวข้องกับแต่ละไฟล์เสมอ
tar GNU และรุ่นอื่น ๆ อาจจะของtar, นอกจากนี้ยังมีการจัดเก็บผู้ใช้และกลุ่มชื่อเว้นแต่--numeric-ownerจะใช้ bsdtar ยังจัดเก็บชื่อผู้ใช้และกลุ่มตามค่าเริ่มต้น แต่การสนับสนุน--numeric-ownerตัวเลือกเมื่อสร้างไม่ปรากฏขึ้นจนกว่า bsdtar 3.0 (โปรดทราบว่า bsdtar สนับสนุนตัวเลือกเมื่อแยกออกมานานกว่า)
เมื่อแยกเป็นผู้ใช้ปกติไฟล์ทั้งหมดจะเสมอเป็นเจ้าของโดยผู้ใช้ และจะไม่แตกต่างกันเนื่องจากการแตกไฟล์กำลังสร้างไฟล์ใหม่บนระบบไฟล์และผู้ใช้ทั่วไปไม่สามารถสร้างไฟล์และให้ความเป็นเจ้าของแก่ผู้อื่นได้
เมื่อแตกไฟล์เป็นรูทtarโดยค่าเริ่มต้นจะเรียกคืนความเป็นเจ้าของไฟล์ที่แตกแล้วยกเว้นว่า --no-same-ownerจะใช้ซึ่งจะให้สิทธิ์การเป็นเจ้าของรูทเอง
ใน GNU น้ำมันดิน bsdtar และรุ่นอื่น ๆ อาจจะของtarเจ้าของเรียกคืนจะทำโดยผู้ใช้ (และกลุ่ม) ชื่อถ้าข้อมูลที่อยู่ในการจัดเก็บและมีผู้ใช้ที่ตรงกันในระบบปลายทาง มิฉะนั้นจะเรียกคืนตาม ID หาก--numeric-ownerมีการระบุตัวเลือกชื่อผู้ใช้และกลุ่มจะถูกละเว้น
สิทธิ์และการประทับเวลานอกจากนี้ยังมีการบันทึกไว้ในการจัดเก็บและเรียกคืนโดยเริ่มต้นเว้นแต่ตัวเลือก--no-same-permissionsและ / หรือ--touchมีการใช้ เมื่อแยกโดยผู้ใช้ผู้ใช้umaskจะถูกลบออกจากการอนุญาตเว้นแต่--same-permissionsจะใช้
--preserve-permissionsและ--same-permissionsเป็นชื่อแทนและมีฟังก์ชันการทำงานเช่นเดียวกับ-p
หวังว่านี่จะช่วยชี้แจงปัญหา! :)
tarให้ระบุชื่อโดยพลการใน--ownerหรือ--groupที่ผ่านมาtarทำการค้นหาโดยไม่คิดค่าใช้จ่ายในเครื่องปัจจุบัน/etc/passwdและปฏิเสธที่จะทำงานหากไม่มีการแข่งขัน
--ownerแต่เพิ่มใน--numeric-ownerธงด้วย น้ำมันดินจะจัดการกับข้อกำหนดการแข่งขันเหล่านี้ได้อย่างไร
--ownerและ--numeric-ownerไม่ได้เป็นเอกสิทธิ์เฉพาะบุคคลและให้บริการเพื่อวัตถุประสงค์ที่แตกต่างกันมาก: --owner=USERNAMEจะแทนที่ไฟล์และเจ้าของ dirs เมื่อทำการเก็บถาวรไฟล์ในขณะที่--numeric-ownerจะไม่เก็บชื่อผู้ใช้เพียงแค่ตัวเลข ID ของเขา
ใช้ตัวเลือก --same-owner กับ GNU tar ดูhttp://www.gnu.org/software/tar/manual/html_section/Attributes.html
หากคุณพยายามถ่ายโอนไฟล์ระหว่างสองระบบ rsync จะตั้งค่าการอนุญาตตามชื่อผู้ใช้แทน uid โดยค่าเริ่มต้นดูที่ชื่อผู้ใช้ที่ปลายทั้งสอง เฉพาะในกรณีที่ผู้ใช้ไม่มีอยู่ในระบบใดระบบหนึ่งจะคัดลอกมันด้วย uid เว้นแต่คุณจะบอกเป็นอย่างอื่น