Может ли Samba поддерживать полные списки управления доступом Windows?

12

Я настроил хост Samba 3 с интеграцией AD и файловой системой с поддержкой ACL. С помощью клиента Windows я могу установить права пользователей и групп.

До настоящего времени Samba просто отображала разрешения RWX в POSIX ACL, что не позволяет мне использовать разрешения «Изменить» или «Полный доступ» в Windows. Я также прочитал несколько вещей о поддержке xattrs и ZFS ACL.

Может ли кто-нибудь дать подсказку о том, как лучше всего выйти за пределы ACL-списков POSIX, чтобы они полностью напоминали Windows ACE?

Fabian
источник

Ответы:

7

Вот как я всегда это делал, не совсем уверен, где я это читаю.

Чтобы большинство параметров Windows ACL на общих ресурсах Samba было подключено к AD, вам необходимо включить как POSIX ACL, так и XATTRS:

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

И в вашем smb.conf вам нужно включить idmapping, nt acls и сопоставление атрибутов следующим образом:

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

Затем все, что вам нужно сделать, это определить администратора для общего ресурса и с этим пользователем отредактировать настройки безопасности из Windows.

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

Единственные проблемы могут быть связаны с существующими списками ACL (вы «отрекаетесь» от root и передаете право собственности своему пользователю Windows) и несопоставленными группами пользователей.

Чтобы отобразить группы вручную, вам нужно сделать что-то вроде этого:

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 

для встроенных групп безопасности.

И тогда для всех ваших групп:

groupadd mygroup
net groupmap delete ntgroup="mygroup"   
net groupmap add ntgroup="DOMAIN\mygroup" rid=1000  unixgroup=mygroup   type=d
Боян Маркович
источник
2
Я хотел бы изменить , admin usersчтобы acl group controlи набор force group = +DOMAIN\Admin-group, таким образом , вы можете иметь несколько с правами администратора.
Юбер Карио
4

Если вам не нужны списки управления доступом POSIX для файлов, чтобы они могли быть фактически использованы (например, когда пользователи не могут локально войти в систему на вашем контроллере Samba), вы можете использовать полные списки ACL NT с использованием vfs:

[Глобальный]
  хранить DOS атрибуты = да
[доля]
  vfs objects = acl_xattr
Хьюберт Карио
источник
1

Вам нужно будет сделать две вещи.

Во-первых, ваша файловая система должна поддерживать ACL. Вот пример строки в файле fstab, которая включает ACL, ваша, конечно, будет другой:

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

После того, как вы это сделали (и перемонтировали или перезагрузили), вы захотите включить nt acl в вашем файле smb.conf:

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

После того как вы выполнили оба действия и перезапустили samba, у вас должны быть соответствующие списки ACL.

Патрик Тешер
источник