Permissão negada com montagem do NFS com Webmin (Mac OSX + Ubuntu Setup)
-
21-12-2019 - |
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.
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%
...
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ãosudo
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.