Por que a propriedade de arquivos é inconsistente entre dois sistemas que montam o mesmo compartilhamento NFS?

4

Eu tenho um servidor IBM AIX (serverA) que está conectado ao armazenamento san. Eu criei um grupo de volume e também o sistema de arquivos (jfs2) e montado no diretório / profit.

Depois disso, criei um compartilhamento NFS para esse diretório e iniciei o daemon NFS.

Em outro servidor, que é o IBM AIX também (serverB), criei um ponto de montagem / lucro e montei o compartilhamento nfs de serverA para serverB usando o comando abaixo: montar 192.168.10.1:/profit / profit

No servidorB, consigo acessar o diretório e listar os arquivos nele. Mas o estranho é que, no serverA, o diretório e os arquivos estão sob a propriedade do usuário oracle. Mas no serverB, eu os vejo como um usuário diferente.

Quando eu toco em um arquivo nesse diretório no serverB, no serverA, vejo-o como outro id de usuário.

Alguma pista de como eu posso consertar isso?

Abaixo está a listagem de arquivos do serverB

$ ls -l
total 0
-rwxrwxrwx    1 root     system            0 Mar 16 15:00 haha
-rwxrwxrwx    1 radiusd  radiusd           0 Mar 16 15:19 haha2
-rwxrwxrwx    1 radiusd  radiusd           0 Mar 16 15:31 haha3
-rw-r--r--    1 oracle   oinstall          0 Mar 17 2011  hahah3
drwxrwxrwx    2 radiusd  radiusd         256 Mar 16 14:40 lost+found

No servidorA, segue abaixo:

# ls -l /profit
total 0
-rwxrwxrwx    1 root     system            0 Mar 16 15:00 haha
-rwxrwxrwx    1 oracle   dba               0 Mar 16 15:19 haha2
-rwxrwxrwx    1 oracle   dba               0 Mar 16 15:31 haha3
-rw-r--r--    1 10       sshd              0 Mar 17 16:01 hahah3
drwxrwxrwx    2 oracle   dba             256 Mar 16 14:40 lost+found

Abaixo está o arquivo / etc / exports do serverA

# more /etc/exports
/profit -vers=3,sec=sys:krb5p:krb5i:krb5:dh,rw

Obrigado.

    
por Alvin Sim 17.03.2011 / 09:14

3 respostas

11

Lembre-se de que cada um dos sistemas clientes NFS determinará o nome do usuário procurando localmente o UID numérico usando o / etc / passwd ou no banco de dados do usuário centralizado. O servidor NFS armazena apenas o UID em formato numérico e não sabe sobre nomes de usuários. Isso também é válido para nomes de grupos e GIDs.

No seu caso, serverA e serverB devem ter nomes de usuários diferentes listados em / etc / passwd

Para testar isso, use ls -n para exibir IDs de usuário e grupo numericamente, em vez de converter para um usuário ou nome de grupo em uma saída longa (-l). Se a opção ls -n não estiver disponível no AIX, consulte a manpage para este recurso.

Para ver o mapeamento de nome de usuário para uid, siga um destes procedimentos no servidorA e no servidorB.

grep $THEUSERID /etc/passwd

Ou é um bom hábito usar getent , pois funciona com / etc / password, e serviços de diretório (LDAP, etc.):

getent passwd $THEUSERID

Os UIDs devem ser os mesmos em ambos os sistemas, mas os nomes de usuários serão diferentes.

    
por 17.03.2011 / 18:20
2

Você se deparou com o que eu chamo de regra número 1 da exportação de NFS:

Nunca exporte uma montagem como gravável para um cliente, a menos que esse cliente use o mesmo mapeamento de UID que o servidor.

Em outras palavras, o proprietário do servidor de arquivos deve exigir que todos os clientes potenciais do NFS usem o mesmo banco de dados de usuários centralizado (NIS, NIS +, LDAP, Kerberos, etc).

    
por 24.03.2012 / 01:37
0

Eu também encontrei seu problema e consegui resolvê-lo com isso :

De fato, NEED_IDMAPD não foi definido no arquivo /etc/default/nfs-common no lado do cliente.

A definição de NEED_IDMAPD=yes no cliente também resolveu o problema. Agora o cliente mostra corretamente nomes de usuários e grupos.

    
por 12.03.2013 / 07:30