Quiero asignar el grupo NT Domain Users
a un grupo UNIX diferente al users
de mi controlador de dominio de Active Directory Samba 4.7.6, pero cuando intento hacerlo, falla de la siguiente manera:
> net groupmap modify ntgroup='Domain Users' unixgroup='share' type=domain
Could not update group database
[255]
Leí que ahora puedes hacer esto con winbind, así que lo intenté, pero aparece el siguiente error.
> wbinfo --set-gid-mapping=1000,S-1-5-21-...-513
failed to call wbcSetGidMapping: WBC_ERR_NOT_IMPLEMENTED
Could not create or modify gid to sid mapping
[1]
¿Cuál es la forma correcta de gestionar la asignación de grupos de NT a UNIX en Samba 4?
EDITAR:En la lista de correo de Samba encontré a alguien con unproblema similar, entonces, ¿tal vez podría solucionarlo modificando el servidor LDAP interno directamente? Algo como:
ldbadd /var/lib/samba/private/sam.ldb.d/metadata.tdb ...
Lamentablemente, no tengo experiencia con LDAP, por lo que no sé cómo proporcionarle un archivo LDIF válido para mi caso de uso.
EDITAR2:gracias a unentrada de blog sobre la gestión de usuarios y grupos de Samba 4 en LDAP, logré editar el grupo UNIX al que se asigna el grupo NT:
> ldbedit -e nano -H /var/lib/samba/private/idmap.ldb '(objectSid=S-1-5-21-1580746459-3543417057-3597883204-513)'
> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:
> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share
Por lo tanto, ahora informa el grupo correcto net groupmap
, pero wbinfo
aún informa el valor anterior, por lo que probablemente no obtenga sus datos de esa base de datos. No estoy seguro de qué tan importante wbinfo
es informar el grupo correcto para mi caso de uso, pero veré si puedo cambiar eso también antes de usar esto como respuesta y marcarlo como resuelto.
Respuesta1
Por lo que he podido reconstruir, parece que no hay ninguna herramienta disponible en Samba 4 que le permita configurar esto correctamente, aparte de editar directamente el servidor LDAP integrado.
La net
herramienta no parece funcionar bien con el servidor LDAP integrado, sólo algunas operaciones tienen éxito, por ejemplo, enumerar las asignaciones de grupo y otorgar derechos, pero enumerar miembros de un grupo o modificar las asignaciones de grupo no funciona (como se ve en mi pregunta).
Para modificar el mapeo ejecuté los siguientes comandos como root. Primero tenemos que recuperar el SID de Domain Users
, porque será único para cada aprovisionamiento del servidor Samba.
root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> users
Luego actualizamos el registro del servidor LDAP integrado para el SID actualizándolo xidNumber: 100
con el GID UNIX previsto:
root> ldbedit -e nano -H /var/lib/samba/private/idmap.ldb '(objectSid=S-1-5-21-1580746459-3543417057-3597883204-513)'
# 0 adds 1 modifies 0 deletes
Digamos que lo cambió al GID 250
del grupo UNIX llamado share
, luego, al llamar net groupmap
, el grupo reportado será share
:
root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share
Sin embargo wbinfo
, winbindd
seguirá informando el antiguo GID:
root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:
Entonces tenemos que invalidar la entrada de caché para Domain Users
. Después de experimentar un poco, logré hacerlo pidiéndole que buscara el GID actualizado:
root> wbinfo --gid-info 250
AD.EXAMPLE\domain users:x:250:
Que luego también se informa correctamente por --group-info
:
root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:250: