ฉันต้องการสำรองข้อมูลด้วยตัวเลือก "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 เว้นแต่คุณจะบอกเป็นอย่างอื่น