ฉันมีระบบ FreeNAS (FreeBSD) ที่มีการแชร์ CIFS (เรียกว่า "library") ซึ่งได้รับการสนับสนุนโดยระบบไฟล์ ZFS การแชร์ถูกตั้งค่าตาม FreeNAS GUI เพื่อใช้ ACL "Windows / Mac" ซึ่งฉันเชื่อว่าหมายถึง NFSv4 ACLs
นี่คือวิธีที่ฉันต้องการ ACL พื้นฐานที่จะเป็น:
nas# getfacl /mnt/big/library/test
# file: /mnt/big/library/test
# owner: DOMAIN\administrator
# group: DOMAIN\domain admins
owner@:rwxpDdaARWcCo-:fd----:allow
group@:rwxpDdaARWcCo-:fd----:allow
everyone@:r-x---a-R-c---:fd----:allow
ซึ่งจาก GUI Windows 7 จะปรากฏเป็น "Full control" สำหรับ "DOMAIN \ administrator" และ "DOMAIN \ Domain Admins" และ "Read & execute" สำหรับ "ทุกคน" ที่สืบทอดมาจากรากของการแชร์ Windows จะจำเจ้าของได้ว่าเป็น "Administrator" อย่างถูกต้อง
ฉันมีสองปัญหาซึ่งฉันเชื่อว่าอาจเกี่ยวข้อง
ประการแรกถ้าฉันแก้ไขหรือสร้าง ACE บนวัตถุที่มีอยู่ (ไฟล์หรือไดเรกทอรี) Windows จะแทนที่owner@
ACE ด้วยหนึ่งสำหรับgroup:DOMAIN\administrator
และในกรณีของการเพิ่มมันจะสร้างกลุ่ม ACE สำหรับgroup:DOMAIN\joe
ผู้ใช้ ฉันไม่ได้สนใจอะไรมากความจริงที่ว่าผู้ใช้เป็นกลุ่ม (ตราบใดที่มันใช้งานได้) แต่การแทนที่เจ้าของ ACE เป็นเรื่องที่เจ็บปวดเพราะตอนนี้ถ้าฉันเปลี่ยนเจ้าของวัตถุ ACE จะยังคงมีอยู่ก่อนหน้านี้ เจ้าของ.
ความรำคาญครั้งที่สองคือเมื่อสร้างวัตถุใหม่ ACL จะมีลักษณะดังนี้:
nas2# getfacl /mnt/big/library/test/New\ folder/
# file: /mnt/big/library/test/New folder/
# owner: DOMAIN\joe
# group: DOMAIN\domain users
owner@:rwxpDdaARWcCo-:fd----:allow
group@:rwxpDdaARWcCo-:fd----:allow
everyone@:r-x---a-R-c---:fd----:allow
แม้ว่าดูเหมือนว่าจะได้รับการสืบทอด ACE อย่างถูกต้อง แต่ก็ไม่ได้รักษาเจ้าของหรือกลุ่มของไดเรกทอรีหลัก มีวิธีสร้างด้วยคุณสมบัติของไดเรกทอรีที่มีหรือไม่
ดูmanfset setfaclมันระบุ:
-d The operations apply to the default ACL entries instead of access
ACL entries. Currently only directories may have default ACL's.
This option is not applicable to NFSv4 ACLs.
สิ่งใดที่ฉันบอกเป็นนัยว่า NFSv4 ACLs ไม่รองรับ ACE เริ่มต้นซึ่งดูเหมือนจะเป็นสิ่งที่ฉันต้องการเพื่อแก้ไขปัญหาที่สองของฉัน ไม่มีใครรู้ว่าถูกต้องหรือไม่