Mapeamento de grupo NT para UNIX no Samba 4

Mapeamento de grupo NT para UNIX no Samba 4

Quero mapear o grupo NT Domain Userspara um grupo UNIX diferente do usersmeu controlador de domínio do Active Directory Samba 4.7.6, mas quando tento fazer isso, ele falha da seguinte forma:

> net groupmap modify ntgroup='Domain Users' unixgroup='share' type=domain
Could not update group database
[255]

Eu li que agora você pode fazer isso com o winbind, então tentei, mas recebo o seguinte erro.

> 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]

Qual é a maneira correta de gerenciar o mapeamento de grupos NT para UNIX no Samba 4?

EDITAR:Na mailing list do Samba encontrei alguém com umproblema semelhante, então talvez eu pudesse contornar isso modificando diretamente o servidor LDAP interno? Algo como:

ldbadd /var/lib/samba/private/sam.ldb.d/metadata.tdb ...

Infelizmente não tenho experiência com LDAP, então não sei como fornecer um arquivo LDIF válido para meu caso de uso.

EDITAR2:Graças a umpostagem do blog sobre gerenciamento de usuários e grupos do Samba 4 no LDAP, consegui editar o grupo UNIX para o qual o grupo NT mapeia:

> 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

Portanto, o grupo certo agora está sendo relatado por net groupmap, mas wbinfoainda informa o valor antigo, portanto provavelmente não obtém seus dados desse banco de dados. Não tenho certeza da importância wbinfode relatar o grupo certo para meu caso de uso, mas verei se posso mudar isso também antes de usar isso como minha resposta e marcá-lo como resolvido.

Responder1

Pelo que consegui descobrir, parece que não há nenhuma ferramenta disponível no Samba 4 que permita configurar isso corretamente, além de editar diretamente o servidor LDAP integrado.

A netferramenta parece não funcionar bem com o servidor LDAP integrado, apenas algumas operações são bem-sucedidas, por exemplo, listar os mapeamentos de grupos e conceder direitos funciona, mas listar membros de um grupo ou modificar os mapeamentos de grupos não funciona (como visto em minha pergunta).

Para modificar o mapeamento executei os seguintes comandos como root. Primeiro temos que recuperar o SID de Domain Users, pois ele será único 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 do servidor LDAP integrado para o SID, atualizando xidNumber: 100com 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 250do grupo UNIX chamado share, então a chamada net groupmapresultará no grupo relatado sendo share:

root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share

wbinfoNo entanto winbindd, ainda reportará o antigo GID:

root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:100:

Portanto, temos que invalidar a entrada de cache para arquivos Domain Users. Depois de algumas experiências, consegui fazer isso solicitando que procurasse o GID atualizado:

root> wbinfo --gid-info 250
AD.EXAMPLE\domain users:x:250:

O que também é relatado corretamente por --group-info:

root> wbinfo --group-info='Domain Users'
AD.EXAMPLE\domain users:x:250:

informação relacionada