NFS sem permissão de override

Iniciado por Tyasske, 05 de Março de 2009, 20:14

tópico anterior - próximo tópico

Tyasske

Olá!

Estou com um problema que supostamente é bem simples mas que não consigo resolver de jeito nenhum. Tenho um servidor com ambos Samba e NFS instalados e funcionando. Ambos estão completamente abertos para acessos, desde que sejam na rede local. Não há dados confidenciais, portanto não há necessidade de segurança rígida.

As máquinas com Windows na rede conseguem conectar ao servidor e exercer as suas atividades normalmente, com todas as permissões. Porém todas as máquinas Linux (todas Ubuntu 8.10) estranhamente não permitem que haja override de nenhum arquivo ou pasta (posso criar e apagar, só não editar nada). Após testar exaustivamente e procurar ajuda na net, encontrei opções na montagem do cifs (nounix e noperm) que resolvem parcialmente o problema.

Infelizmente não posso ficar com uma solução parcial, então parti para a conexão nativa via NFS. E o problema com o override continua. Estranhamente quando faço a conexão via Nautilus, clicando com o botão direito e pedindo para montar a unidade, tudo funciona.

Não sou o administrador do servidor, portanto não sei exatamente todos os detalhes. Mas é um server Debian recém instalado com as últimas versões dos pacotes do repositório oficial. Creio que possa ser algo relacionado à permissões, mas o que me intriga é que montando pelo Nautilus tudo funciona.

Como preciso inserir a montagem desse servidor em todas as máquinas automaticamente, sempre fazia isso colocando a configuração nas sessões, mas desse jeito não sei que parâmetro possa estar faltando para liberar o override. Qualquer luz me ajuda, só não consigo mais encontrar nada que ajude a solucionar o problema. Talvez descobrir qual o comando que o Ubuntu executa quando monto o server via Nautilus já resolva, e não sei onde isso pode estar.

Muito obrigado!

clcampos

#1
Como você faz a montagem? É pelo fstab? Como é a linha/comando da montagem?

Tem como colocar aqui o conteúdo do arquivo /etc/exports (do server)?

Qual é a permissão dos arquivos quando criados na partição NFS?
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Tyasske

Olá Clcampos, vamos às respostas:




CitarComo você faz a montagem? É pelo fstab? Como é a linha/comando da montagem?
No começo estávamos tentando montar com o smbmount, e depois passamos para o mount.cifs, que não são muito diferentes na sintaxe. Depois que não funcionou, passamos para o fstab. A linha ficou assim:

//192.168.5.1/publico /home/gregori/publico cifs user=***,password=***, noperm, nounix, rw

A linha usada no terminal antes não era muito diferente:

mount.cifs //192.168.5.1/publico /home/gregori/publico -o user=***,password=***, noperm, nounix

Lembrando que o nome e a senha não são necessários, a montagem acontece igual mesmo sem eles, colocamos no desespero mesmo.

Já a montagem usando o NFS é mais simples ainda:

mount //192.168.5.1/publico /home/gregori/publico

Esse mount do NFS pede a senha e qualquer senha dos usuários cadastrados funciona.




CitarTem como colocar aqui o conteúdo do arquivo /etc/exports (do server)?

No exports, fora as linhas comentadas, tem só essa:

/home/publico 192.168.5.0/24(rw,no_root_squash,sync,subtree_check)




CitarQual é a permissão dos arquivos quando criados na partição NFS?
Todos os arquivos têm permissão 0777, e mesmo quando um usuário cria eles remotamente, continuam como 0777, e isso é o que mais me confunde.




Talvez uma dica, mas que não me ajudou: Quando tento salvar um arquivo, o erro retornado é "Não é um diretório".

clcampos

Eu uso o NFS a tempos, sem nunca ter tido problemas, mas acho que mais simples que você.

No servidor meu arquivo /etc/exports esta assim:

Citação de: Usando sua faixa de IP como exemploponto_de_montagem            192.168.5.*(rw,sync)

Na montagem (já na estação):


  • fstab

CitarIP_do_Server:Diretorio_Exportado   ponto_de_montagem    nfs     defaults     0    0


  • Montando "na mão"

Citarmount -t nfs  IP_do_Server:Diretorio_Exportado   ponto_de_montagem

E só para confirmar, nas estações você instalou o pacote nfs-kernel-server?
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Tyasske

#4
Acho que estamos chegando em algum lugar agora. Obrigado por insistir  :P

O nfs-kernel-server não estava instalado. Quando eu tentei dar o mount -t nfs, o sistema acusou erro, justamente porque não tinha o pacote instalado. Após instalar ele, o comando aparentemente é aceito mas recebo outro erro, que pelas minhas pesquisas leva pra um arquivo no /etc/rc.d que por acaso não existe na minha máquina...

