chown ou chgrp NFSv4 com erro idmapd: argumento inválido

2

Eu só encontrei 1 ou 2 outras postagens sobre isso, sem nenhuma solução, então estou criando uma nova pergunta mais específica para o meu caso.

Configuração do sistema: Servidor NFS executando o NFSv4. Cliente NFS rodando RedHat 6, idmapd rodando com o seguinte em /etc/idmapd.conf:

    [General]
    Verbosity = 7
    Domain = localdomain

    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody

    Method = nsswitch

O problema é chown / chgrp para certos usuários falharem com o erro 'Argumento inválido', como segue, mesmo que o usuário exista no host local:

# chown oracle m
chown: changing ownership of 'm': Invalid argument
# grep oracle /etc/passwd
oracle:x:54321:54321::/home/oracle:/bin/bash

# chown mysql m
# grep mysql /etc/passwd
mysql:x:496:496:MySQL server:/var/lib/mysql:/bin/bash

Por que o idmapd não reconhece certos usuários, mas funciona com outros (root, nobody e até mesmo mysql, que não são padrão, são OK)?

Alguma configuração específica que estou perdendo acima? Eu pensei que quando o domínio é definido para localdomain então tudo deve funcionar apenas usando arquivos locais passwd / group, etc. (E sim, nsswitch.conf lista passwd e group como arquivos)?

Obrigado antecipadamente!

    
por Maelstrom 01.09.2015 / 21:54

1 resposta

1

Eu só queria fechar o ciclo neste. Eu encontrei a resposta. O problema aqui é quando o rpcidmapd está ativo, o NFSv4 o usa para fazer o mapeamento, mas isso significa que o NFS envia o nome de usuário @ domainname vs UID / GID para o servidor.

Quando o servidor não entende este nome de usuário @ nome_do_domínio (talvez porque o servidor não esteja configurado com o mesmo diretório ou por outros motivos), ele não permite chown / chmod.

Aparentemente, esse comportamento padrão é INCORRECT. No kernel Linux posterior, isso foi corrigido pelo mantenedor do NFS no kernel, de modo que o padrão para o NFSv4 é NÃO usar o idmapping. Veja o commit aqui: link

Para corrigir isso sozinho, você pode fazer isso (específico do RHEL):

echo "options nfs nfs4_disable_idmapping=1" >> /etc/modprobe.d/nfs.conf

Espero que isso ajude.

    
por 24.09.2015 / 07:27

Tags