A montagem do NFS não mapeia um usuário corretamente

0

Em um servidor rhel 5 linux (atualizado dois meses atrás), dois NAS estão sendo montados com o NFS. Nestes compartilhamentos, os diretórios pertencem a dois usuários diferentes, ambos existentes localmente no servidor.

Um deles é mapeado corretamente pelo rpcidmapd, mas o outro compartilhamento mostra nobody: nobody as owner.

Com o verbose aumentado, o log de saída para a boa montagem (usuário do tomcat):

Jun  1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_uid: calling nsswitch->name_to_uid
Jun  1 15:39:19 server_hostname rpc.idmapd[31250]: nss_getpwnam: name '[email protected]' domain 'domain.com': resulting localname 'tomcat'
Jun  1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_uid: nsswitch->name_to_uid returned 0
Jun  1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_uid: final return value is 0
Jun  1 15:39:19 server_hostname rpc.idmapd[31250]: Client 0: (user) name "[email protected]" -> id "667"
Jun  1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_gid: calling nsswitch->name_to_gid
Jun  1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_gid: nsswitch->name_to_gid returned 0
Jun  1 15:39:19 server_hostname rpc.idmapd[31250]: nfs4_name_to_gid: final return value is 0
Jun  1 15:39:19 server_hostname rpc.idmapd[31250]: Client 0: (group) name "[email protected]" -> id "667"

E para o usuário não estar mapeado corretamente, temos um código de saída -22:

Jun  1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_uid: calling nsswitch->name_to_uid
Jun  1 15:56:31 server_hostname rpc.idmapd[7128]: nss_getpwnam: name '10701' domain 'domain.com': resulting localname '(null)'
Jun  1 15:56:31 server_hostname rpc.idmapd[7128]: nss_getpwnam: name '10701' does not map into domain 'domain.com'
Jun  1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_uid: nsswitch->name_to_uid returned -22
Jun  1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_uid: final return value is -22
Jun  1 15:56:31 server_hostname rpc.idmapd[7128]: Client 0: (user) name "10701" -> id "99"
Jun  1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_gid: calling nsswitch->name_to_gid
Jun  1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_gid: nsswitch->name_to_gid returned -22
Jun  1 15:56:31 server_hostname rpc.idmapd[7128]: nfs4_name_to_gid: final return value is -22
Jun  1 15:56:31 server_hostname rpc.idmapd[7128]: Client 0: (group) name "672" -> id "99"

As mesmas montagens funcionam bem em um rhel 7.4 server.

/etc/idmapd.conf é o mesmo nos dois servidores.

Ambos os usuários e grupos existem localmente, getent passwd responde bem para ambos os usuários.

O nome do usuário tem mais de 8 caracteres, tentou reduzi-lo para 8, mas sem sucesso.

Pensei no uid que é superior a 10000, mas não conseguimos encontrar um doc falando sobre esse tipo de limitação.

Com poucas ideias agora, pesquisei muito, mas não consegui encontrar o motivo pelo qual funciona em um usuário, mas não no outro.

    
por ShaolinMonk 01.06.2018 / 16:43

1 resposta

0

O NFSv4 vem com um método para mapear o nome do usuário para os ids do usuário. Se você gosta de ter as mesmas credenciais no servidor e no cliente, pode, por exemplo, forneça aos dois sistemas o mesmo nome de domínio

Se isso não funcionar em sua plataforma, pesquise na documentação para obter informações sobre como configurar o domínio nfsv4

    
por 01.06.2018 / 16:53