Samba tam Windows ACL'leri destekleyebilir mi?


12

AD entegrasyonu ve ACL özellikli bir dosya sistemi ile bir Samba 3 ana bilgisayarı kurdum. Windows istemcisi kullanarak kullanıcı ve grup izinlerini ayarlayabilirim.

Samba, şimdiye kadar POSIX ACL'nin rwx izinleriyle eşleşiyor; bu da Windows'ta "Değiştir" veya "Tam Denetim" izinlerini kullanmamı engelliyor. Ayrıca xattrs ve ZFS ACL desteği hakkında birkaç şey okudum.

Birisi Windows ACE'lerine tamamen benzemek için POSIX ACL'lerinin ötesine geçmenin en iyi yolu hakkında bir ipucu verebilir mi?

Yanıtlar:


7

Bunu her zaman böyle yaptım, bunu nerede okuduğumdan tam olarak emin değilim.

Samba paylaşımlarınızdaki Windows ACL seçeneklerinin çoğunun AD'ye bağlı olması için hem POSIX ACL'leri hem de XATTRS'yi etkinleştirmeniz gerekir:

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

Ve smb.conf dosyasında idmapping, nt acls ve özellik eşlemeyi şu şekilde etkinleştirmeniz gerekir:

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

Sonra tek yapmanız gereken paylaşım için yönetici kullanıcı tanımlamak ve bu kullanıcı ile Windows'dan güvenlik ayarlarını düzenlemek.

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

Tek sorun, varolan ACL'ler (kök ve "sahipliğini Windows kullanıcılarınıza aktarma") ve eşlenmemiş kullanıcı grupları ile ilgili olabilir.

Grupları manuel olarak eşlemek için aşağıdakine benzer bir şey yapmanız gerekir:

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 

yerleşik güvenlik grupları için.

Ve sonra tüm gruplarınız için:

groupadd mygroup
net groupmap delete ntgroup="mygroup"   
net groupmap add ntgroup="DOMAIN\mygroup" rid=1000  unixgroup=mygroup   type=d

2
Ben değiştirecek admin userskadar acl group controlve seti force group = +DOMAIN\Admin-group, yönetici izinlerine sahip birden olabilir bu şekilde.
Hubert Kario

4

Gerçekten kullanılabilir olması için dosyalarda POSIX ACL'lerine ihtiyacınız yoksa (örneğin, kullanıcılar Samba denetleyicinize yerel olarak giriş yapamadığında), vfs kullanarak tam NT ACL'leriniz olabilir:

[Genel]
  mağaza dos özellikleri = evet
[Paylaş]
  vfs nesneleri = acl_xattr

1

İki şey yapmanız gerekecek.

İlk olarak, dosya sisteminizin ACL'leri desteklemesi gerekir. İşte bir fstab dosyasında ACL'yi etkinleştiren bir satır örneği, elbette sizinki farklı olacak:

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

Bunu yaptıktan sonra (ve yeniden monte edildiğinde veya yeniden başlatıldığında) smb.conf dosyanızda nt acl'yi etkinleştirmek isteyeceksiniz:

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

Her ikisini de yaptıktan ve samba'yı yeniden başlattıktan sonra uygun ACL'lere sahip olmalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.