สายไปงานเลี้ยงเล็กน้อย แต่ในกรณีที่ผู้อ่านในอนาคตสะดุดกับเรื่องนี้;) ตามที่ผู้อื่นกล่าวไว้ในระบบไฟล์ OS-X มาตรฐาน setUID สำหรับไดเรกทอรีจะถูกเพิกเฉย - และดูเหมือนจะไม่มีวิธีง่ายๆในเรื่องนี้ ( mount -o
.... หรืออะไรไม่) บ่อยครั้งที่ man page จริง ๆ แล้วไม่สอดคล้องกับพฤติกรรม OS-X ที่ระบุ:
4000 (บิต set-user-ID-on-execution) [... ] ไดเรกทอรีที่มีชุด set-user-id bit จะบังคับให้ไฟล์และไดเรกทอรีย่อยทั้งหมดที่สร้างขึ้นในนั้นเป็นเจ้าของโดยเจ้าของไดเรกทอรีไม่ใช่ uid ของกระบวนการสร้าง [... ]
แต่ยังแสดงถึงความเป็นไปได้ที่จะได้รับผลกระทบแบบเดียวกันโดยไม่ต้องให้กรรมสิทธิ์ดั้งเดิม Linux ใช้ '[g /] setfacls' เพื่อเอฟเฟกต์ที่คล้ายกัน (พวกมันไม่ได้รับอนุญาตให้มองเห็นได้อย่างรวดเร็วในบางครั้งดังนั้นบางครั้งอาจสร้างความรำคาญ)
ในส่วนของ 'ฉันจะบรรลุเอฟเฟ็กต์ที่คล้ายกันได้อย่างไร' ให้อ่าน man page และซอกับ:
chmod +a 'guest allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' ./[DIRECTORY]
คุณสามารถตรวจสอบผ่าน
ls -le
ถ้าทุกอย่างดูดี ตัวเลือกเพิ่มเติมรวมถึงการแทรกกฎที่ตำแหน่งเฉพาะการลบหรือแทนที่กฎเฉพาะ ตัวเลือกสำคัญสองอย่างที่นี่คือ " file_inherit
และdirectory_inherit
" อนุญาตให้แนบกฎกับไดเรกทอรี / ไฟล์ใหม่
ฉันไม่ชอบการใช้ setUID แต่ setGID มีประโยชน์มากใน fileservers เพียงตั้งกลุ่ม 'main' ไม่ทำงานหรือไคลเอนต์มี filemasks ไม่อนุญาตให้เขียนกลุ่ม ที่จะแก้ไขได้โดย:
chmod +a 'mygroup allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' /fileserver/groupfolders/mygroup