Acho que usando simplesmente mount, o sistema tava usando o cifs como padrão, e por isso o erro persistia.

O erro que me aparece é esse:
gregori@gregori:~/Público$ sudo mount -t nfs 192.168.5.1:publico .
mount.nfs: mount to NFS server 'rpcbind' failed: RPC Error: Program not registered
mount.nfs: internal error


Como eu não cuido do server, não sei realmente se o servidor tá rodando o NFS certinho.. tem como descobrir isso?

Ah, uma última coisa. Quando eu monto pelo Nautilus, tudo funciona. Depois de montar por lá, executei um mount e a linha sobre a montagem é essa:
gvfs.fuse-daemon on /home/gregori/.gvfs type fuse.gvfs-daemon (rw,nosuid,nodev,user=gregori)


EDIT: Quase Resolvido!

O arquivo hosts.allow do servidor não tava configurado certo. Quando adicionei a faixa de IPs da rede, o mount funcionou. Só tem um problema: Character Encoding. Ainda não consegui descobrir como fazer pra mostrar os acentos, vez que o NFS parece trabalhar em iso-8859-1 e a pasta tá em UTF-8. iocharset=utf8 não funciona. Tem alguma maneira de fazer isso? Nem que seja trocar o encoding da pasta em share.

Obrigado!




EDIT 2: Problema resolvido. Todo esse tempo estava concentrado nas estações acreditando que o servidor estava correto. Bom, no fim não vou saber se o servidor estava certo ou não, mas resolvi mesmo assim. Tendo em vista que na empresa todas as máquinas com Linux rodam Ubuntu (exceto um Slack como webserver), a melhor coisa a se fazer visando compatibilidade era usar o Ubuntu Server no lugar do Debian. Apesar dos dois terem hipoteticamente as mesmas bases, acredito eu que o Ubuntu Server seja extensivamente testado com clientes Ubuntu, o que aumentaria a compatibilidade.

Dito e feito. Depois de 1 hora consumida instalando e configurando o server, tanto o Samba quanto o NFS funcionaram sem problemas. Obviamente passamos um trabalhinho extra pra configurar ele de um jeito que para as máquinas Windows não fosse necessária mudança alguma, mas tudo funcionou perfeito. Além disso, o server parece ser mais organizado e ter pacotes mais atualizados que o Debian cru.

Agradeço imensamente a ajuda, clcampos! Tópico resolvido! (não encontrei a opção pra eu mesmo marcar como resolvido, acredito que tenha que ser um moderador pra fazer isso então.)

timtonys

Pessoal,

Estou tento exatamente o mesmo problema de Tyasske ...
Quando eu monto um compartilhamento samba de um servidor aqui da empresa utilizando mount, ele monta corretamente, consigo navegar pelas pastas, abrir arquivos, criar arquivos novos, mas quando tento sobrescrever um arquivo (Abro um texto no GEDIT altero e mando salvar) ele dá erro "Erro inesperado: Não é um diretório". Outra informação interessante é que quando, depois de montado, eu acesso o compartilhamento via Terminal (Linha de comando) e abro um arquivo texto com o VIM altero o arquivo e salvo, ele aceita o override. Quando eu monto o compartilhamento pelo Nautilus (smb://servidor/compartilhamento) o override funciona normalmente também.

Seguem informações:

Sistema operacional do cliente: Ubuntu 8.10
Sistema operacional do servidor: CentOS
Comando para montagem: sudo mount -t cifs -o username=******,password=******,iocharset=utf8,gid=smb,uid=$USER,rw //servidor/grupos /media/grupos

Não podemos mudar a distribuição do servidor samba aqui...alguem poderia me ajudar a resolver esse problema?

timtonys

Pessoal,

Resolvi o problema seguindo as instruções contidas no seguinte fórum:
http://user.services.openoffice.org/en/forum/viewtopic.php?f=9&p=59754

Trata-se de um bug no ubuntu 8.10 kernel 2.6.27. Resumindo a solução, coloquei o parâmetro "nounix" na montagem do compartilhamento. Depois disso todos os problemas se acabaram, tanto no OpenOffice quanto no gedit.

Meu comando para montagem do compartilhamento ficou assim:
Comando para montagem: sudo mount -t cifs -o username=******,password=******,iocharset=utf8,nounix,gid=$USER,uid=$USER,rw //"servidor"/"Compartilhamento" grupos /media/"ponto de montagem"

Coloquei o comando para montar automaticamente os compartilhamentos no FSTAB, agora quando inicio meu ubuntu, os compartilhamentos já estão montados e funcionais.

Até mais,