ฉันกำลังสร้างเซิร์ฟเวอร์สำรองโดยใช้ 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