O Samba pode suportar Windows-ACLs completos?

12

Eu configurei um host Samba 3 com integração 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 mapeia para as permissões rwx do POSIX ACL, o que me impede de usar as permissões "Modificar" ou "Controle total" no Windows. Eu também li algumas coisas sobre o suporte a xattrs e ZFS ACL.

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

    
por fabian 13.12.2010 / 13:24

3 respostas

7

É assim que eu sempre fiz isso, não tenho certeza onde eu li isso.

Para que a maioria das opções de ACL do Windows nos seus compartilhamentos do Samba sejam conectadas ao AD, é necessário ativar as ACLs e XATTRS do POSIX:

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

E no seu smb.conf você precisa habilitar o idmapping, nt acls e 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

Depois, 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 às ACLs existentes (você "descarta" a propriedade root e transfere a propriedade para o usuário do Windows) e os grupos de usuários não mapeados.

Para mapear grupos manualmente, você precisa estar fazendo 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 incorporados.

E, em seguida, para todos os seus grupos:

groupadd mygroup
net groupmap delete ntgroup="mygroup"   
net groupmap add ntgroup="DOMAIN\mygroup" rid=1000  unixgroup=mygroup   type=d
    
por 19.07.2011 / 22:44
4

Se você não precisa de POSIX ACLs em arquivos para ser realmente utilizável (por exemplo, quando os usuários não podem acessar seu controlador Samba localmente), você pode ter ACLs NT completos usando vfs:

[global]
  store dos attributes = yes
[share]
  vfs objects = acl_xattr
    
por 05.01.2012 / 21:42
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 ativa o ACL, o seu obviamente será diferente:

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

Uma vez que você tenha feito isso (e remontado ou reinicializado), você irá querer ativar o nt acl em seu arquivo smb.conf:

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

Depois de ter feito os dois e ter reiniciado o samba, você deve ter as ACLs adequadas.

    
por 27.04.2011 / 19:03