Como posso fazer o mapeamento de UID do NFSv4 em sistemas com incompatibilidades de UID?

Como posso fazer o mapeamento de UID do NFSv4 em sistemas com incompatibilidades de UID?

Estou trabalhando em um laboratório com três sistemas Ubuntu e gostaria de montar alguns sistemas de arquivos via NFS. No entanto, embora os sistemas tenham alguns nomes de usuário iguais, os UIDs e GIDs não correspondem, porque os três sistemas foram configurados separadamente. Quando monto um sistema de arquivos NFS de um sistema para outro, a propriedade aparece errada. Por exemplo, se o UID 1000 for alice no servidor1 e o mesmo UID, 1000, for bob no servidor2, então, quando o servidor1 montar o sistema de arquivos exportado do servidor2, os arquivos de bob parecerão pertencer a alice.

Então, existe alguma maneira de fazer o NFS (v4) converter UIDs entre servidores por meio de seus nomes de usuário associados? Pesquisando isso no Google, vi muitas referências a Kerberos, LDAP ou NIS, o que parece um exagero para uma tarefa tão simples e pode não ser possível, uma vez que esses sistemas não são gerenciados centralmente.Esse linkparece indicar que o que peço é impossível. Está correto?

Editar: Eu tentei todas as configurações que /etc/idmapd.confposso imaginar ou encontrar na Internet e, embora o processo idmapd esteja claramente em execução, até agora não vi nenhuma evidência de que o NFS esteja fazendo qualquer tentativa de usá-lo, e nunca teve qualquer efeito nos IDs de usuário relatados nas montagens NFS.

Responder1

NFSv4 suporta mapeamento de ID. Quando ativado, o NFS transmitirá nomes de usuários em vez de IDs numéricos. Hosts com uids numéricos diferentes para o mesmo usuário não são um problema, pois os nomes de usuários são mapeados para uids no host.

O mapeamento de ID é sempre usado com modos de segurança Kerberos ( sec=krb5).

O mapeamento de ID também pode ser usado no sec=sysmodo AUTH_UNIX (o padrão). Expliquei os detalhes da configuração em resposta a:Como fazer com que o idmap do NFSv4 funcione com sec=sys.

Responder2

Sem administração centralizada de usuários, a "melhor" maneira que vejo é forçar todos os servidores a usar o mesmo GID e UID para cada usuário. Agora... estou falando apenas de arquivos e/ou diretórios.

O que eu faria neste caso é:

  • Registre cada UID e GID atualmente em uso.
  • Edite /etc/passwde /etc/groupcombine os grupos em todos os servidores. De preferência para novos UIDs e GIDs para que o próximo passo seja mais rápido
  • Execute isto (vai levar algum tempo):

    find / -group <OLD_GID> -exec chgrp <NEW_GID> '{}' \+
    find / -user  <OLD_UID> -exec chown <NEW_UID> '{}' \+
    

informação relacionada