ก่อนอื่นบิตของพื้นหลังเพื่ออธิบายสิ่งที่เกิดขึ้น: ไฟล์ใน OS X สามารถมีการตั้งค่าการอนุญาตที่แตกต่างกันสองแบบ: POSIX และ ACL
ไฟล์เสมอ (ดีเกือบทุกครั้ง) มีการใช้สิทธิ์ POSIX ซึ่งประกอบด้วยเจ้าของกลุ่มและอื่น ๆ (ด้วยการอ่านเขียนและเรียกใช้งานสำหรับแต่ละไฟล์) ไม่มีวิธีในการควบคุมการสืบทอดสิทธิ์ POSIX: รายการใหม่จะเป็นของผู้ใช้ทุกคนที่สร้างขึ้นมาการกำหนดกลุ่มจะได้รับการสืบทอดจากโฟลเดอร์ที่พวกเขาอยู่และการเข้าถึงจะถูกกำหนดโดย umask (ซึ่งค่อนข้างดีเสมอ: เจ้าของได้รับการเข้าถึงแบบเต็มกลุ่มและอื่น ๆ อ่านอย่างเดียว + เรียกใช้สำหรับโฟลเดอร์) ดังนั้นการอนุญาต POSIX จะไม่ทำงานสำหรับสิ่งที่คุณพยายามทำ
ไฟล์ยังสามารถใช้ access control list (ACL) นี่คือรายการของรายการควบคุมการเข้าถึง (ACEs) ซึ่งแต่ละรายการใช้กับผู้ใช้หรือกลุ่มระบุประเภทของการเข้าถึง (โดยละเอียด) ไม่ว่าพวกเขาจะได้รับอนุญาตหรือปฏิเสธและควรคัดลอก ACE ด้วยหรือไม่ รายการที่สร้างขึ้นภายในโฟลเดอร์ บิตสุดท้ายนั้นเป็นส่วนที่ทำให้มีประโยชน์สำหรับคุณ คุณต้องสร้าง ACE ในโฟลเดอร์ที่ระบุกลุ่มที่คุณต้องการประเภทการเข้าถึงที่คุณต้องการและการสืบทอดแบบเต็ม
chmod บน OS X สามารถจัดการ ACE ด้วยตัวเลือกการอนุญาต + a, -a, etc หากฉันเข้าใจสิ่งที่คุณต้องการคุณจะใช้สิ่งนี้ (ด้วยชื่อกลุ่มและการแทนที่เส้นทางโฟลเดอร์ของคุณ) เพื่อสร้าง ACE:
chmod +a "group:examplegroup allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /path/to/folder
โปรดทราบว่าการสืบทอดไม่ใช่ "สด" นั่นคือไม่สามารถใช้กับรายการที่สร้างขึ้นก่อนที่คุณจะกำหนด ACE และจะไม่ใช้กับรายการที่สร้างขึ้นที่อื่นจากนั้นย้ายไปไว้ในโฟลเดอร์ คุณสามารถนำไปใช้กับเนื้อหาที่มีอยู่โดยใช้ -R ( chmod -R +a ...) ฉันไม่รู้วิธีใด (ยกเว้นเครื่องมือผู้ดูแลเซิร์ฟเวอร์ของ Apple) เพื่อบังคับให้สืบทอดรายการที่ย้ายเข้าไปในโฟลเดอร์