ฉันกำลังสร้างเซิร์ฟเวอร์สำรองโดยใช้ Linux, ZFS และ Samba ลูกค้าทั้งหมดที่ไม่ใช่ฉันจะใช้ Windows 10 ดังนั้นฉันจึงให้ความสำคัญกับการสนับสนุน Windows 10 อย่างถูกต้อง แต่นั่นไม่ได้หมายความว่าสิทธิ์ในฝั่ง Linux ควรได้รับอนุญาตให้ไม่ปลอดภัย (เช่นโลกที่สามารถอ่านและเขียนได้)
หลังจากลบ POSIX ACLs ในไฟล์ทั้งหมดโดยไม่ได้ตั้งใจคิดว่าเป็นสิ่งที่ตั้งค่าไว้เพื่ออนุญาตการเข้าถึงกลุ่มการอนุญาตทั้งหมดของไฟล์ในฝั่ง Windows เสีย
สิ่งนี้ได้รับการแก้ไขโดยการดูตัวเลือกในคู่มือและทำซ้ำการตั้งค่าที่ฉันคิดว่าตัวเลือกใดที่จะตั้งค่าเพื่อรับพฤติกรรมที่ฉันต้องการคือการตั้งค่าการอนุญาตด้าน Windows เพียงอย่างเดียวในขณะที่รักษาสิทธิ์ UNIX ไว้อย่างปลอดภัย ยังคง 2 สิ่งที่ฉันไม่เข้าใจเกี่ยวกับวิธีที่แซมบ้าจัดการกับสิทธิ์ UNIX
การตั้งค่าacl_xattr:ignore system acls = noทำให้สิทธิ์ UNIX เป็นรายการใน Windows ACLs (รายการ CREATOR, GROUP และ EVERYONE) ซึ่งฉันไม่ต้องการอย่างไรก็ตามเมื่อตั้งค่าyesเป็นเจ้าของกลุ่มและสิทธิ์ยังคงดูเหมือนว่าจะส่งผลกระทบต่อสิทธิ์ในฝั่ง Windows พวกเขา ยังคงถูกบังคับใช้โดย Samba หากไดเรกทอรีมีroot:backup 0660สิทธิ์แล้วสุ่มDomain Userจะไม่สามารถเข้าถึงไดเรกทอรีที่แม้ว่า ACL ของ Windows Domain Usersที่มีรายการสำหรับ เปลี่ยนกลุ่มจากbackupเป็นusersตำแหน่งที่usersแม็พกับกลุ่ม NT Domain Usersจากนั้นจะทำงาน เห็นได้ชัดว่าสิทธิ์ UNIX ยังคงมีการบังคับใช้
มีการตั้งค่าเพื่อให้ Windows ACLs ยับยั้งส่วนที่เหลือเช่นถ้า Windows ACL อนุญาตDomain Usersแล้วพวกเขาจะได้รับอนุญาตโดยไม่คำนึงถึงสิทธิ์ UNIX ที่อาจกล่าวได้อย่างไร หรือฉันจะปิดการใช้งาน Samba โดยใช้สิทธิ์ UNIX ได้หรือไม่
อีกคำถามคือ Samba เก็บสิทธิ์ UNIX ไว้อย่างไร inherit owner = yesในการกำหนดค่าใหม่ที่ฉันมี ดูเหมือนว่าจะทำงานได้ตามที่คาดหวังทั้ง Windows เป็น UNIX ยกเว้นเมื่อฉันพยายามเปลี่ยนกลุ่ม UNIX เป็นอย่างอื่น ในขั้นต้นบิต setgid ถูกตั้งค่าไว้ที่การแบ่งใช้johnซึ่งเป็นกลุ่มของพวกเขาการคิดinherit ownerจะมีผลกับเจ้าของเท่านั้นไม่ใช่กลุ่ม แต่เมื่อถอดบิต setgid จากหุ้นและการเปลี่ยนแปลงกลุ่มที่จะusersซ้ำกับinherit owner = yesไฟล์ใหม่และไดเรกทอรีที่ทำจากไคลเอนต์ Windows 10 johnก็ยังคงสร้างขึ้นด้วยกลุ่ม ไม่มีที่ใดในแผนผังไดเรกทอรีที่มีกลุ่มที่johnเหลืออยู่ฉันลองรีสตาร์ทไคลเอนต์ Windows ของฉันและเซิร์ฟเวอร์ Samba ในกรณีนี้ แต่นั่นไม่ได้เปลี่ยนแปลงอะไรเลย
แซมบ้าเก็บสิทธิ์ UNIX ไว้ที่อื่นดังนั้นการเปลี่ยนกลุ่ม UNIX ของฉันโดยตรงจากระบบไฟล์จะไม่ส่งผลกระทบต่อกลุ่มที่ติดตามโดย Samba หรือไม่ หรือสาเหตุใดที่แซมบ้ายังคงใช้กลุ่มเก่านี้สำหรับไฟล์และไดเรกทอรีใหม่
ด้านล่างคุณจะพบตัวเลือกที่อาจเกี่ยวข้องกับการกำหนดค่า Samba เวอร์ชั่น 4.7.6 หากต้องการข้อมูลเพิ่มเติมแจ้งให้เราทราบ
[global]
access based share enum = yes
acl group control = no
acl map full control = yes
acl_xattr:ignore system acls = yes
acl_xattr:default acl style = windows
create mask = 0775
directory mask = 0775
dos filemode = yes
dos filetime resolution = no
dos filetimes = yes
ea support = no
force create mode = 0600
force directory mode = 0600
force unknown acl user = no
guest account = nobody
guest ok = no
guest only = no
inherit acls = no
inherit owner = unix only
inherit permissions = no
invalid users = root
map acl inherit = yes
map archive = no
map hidden = no
map readonly = no
map system = no
map to guest = never
nt acl support = yes
obey pam restrictions = no
read only = yes
restrict anonymous = 2
security = user
server role = active directory domain controller
store dos attributes = yes
unix extensions = yes
vfs objects = dfs_samba4 acl_xattr shadow_copy2
[backups]
create mask = 0660
directory mask = 0770
ea support = yes
path = /mnt/pool/backups
read only = no