Como posso mapear o NFSv4 UID entre sistemas com incompatibilidades de UID?


11

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 dos mesmos nomes de usuário, os UIDs e GIDs não coincidem, porque os três sistemas foram configurados separadamente. Quando monto um sistema de arquivos NFS de um sistema para outro, a propriedade aparece incorreta. Por exemplo, se o UID 1000 é alice no servidor1 e o mesmo UID, 1000, é bob no servidor2, quando o servidor1 monta o sistema de arquivos exportado do servidor2, os arquivos de bob parecem pertencer a alice.

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

Edit: Eu tentei todas as configurações para as /etc/idmapd.confquais posso pensar ou encontrar na Internet e, enquanto o processo idmapd está claramente em execução, até agora não vi nenhuma evidência de que o NFS esteja tentando usá-lo, e nunca teve nenhum efeito sobre os IDs de usuário relatados nas montagens NFS.


1
Acredito que a coisa mais fácil para você é colocar todas as suas coisas em ordem. Você pode permanecer com seu esquema de autenticação atual, pois possui apenas três caixas, mas precisa sincronizar todos os UIDs / GIDs dos usuários em suas caixas. Esta não é uma tarefa difícil, na verdade.
22412 Serge

Sim, foi isso que finalmente acabei fazendo.
Ryan C. Thompson

Respostas:


5

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.
  • Editar /etc/passwde /etc/groupe combinar 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 (levará algum tempo):

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

Ummm, a instrução "find" está iniciando no diretório raiz. O comando está alterando a propriedade de todos os diretórios no sistema. As alterações sugeridas nesses comandos incluirão todos os arquivos no sistema. Eu sugiro que você limite em quais diretórios esse comando é executado ou você terá um dia muito ruim.

2
Em find man: -group gname True se o arquivo pertencer ao grupo gname. Se gname for numérico e não aparecer no banco de dados do grupo (4), será utilizado como um ID de grupo.
BitsOfNix

1

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

O mapeamento de identificação é sempre usado nos modos de segurança Kerberos ( sec=krb5).

O mapeamento de identificação também pode ser usado no modo AUTH_UNIX (o padrão sec=sys). Expliquei os detalhes de configuração em resposta a: Como obter o NFSv4 idmap trabalhando com sec = sys .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.