รายการควบคุมการเข้าถึง
คำตอบที่ตรงเป็นรายการควบคุมการเข้าถึง (ACL) ใช่คุณสามารถหาตัวอย่างตัวอย่างได้ แต่มันก็ใช้ได้ดีในทางปฏิบัติ (ต่างจากการเขียนแบบกลุ่มซึ่งต้องการให้ผู้ใช้คิดตลอดเวลา) สิ่งที่พวกเขาต้องการคือผู้ดูแลระบบ (root) กำหนดกลุ่มหากคุณต้องการให้ไฟล์ถูกแชร์โดยกลุ่มที่มีชื่อเท่านั้น (รูทสามารถเลือกที่จะมอบสิทธิ์ตัวอย่างเช่นโดยการยอมรับกลุ่มจาก LDAP แต่นั่นเป็นอีกเรื่องหนึ่ง)
คุณต้องการให้ผู้ใช้ที่เข้าร่วมมีจำนวน um ที่ 022 หากพวกเขาสร้างไฟล์ที่ไม่สามารถอ่านได้ทั่วโลกชุดรูปแบบนี้จะไม่ทำงาน แต่ถ้าพวกเขามี umask ที่ จำกัด ก็น่าจะเป็นเพราะพวกเขาไม่ต้องการแบ่งปันไฟล์อยู่ดี
เปิดใช้งาน ACL
Ubuntu ไม่เปิดใช้งาน ACL ตามค่าเริ่มต้นดังนั้นจึงมีข้อกำหนดของผู้ดูแลระบบเพียงครั้งเดียว แก้ไข/etc/fstab
โดยใช้เครื่องมือแก้ไขที่คุณชื่นชอบและเปลี่ยนทุกบรรทัดที่สอดคล้องกับระบบไฟล์ที่คุณต้องการแชร์ไฟล์: เพิ่มacl
ในตัวเลือก (ตรวจสอบให้แน่ใจว่าจะไม่เปลี่ยนบรรทัดอื่นและไม่ใช้ตัวแก้ไขที่ตัดบรรทัดยาว) นี่คือตัวอย่างบรรทัดที่มีacl
ตัวเลือกเพิ่ม:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
เพื่อให้ตัวเลือกมีผลในครั้งแรกให้ใช้คำสั่งดังต่อไปนี้ (สำหรับระบบไฟล์แต่ละระบบ):
sudo mount -o remount,acl /
ติดตั้งเครื่องมือ ACL จากacl
แพ็คเกจ
การตั้งค่าไดเรกทอรีที่ใช้ร่วมกัน
ในการแบ่งปันไฟล์โดยกลุ่มmygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
หากผู้คนสร้างไฟล์และคัดลอกไปยังไดเรกทอรีที่ใช้ร่วมกันไฟล์จะสามารถอ่านได้ทั่วโลก (เพราะ umask) และทุกคนในกลุ่มสามารถเพิ่มและลบไฟล์ได้ (เพราะกลุ่มนั้นเป็นกลุ่มที่เขียนได้) ผู้คนไม่สามารถแก้ไขไฟล์ของกันและกันได้ แต่มันเป็นสิ่งที่ดีหรือคุณต้องเจอกับความขัดแย้งในการแก้ไขทันที
หากคุณไม่มีกลุ่ม unix คุณสามารถเพิ่มผู้ใช้ทีละคน:
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
การควบคุมเวอร์ชัน
หากคุณต้องการให้ผู้อื่นสามารถแก้ไขไฟล์ได้คุณต้องมีบางสิ่งในการป้องกันความขัดแย้ง นั่นคือการควบคุมเวอร์ชัน
คุณไม่จำเป็นต้องใช้สิ่งนี้เพื่อแชร์ที่เก็บ git คุณรู้ว่ามีวิธีแก้ปัญหาเช่น gitosis ดังนั้นใช้พวกเขา