¿Puede Samba soportar Windows-ACL completas?

12

He configurado un host Samba 3 con integración AD y un sistema de archivos habilitado para ACL. Usando un cliente de Windows puedo establecer permisos de usuarios y grupos.

Hasta ahora, Samba solo se asigna a los permisos rwx de POSIX ACL, lo que me impide usar los permisos "Modificar" o "Control total" en Windows. También leí algunas cosas sobre xattrs y la compatibilidad con ZFS ACL.

¿Alguien puede dar una pista sobre cuál es la mejor manera de ir más allá de las ACL POSIX para parecerse completamente a las ACE de Windows?

Fabian
fuente

Respuestas:

7

Así es como siempre lo he hecho, no estoy seguro de dónde leo esto.

Para tener la mayoría de las opciones de ACL de Windows en sus recursos compartidos de Samba conectados a AD, debe habilitar ACL de POSIX y XATTRS:

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

Y en su smb.conf necesita habilitar idmapping, nt acls y la asignación de atributos de esta manera:

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

Entonces, todo lo que necesita hacer es definir un usuario administrador para el recurso compartido, y con ese usuario editar la configuración de seguridad de Windows.

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

Los únicos problemas podrían estar relacionados con las ACL existentes ("desconoce" la raíz y transfiere la propiedad a su usuario de Windows) y grupos de usuarios no asignados.

Para asignar grupos manualmente, debe hacer algo como esto:

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 seguridad integrados.

Y luego para todos sus grupos:

groupadd mygroup
net groupmap delete ntgroup="mygroup"   
net groupmap add ntgroup="DOMAIN\mygroup" rid=1000  unixgroup=mygroup   type=d
Bojan Markovic
fuente
2
Me gustaría cambiar admin usersa acl group controly conjunto force group = +DOMAIN\Admin-group, de esta manera se puede tener múltiples con permisos de administrador.
Hubert Kario el
4

Si no necesita las ACL POSIX en los archivos para ser realmente utilizables (por ejemplo, cuando los usuarios no pueden iniciar sesión en su controlador Samba localmente), puede tener ACL NT completas usando vfs:

[global]
  almacenar dos atributos = sí
[compartir]
  objetos vfs = acl_xattr
Hubert Kario
fuente
1

Tendrás que hacer dos cosas.

Primero, su sistema de archivos debe ser compatible con ACL. Aquí hay un ejemplo de una línea en un archivo fstab que habilita ACL, la suya, por supuesto, será diferente:

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

Una vez que haya hecho eso (y remontado o reiniciado), querrá habilitar nt acl en su archivo smb.conf:

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

Una vez que haya hecho ambas cosas y haya reiniciado samba, debería tener las ACL adecuadas.

Patrick Tescher
fuente