นั่นเป็นปัญหาของระบบผู้ใช้หลายคนโดยเฉพาะอย่างยิ่งถ้าคุณมีมากกว่าหนึ่งระบบ ;) มีไม่ได้จริงๆวิธีที่ดีที่จะทำสิ่งที่คุณต้องการ แนวทางมาถึงใจจะเป็น
- มี UID เดียวกันสำหรับบัญชีของคุณในทุกเครื่องที่คุณใช้ไดรฟ์ภายนอก (จริง ๆ แล้วไม่สามารถทำได้เพราะส่วนใหญ่อาจไม่ใช่เครื่องทั้งหมดที่อยู่ภายใต้การควบคุมของคุณ)
- ใช้ระบบไฟล์โดยไม่ทราบว่าเจ้าของ / กลุ่ม conecpt (FAT หรือ NTFS มาถึงใจ แต่… aaah, no)
แนวทางที่มีประสิทธิภาพมากที่สุดจะกลับมาสู่การปฏิบัติทั่วไป ส่วนใหญ่ (อย่างน้อย) ระบบ Linux ที่มีอยู่บางกลุ่มที่มีมักจะ GIDs ทั่วไป ตัวอย่างเช่นจะusers
มี GID 100
บน distros Linux ส่วนใหญ่ หากคุณสามารถจัดการให้มีบัญชีผู้ใช้ของคุณตามลำดับในกลุ่มนี้คุณสามารถทำได้
- ทำไฟล์และไดเรกทอรีทั้งหมดในไดรฟ์ของคุณเป็นเจ้าของโดยกลุ่มนี้
- อย่างใดจัดการเพื่อให้มีสิทธิ์กลุ่มที่เหมาะสมในไฟล์และไดเรกทอรีเหล่านั้น
- อย่างใดจัดการที่จะมีไฟล์ใหม่ที่สร้างขึ้นด้วยความเคารพความเป็นเจ้าของกลุ่มที่เหมาะสม สิทธิ์
จุดแรกและจุดที่สองทำได้ง่าย ( chown
, chmod
) จุดที่สามได้ยากกว่า
ส่วน "การเป็นเจ้าของกลุ่ม" นั้นค่อนข้างง่าย: คุณสามารถตั้งค่าบิต SGID ในไดเรกทอรีทั้งหมดในไดรฟ์ SGID บิตที่นำไปใช้กับไดเรกทอรีบอกเคอร์เนลให้ทำงานในลักษณะ BSDish: BSD ทำให้ทุกไฟล์ / ไดเรกทอรีที่สร้างขึ้นภายใต้ไดเรกทอรีเฉพาะกลุ่มที่ไม่ใช่เจ้าของโดยกลุ่มหลักของกระบวนการสร้างไฟล์ / ไดเรกทอรี (เช่น Linux) แต่ โดยเจ้าของ parent-directory
บิตการอนุญาตค่อนข้างยาก สิทธิ์ของไฟล์ / ไดเรกทอรีที่สร้างขึ้นใหม่นั้น (ซึ่งอยู่ในกลุ่มอื่น ๆ ) ที่ได้รับอิทธิพลจากumask
, บิตมาสก์จะบอกว่าบิตใดที่ไม่ควรตั้งค่าหากไม่ได้ระบุไว้อย่างชัดเจน umask
ค่าทั่วไปตัวอย่างเช่น022
หมายความว่าไม่ควรตั้งค่า write-bits สำหรับ»กลุ่ม«และ»อื่น ๆ « คุณสามารถเปลี่ยนumask
เป็นได้002
โดยบอกว่าคุณไม่ต้องการให้ลบสิทธิ์การเขียนสำหรับกลุ่ม แต่ข้อเสียคือคุณไม่สามารถตั้งค่าไดเรกทอรีตามค่านี้และโดยปกติคุณไม่ต้องการให้มีสิทธิ์เขียน กลุ่มหลักของคุณตั้งค่าไว้สำหรับทุกไฟล์ที่คุณสร้าง
สิ่งนี้สามารถแก้ไขได้โดยใช้ ACL: ใน ACL คุณสามารถตั้งค่าmask
และdefault
ชุดการอนุญาตซึ่งใช้กับไฟล์และไดเรกทอรีทั้งหมดที่สร้างขึ้นภายในไดเรกทอรีด้วยชุด ACL นี้ ดังนั้นทางออกหนึ่งที่เป็นไปได้สำหรับปัญหาของคุณคือ
- ตรวจสอบให้แน่ใจว่าคุณเป็นสมาชิกของกลุ่มทั่วไปในทุกระบบที่คุณต้องการใช้ไดรฟ์ภายนอก
- ทำไฟล์และไดเรกทอรีทั้งหมดในไดรฟ์ของคุณเป็นเจ้าของกลุ่มนี้และตั้งค่าบิต SGID ในทุกไดเรกทอรี
- เปลี่ยน ACL ของไดเรกทอรีทั้งหมดเพื่อรวมมาสก์และสิทธิ์เริ่มต้นที่บอกเคอร์เนลให้สร้างทุกไฟล์ / ไดเรกทอรีใหม่ด้วยสิทธิ์การเขียนที่ตั้งค่าสำหรับกลุ่ม
ดูsetfacl(1)
และacl(5)
สำหรับรายละเอียดเพิ่มเติม