สิทธิ์เป็นศัตรูพืช
โดยทั่วไปคุณต้องตรวจสอบให้แน่ใจว่านักพัฒนาเหล่านั้นสามารถเขียนถึงทุกอย่างใน repo คอมไพล์ได้
ข้ามไปที่โซลูชันคลื่นลูกใหม่สำหรับวิธีการที่เหนือกว่าในการให้ความสามารถในการเขียนแก่กลุ่มนักพัฒนาซอฟต์แวร์
โซลูชันมาตรฐาน
หากคุณให้นักพัฒนาทั้งหมดในกลุ่มที่สร้างขึ้นเป็นพิเศษคุณสามารถทำได้โดยหลักการ:
chgrp -R <whatever group> gitrepo
chmod -R g+swX gitrepo
จากนั้นเปลี่ยนค่าumask
สำหรับผู้ใช้เป็น002
เพื่อให้ไฟล์ใหม่ถูกสร้างขึ้นด้วยสิทธิ์การเขียนกลุ่ม
ปัญหาเกี่ยวกับเรื่องนี้คือกองทัพ หากคุณอยู่ใน distro ที่ถือว่าเป็นumask
ของ022
(เช่นมีusers
กลุ่มทั่วไปที่รวมทุกคนโดยค่าเริ่มต้น) สิ่งนี้สามารถเปิดปัญหาด้านความปลอดภัยที่อื่น และไม่ช้าก็เร็วมีบางอย่างกำลังจะทำให้เสียรูปแบบการอนุญาตที่สร้างขึ้นมาอย่างระมัดระวังวาง repo ออกจากการกระทำจนกว่าคุณจะroot
สามารถเข้าถึงและแก้ไขได้ (เช่นเรียกใช้คำสั่งข้างต้นอีกครั้ง)
โซลูชั่นคลื่นลูกใหม่
โซลูชันที่เหนือกว่า - แม้ว่าจะเข้าใจน้อยกว่าและต้องการการสนับสนุนจาก OS / เครื่องมืออีกเล็กน้อย - คือการใช้แอตทริบิวต์เพิ่มเติมของ POSIX ฉันเพิ่งมาที่นี่เมื่อไม่นานมานี้ความรู้ของฉันที่นี่ไม่ร้อนเท่าที่ควร แต่โดยทั่วไป ACL ที่ขยายเพิ่มคือความสามารถในการตั้งค่าการอนุญาตให้ใช้มากกว่า 3 สล็อตเริ่มต้น (ผู้ใช้ / กลุ่ม / อื่น ๆ )
ดังนั้นอีกครั้งสร้างกลุ่มของคุณแล้วเรียกใช้:
setfacl -R -m g:<whatever group>:rwX gitrepo
find gitrepo -type d | xargs setfacl -R -m d:g:<whatever group>:rwX
ชุดนี้ตั้ง ACL แบบขยายสำหรับกลุ่มเพื่อให้สมาชิกกลุ่มสามารถอ่าน / เขียน / เข้าถึงไฟล์ใดก็ตามที่มีอยู่แล้ว (บรรทัดแรก) จากนั้นบอกไดเรกทอรีที่มีอยู่ทั้งหมดว่าไฟล์ใหม่ควรใช้ ACL เดียวกันนี้ (บรรทัดที่สอง)
หวังว่าคุณจะได้รับในทางของคุณ