NT para o mapeamento do grupo UNIX no Samba 4

0

Eu quero mapear o grupo NT Domain Users para um grupo UNIX diferente de users no meu controlador de domínio Active Directory do Samba 4.7.6, mas quando tento fazer isso, ele falha da seguinte maneira:

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

Eu li que você pode fazer isso agora com o winbind, então eu tentei, mas depois recebi 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 do NT para o UNIX no Samba 4?

EDIT: Na lista de discussão do Samba eu encontrei alguém com um problema semelhante , então talvez eu pudesse contornar isso modificando o servidor LDAP interno diretamente? Algo como:

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

Infelizmente, não tenho experiência com o LDAP, por isso não sei como fornecê-lo com um arquivo LDIF válido para o meu caso de uso.

EDIT2: graças a um post de blog sobre o Samba 4 gerenciamento de usuários e grupos no LDAP , consegui editar o grupo UNIX que o grupo NT mapeia para:

> 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 relata o valor antigo, portanto, provavelmente não obtém seus dados desse banco de dados. Não tenho certeza de como é importante o wbinfo relatar o grupo certo para o meu caso de uso, mas verei se também posso mudar isso antes de usar isso como minha resposta e marcá-lo como resolvido.

    
por Ottid Mes 02.04.2018 / 23:44

1 resposta

0

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:
    
por 04.04.2018 / 00:22