Pergunta

O objetivo

Eu tenho a seguinte configuração -

  • Servidor doméstico rodando Ubuntu 13.10
  • Notebook rodando Mac OSX 10.9 (Mavericks)

Estou tentando exportar o diretório Home Server ~/Documents como uma montagem NFS que pode ser acessada em meu laptop Mac

Configuração do Ubuntu

Usei o Webmin no Ubuntu para criar uma exportação NFS.No interesse de apenas testar o acesso por enquanto, permiti que qualquer nome de host se conectasse com acesso de leitura/gravação.

Webmin criou a seguinte configuração em /etc/exports

/home/jeeves/Documents        (insecure,no_subtree_check,no_root_squash,rw,nohide)

Configuração do laptop Mac OX 10.9

Montei o diretório remoto em um diretório local, /private/nfs

sudo mount -t nfs 192.168.1.219:/home/jeeves/Documents /private/nfs 

Tudo funcionou bem e posso ver "Dcouments" montado em /private no Finder.

No entanto, não consigo entrar nesse diretório

jeeves:~ $ cd /private/nfs/
-bash: cd: /private/nfs/: Permission denied

Eu fiz com que o webmin definisse permissões como leitura/gravação (rw) e não está filtrando nenhum IP ou nome de host, então o que mais é necessário para acessar esse diretório?

Agradecemos antecipadamente por toda sua ajuda!

Editar:

Aqui está minha configuração do Webmin.

enter image description here

O Webmin não me permite selecionar uma versão 4 do NFS, provavelmente porque só tenho o NFS v3 instalado, conforme nfsstat

jeeves@HAL:~$ nfsstat
...
Server nfs v3:
null         getattr      setattr      lookup       access       readlink     
25        5% 28        6% 0         0% 126      29% 211      48% 0         0% 
...
Foi útil?

Solução

Você provavelmente está enfrentando um problema com IDs de usuário numéricos:o ID de usuário numérico em seu sistema Ubuntu não corresponde ao ID de usuário numérico em seu Mac.Com o NFS, você geralmente precisa garantir que seus IDs de usuário numéricos sejam de alguma forma iguais em todos os seus sistemas.Em sistemas domésticos/pessoais, os IDs de usuário tendem a ser atribuídos aleatoriamente, sem qualquer tipo de sincronização, o que causa problemas com o NFS.

Como este é um servidor doméstico, e se você confia em todos que se conectam ao seu servidor NFS, uma possível solução rápida e fácil e suja e feia e desajeitada é abrir permissões e permitir que todos e tudo possam ler/escrever/excluir seus arquivos (faça não faça isso em um ambiente corporativo, obviamente):

No seu sistema Ubuntu, faça login como jeeves (não sudo ou use qualquer outra conta), abra uma janela de terminal e execute os comandos, na ordem indicada:

cd /home/jeeves/Documents
find . -type d -print0 | xargs -0 chmod 777
find . -type f -print0 | xargs -0 chmod a+rw

No entanto, isso pressupõe que o NFS esteja configurado para permitir acesso a usuários não confiáveis ​​(no webmin, "Tratar usuários não confiáveis ​​como" está definido como padrão e não tenho certeza do que é).

Observe que, com os comandos acima, os proprietários dos arquivos e diretórios criados pelo Mac aparecerão como usuários numéricos no Ubuntu (porque o sistema Ubuntu provavelmente não terá nenhum usuário no Ubuntu). /etc/passwd correspondente aos IDs numéricos do Mac, o Ubuntu simplesmente exibirá os IDs numéricos brutos).

Resposta longa:

Quando você criou o jeeves conta no seu sistema Ubuntu, o Ubuntu atribuiu a ela algum ID de usuário numérico.Quando você criou sua conta de usuário no Mac, o Mac atribuiu a ela um ID de usuário numérico, que provavelmente era diferente do número atribuído no sistema Ubuntu.Observe que os nomes de usuário (por exemplo, "jeeves") são uma conveniência do usuário;nem o Ubuntu nem o Mac os usam internamente e, em vez disso, usam IDs de usuário.O NFS usa esses IDs numéricos para determinar propriedade/permissões (na caixa do Ubuntu).

  • Se os IDs corresponderem, as permissões de "usuário" serão usadas.

  • Se os IDs não corresponderem:

    • (Permissões de "grupo" podem ser usadas, mas isso é improvável e não vou discutir isso.)

    • As permissões "Outras" são usadas.Observe que, ao criar arquivos/diretórios, se o ID do usuário (Mac) não for encontrado na caixa do Ubuntu, você geralmente obterá arquivos que parecem pertencer a um proprietário "numérico";o número que você vê é o que o Mac está usando, e você vê o número porque esse ID não aparece no Ubuntu /etc/passwd.

IIRC, o Ubuntu usa umask de 022, o que significa que apenas o proprietário do /home/jeeves/Documents pode escrever/criar arquivos e diretórios;todos os outros têm permissões somente leitura.A menos que você tenha sincronizado de alguma forma os IDs de usuário entre suas caixas, é improvável que você tenha os mesmos IDs de usuário e, portanto, terá problemas de permissão.

Por se tratar de um servidor doméstico, a solução mais fácil, mencionada acima, é simplesmente livrar-se da segurança e permitir que tudo e todos acessem seus arquivos.Claro, isto é desagradável por razões óbvias.

A solução correta é garantir que todos os IDs de usuário estejam sincronizados entre todos os sistemas, mas isso pode ser um problema em um ambiente doméstico.Além disso, alterar os IDs dos usuários depois que uma conta é usada é problemático;embora isso possa ser feito, deve ser feito com cuidado, pois você pode danificar seu sistema.Não vou entrar em detalhes.

Editar:sentença parcial fixa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top