Pelo que consegui juntar, parece que não há nenhuma ferramenta disponível no Samba 4 que permita configurar isso corretamente, além de editar o servidor LDAP embutido diretamente.
A ferramenta net
parece não funcionar bem com o servidor LDAP integrado, apenas algumas operações são bem-sucedidas, por exemplo, listar os mapeamentos de grupo e conceder direitos de trabalho, mas listar membros de um grupo ou modificar os mapeamentos de grupo não funciona (como visto na minha pergunta).
Para modificar o mapeamento eu corri os seguintes comandos como root. Primeiro temos que recuperar o SID de Domain Users
, porque ele será exclusivo para cada provisionamento do servidor Samba.
root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> users
Em seguida, atualizamos o registro interno do servidor LDAP para o SID, atualizando xidNumber: 100
com o GID UNIX pretendido:
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 você alterou para o GID 250
do grupo UNIX chamado share
, depois, chamar net groupmap
resultará no retorno do grupo reportado sendo share
:
root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share
No entanto, wbinfo
de winbindd
ainda relatará o antigo GID:
root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:
Portanto, temos que invalidar a entrada do cache para Domain Users
. Depois de alguma experimentação, consegui fazer isso consultando o GID atualizado:
root> wbinfo --gid-info 250
AD.EXAMPLE\domain users:x:250:
Que também é reportado corretamente de volta por --group-info
:
root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:250: