O Samba pode suportar Windows-ACLs completas?

12

Eu configurei um host Samba 3 com integração ao AD e um sistema de arquivos habilitado para ACL. Usando um cliente Windows, posso definir permissões de usuários e grupos.

Até agora, o Samba apenas mapeia as permissões rwx do POSIX ACL, o que me impede de usar as permissões "Modificar" ou "Controle total" no Windows. Também li algumas coisas sobre xattrs e suporte a ZFS ACL.

Alguém pode dar uma dica sobre qual é a melhor maneira de ir além das ACLs POSIX para se parecer completamente com as ACEs do Windows?

fabiano
fonte

Respostas:

7

É assim que sempre faço, não tenho certeza de onde li isso.

Para ter a maioria das opções de ACL do Windows nos seus compartilhamentos Samba conectadas ao AD, você precisa ativar as ACLs POSIX e XATTRS:

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

E no seu smb.conf você precisa habilitar o idmapping, nt acls e o mapeamento de atributos como este:

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

Tudo o que você precisa fazer é definir o usuário administrador para o compartilhamento e, com esse usuário, editar as configurações de segurança do Windows.

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

Os únicos problemas podem estar relacionados a ACLs existentes (você "renega" a raiz e transfere a propriedade para o usuário do Windows) e a grupos de usuários não mapeados.

Para mapear grupos manualmente, você precisa fazer algo assim:

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 

para grupos de segurança internos.

E então para todos os seus grupos:

groupadd mygroup
net groupmap delete ntgroup="mygroup"   
net groupmap add ntgroup="DOMAIN\mygroup" rid=1000  unixgroup=mygroup   type=d
Bojan Markovic
fonte
2
Eu mudaria admin userspara acl group controle definiria force group = +DOMAIN\Admin-group, dessa forma, você pode ter várias permissões de administrador.
Hubert Kario
4

Se você não precisar que as ACLs POSIX nos arquivos sejam realmente utilizáveis ​​(por exemplo, quando os usuários não puderem acessar o controlador Samba localmente), você poderá ter ACLs NT completas usando vfs:

[global]
  armazenar dos atributos = sim
[compartilhar]
  objetos vfs = acl_xattr
Hubert Kario
fonte
1

Você precisará fazer duas coisas.

Primeiro, seu sistema de arquivos deve suportar ACLs. Aqui está um exemplo de uma linha em um arquivo fstab que habilita a ACL, é claro que a sua será diferente:

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

Depois de fazer isso (e remontar ou reiniciar), você desejará ativar o nt acl no seu arquivo smb.conf:

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

Depois de fazer as duas coisas e reiniciar o samba, você deve ter ACLs apropriadas.

Patrick Tescher
fonte