Quero mapear o grupo NT Domain Users
para um grupo UNIX diferente do users
meu 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 wbinfo
ainda informa o valor antigo, portanto provavelmente não obtém seus dados desse banco de dados. Não tenho certeza da importância wbinfo
de 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 net
ferramenta 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: 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
, então a chamada net groupmap
resultará no grupo relatado sendo share
:
root> net groupmap list ntgroup='Domain Users'
Domain Users (S-1-5-21-1580746459-3543417057-3597883204-513) -> share
wbinfo
No 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: