Bisakah Samba mendukung Windows-ACL lengkap?

12

Saya telah menyiapkan host Samba 3 dengan integrasi AD dan sistem file yang diaktifkan ACL. Menggunakan klien windows saya dapat mengatur izin pengguna dan grup.

Hingga kini, Samba hanya memetakan izin rwx POSIX ACL, yang mencegah saya menggunakan izin "Modifikasi" atau "Kontrol Penuh" pada Windows. Saya juga membaca beberapa hal tentang xattrs dan dukungan ZFS ACL.

Dapatkah seseorang memberi petunjuk tentang apa cara terbaik untuk melampaui POSIX ACL agar benar-benar menyerupai ACE Windows?

fabian
sumber

Jawaban:

7

Inilah yang selalu saya lakukan, tidak yakin di mana saya membaca ini.

Agar sebagian besar opsi ACL windows pada Samba share Anda terhubung ke AD, Anda perlu mengaktifkan POSIX ACL dan XATTRS:

/dev/sda2       /samba              ext3    user_xattr,acl  1   2

Dan di smb.conf Anda, Anda perlu mengaktifkan pemetaan id, nt acls dan pemetaan atribut seperti ini:

idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
idmap backend = idmap_rid:<domain_netbios_name>=16777216-33554431

nt acl support = yes
inherit acls = yes

map acl inherit = yes 
map archive = no
map hidden = no
map read only = no
map system = no
store dos attributes = yes
inherit permissions = yes

Maka yang perlu Anda lakukan adalah menentukan pengguna administrator untuk berbagi, dan dengan itu pengguna mengedit pengaturan keamanan dari Windows.

[public]
path = /share/Public
public = yes
writable = yes
printable = no
admin users = "DOMAIN\user"

Satu-satunya masalah bisa terkait dengan ACL yang ada (Anda "menolak" root dan mentransfer kepemilikan ke pengguna Windows Anda) dan grup pengguna yang belum dipetakan.

Untuk memetakan grup secara manual, Anda perlu melakukan sesuatu seperti ini:

net groupmap delete ntgroup="Domain Admins"
net groupmap delete ntgroup="Domain Users"
net groupmap delete ntgroup="Domain Guests"

net groupmap add ntgroup="Domain Admins" rid=512 unixgroup=root
net groupmap add ntgroup="Domain Users" rid=513 unixgroup=users 
net groupmap add ntgroup="Domain Guests" rid=514 unixgroup=nobody 

untuk grup keamanan builtin.

Dan kemudian untuk semua grup Anda:

groupadd mygroup
net groupmap delete ntgroup="mygroup"   
net groupmap add ntgroup="DOMAIN\mygroup" rid=1000  unixgroup=mygroup   type=d
Bojan Markovic
sumber
2
Aku akan mengubah admin userske acl group controldan set force group = +DOMAIN\Admin-group, cara ini Anda dapat memiliki beberapa dengan izin admin.
Hubert Kario
4

Jika Anda tidak memerlukan POSIX ACL pada file agar benar-benar dapat digunakan (misalnya, ketika pengguna tidak dapat login ke kontroler Samba Anda secara lokal), Anda dapat memiliki ACL NT penuh menggunakan vfs:

[global]
  atribut toko dos = ya
[Bagikan]
  objek vfs = acl_xattr
Hubert Kario
sumber
1

Anda perlu melakukan dua hal.

Pertama, sistem file Anda harus mendukung ACL. Berikut adalah contoh baris dalam file fstab yang memungkinkan ACL, Anda tentu saja akan berbeda:

/dev/mapper/VolGroup00-SambaVol /samba ext3 defaults,acl 0 0

Setelah Anda selesai melakukannya (dan remounted atau reboot), Anda akan ingin mengaktifkan nt acl di file smb.conf Anda:

[share1]
   path = /samba/share1
   nt acl support = yes
   writeable = yes

Setelah Anda melakukan keduanya dan telah me-restart samba Anda harus memiliki ACL yang tepat.

Patrick Tescher
sumber