Configurando um servidor NFS em 4 passos

Essa é a solução mais fácil para iniciantes que precisam compartilhar seus arquivos em uma rede homogênea. Em quatro passos você poderá ter acesso a partições ou diretórios remotos como se estivessem em seu disco local.

[ Hits: 378.509 ]

Por: Fábio José de Mattos em 18/05/2004


Configurando o servidor NFS



Direto ao assunto:
Primeiramente vamos configurar um servidor, ou seja, o computador que conterá a pasta que será compartilhada com os outros micros de sua rede.

É importante lembrar, se for necessário, que a configuração seguinte pode ser feita em todos os micros de sua rede, permitindo que todos possuam suas pastas compartilhadas para um ou mais hosts.

Em seguida mostraremos como acessar esses diretórios compartilhados, chegando até na configuração do /etc/fstab para estabelecermos uma montagem automática durante a inicialização de seu sistema.

Configurando o servidor NFS


Para começar a configurar o serviço, você deve entrar no sistema como root e criar um diretório /compartilhado, como default desse documento, ou se preferir escolha outro local ou outro nome de diretório a ser compartilhado. Depois é só seguir os quatro passos seguintes para ver seu servidor em pleno funcionamento.

OBS: Os exemplos são para o compartilhamento de apenas um diretório, mas você pode criar quantos forem necessários para atender suas características de trabalho.

1° passo:
Editar o arquivo /etc/exports para definir a pasta a ser compartilhada e permissões de acesso.

A linha abaixo, por exemplo, dá acesso ao diretório 'compartilhado' para o IP 192.168.0.2, com direitos de leitura, escrita e execução:

# Path do diretório  IP do cliente  Permissões de acesso  
/compartilhado/      192.168.0.0/24 (rw,no_root_squash,sync)  

Abaixo mostro o padrão de construção da linha de permissões de acesso ao compartilhamento:

Diretório host1(opção11, opção12) host2(opção21, opção22)

Onde:
  • Diretório: diretório a ser compartilhado (ex. /home/fabio/).
  • HostN: IP do PC cliente do compartilhamento.
  • OpçãoXY: permissões de acesso ao compartilhamento (ex. Leitura e escrita).

As principais opções de permissão são:
  • ro: somente leitura.
  • rw: leitura e escrita.
  • no_root_squash: por default, o nível de acesso dos clientes ao servidor é mesmo que o root. Porém, se quiser que os níveis de acesso sejam os mesmos que os locais, basta definir esta opção no compartilhamento.


2° passo:
Editar o arquivo /etc/hosts.deny para definir a segurança do compartilhamento.

Inserir as seguintes linhas:

portmap: ALL
lockd: ALL
mountd: ALL
rquotad: ALL

3° passo:
Editar o arquivo /etc/hosts.allow para definir o IP ou faixa de IPs que poderão "concorrer" aos compartilhamentos, ou seja, especifica quem terá acesso a cada serviço.

Inserir as seguintes linhas para permitir que toda a rede 192.168.0.0/24 tenha direito serviços especificados:

portmap: 192.168.0.0/24
lockd: 192.168.0.0/24
rquotad 192.168.0.0/24
mountd: 192.168.0.0/24
statd: 192.168.0.0/24

No exemplo é especificado uma faixa de IPs, mas você pode definir os hosts separadamente dentro do padrão abaixo:

serviço: host1, host2, host3, hostX

4° passo:
Para a conclusão da configuração do servidor NFS, você deve preparar o seu sistema para inicializar o serviço NFS no boot. Para isso, você deve acessar o diretório /etc/rc.d e digitar os seguintes comandos em seu terminal para dar permissão de execução:

# chmod a+x rc.portmap
# chmod a+x rc.nfsd


NOTA: Se você adicionar um novo ponto de montagem NFS no arquivo /etc/exports e quiser ativá-lo sem precisar reiniciar os serviços (nfsd), digite o seguinte comando:

# exportfs

Pronto, o novo ponto de montagem foi exportado!
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configurando o servidor NFS
   3. Montando o diretório remoto no cliente
   4. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Configurando o X e a placa de vídeo NVidia no Debian Sarge

ZABBIX Proxy com MySQL

Passo a passo: Fedora autenticando usuários no Active Directory

Como configurar um servidor de FTP de forma simples e com host virtual

Ubuntu 7.10 "levinho" para PCs antigos

  
Comentários
[1] Comentário enviado por mattos_fatec em 18/05/2004 - 21:03h

Desculpe-me não ter conseguido corrigir os erros a tempo mas, temos dois erros nesse artigo.

1 - Na linha

# Path do diretório IP do cliente Permissões de acesso
/compartilhado/ 192.168.0.0/24 (rw,no_root_squash,sync)

deveria ficar

# Path do diretório IP do cliente Permissões de acesso
/compartilhado/ 192.168.0.2 (rw,no_root_squash,sync)

2- No segundo passo faltou uma linha para o /etc/hosts.deny

Está assim

portmap: ALL
lockd: ALL
mountd: ALL
rquotad: ALL

deveria estar

portmap: ALL
lockd: ALL
mountd: ALL
rquotad: ALL
statd: ALL

Desculpe-me novamente

Fábio José de Mattos
mattos_fatec@yahoo.com.br / ICQ 277450698

[2] Comentário enviado por agk em 20/05/2004 - 16:49h

Ótimo artigo, estava precisando compartilhar o cdrom de uma máquina de um laboratório, acho que com NFS vai funcionar legal. OBS: laboratório somente com máquinas linux.

[3] Comentário enviado por agk em 20/05/2004 - 17:24h

Uma dica para quem usa debian:
Os pacotes para usar NFS:
- Para o servidor:
#apt-get install nfs-common nfs-kernel-server
- Para os clientes:
#apt-get install nfs-common

Para inicializar automaticamente no boot use o rcconf (parecido com o ntsysv):
Se não tiver instale:
#apt-get install rcconf

Depois para habilitar/desabilitar programas que iniciam com o boot marque/desmarque:
#rcconf

[4] Comentário enviado por eduac em 30/08/2004 - 14:19h

Pessoal,
Eu até consegui fazer rolar pelo tutorial o compartilhamento pelo nfs, mas ele demora muito pra montar no client (uns 4/5min). Alguem sabe o que pode ser?
O comando que eu uso é esse:

mount -t nfs <ip_servidor>:/compartilhado temp/

obs: E eu uso o slack 10. E no servidor (debian) esta tudo instalado e ele monta rapidamente de dentro do servidor usando o 127.0.0.1.

[5] Comentário enviado por jgfreitas em 08/04/2005 - 10:35h

Pessoal, eu uso Slack 10, fiz todos os passos e dá o seguinte erro
"mount: RPC: Remote system error - Connection refused", alguém sabe o que pode ser?

[6] Comentário enviado por thadeu em 10/05/2006 - 23:26h

ALERTA! MUITA ATENÇÃO

Certifique-se que não existem links simbólicos dentro da pasta compartilhada!!!

Caso seja uma pasta que esteja linkada, será possível recorrer-se à pasta original e, daí, navegar por todo o computador que compartilha a conexão!!!!

Fiz esse teste utilizando o Rox-Filer, clicando sobre o ícone da pasta linkada dentro da pasta compartilhada com o botão direito: selecionei o menu "Ligação Simbólica" » "Mostrar Alvo" e então cheguei a esta conclusão.

[7] Comentário enviado por AndreFranca em 17/12/2007 - 16:09h

Prezado mattos,
muito boa sua iniciativa de escrever um artigo sobre NFS, com certeza tirou dúvidas de muita gente. Mas gostaria de fazer uma correção sobre seu artigo, ok?

Quando um cliente, logado como root em sua máquina, acessa o compartilhamento no servidor, por padrão, o servidor seta o UID para o acesso como se fosse o usuário nobody do server. Quando usamos a opção no_root_squash, estamos dizendo que o usuário root da máquina terá o mesmo privilégio do root no servidor também. Isso pode ser um sério risco de segurança. Só utilize essa opção quando você realmente quiser garantir que o root do cliente aja tenha privilégios de root no servidor.

No mais, seu artigo está muito bom, meus parabéns e continue contribuindo com a comunidade, todos só temos a ganhar!!

[]'s
França

[8] Comentário enviado por removido em 23/03/2008 - 04:26h

Amigo,

Excelente artigo!


Atenciosamente,

Slackmaster (jlgomessouza@gmail.com)

http://dangercode.blogspot.com


[9] Comentário enviado por turcedor em 16/05/2008 - 03:25h

nao consigo fazer funcionar no suse 10.2, como ficaria este comando aqui?

# chmod a+x rc.portmap
# chmod a+x rc.nfsd


[10] Comentário enviado por LesleyRibeiro em 04/08/2008 - 10:46h

Olá amigo,
uso ubuntu 8.4, em um laboratorio de info.
nao consegui fazer o comando:
# chmod a+x rc.portmap
# chmod a+x rc.nfsd
obrigado.

[11] Comentário enviado por rogeriojlle em 22/12/2008 - 14:59h

tenho um servidor com Opensuse 10.3 rodando Samba e estações clientes com WinXp, só que agora essas estações estarão com Dual-boot com Opensuse 11, As estações cliente em Linux fazem logon via NIS; acontece que o compartilhamento "/home" é sempre montado como somente leitura, o máximo que consegui fazer alterando as permissões é de nem leitura ter, pra ningúem.
Algúem pode me dar uma dica a respeito?

Fstab dos clientes:
10.0.0.35:/home /home nfs rw 0 0

fstab do servidor:
/dev/sdb1 /home ext3 acl,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 2

/etc/export do servidor nis/samba
/home *(rw,sync,no_root_squash)

[12] Comentário enviado por fabioholliday em 25/12/2008 - 22:05h

Galera sei que este tópico é meio antigo, mas galera estou Hà 3 meses tentando fazer com duas máquinas linux se enxerguem, mas nada do qeu eu tento dar certo já tentei com fedora, já tentei com ubuntu, mas nada adianta, já se tem máquina linux e máquina windows, aí eu consigo acessar o pc windows, mas não virce-versa, alguem pode me ajudar como se configura o nfs ou o smb? eu já tentei em todos o tutorias inclusive este aqui, faço todos os passo corretamente, mas não funciona.. dar sempre está mensagem quando tento montar o compartilhamento "sudo mount 192.168.254.3:/média/rede2 /media/rede1/
mount.nfs: access denied by server while mounting 192.168.254.3:/média/rede2"'

[13] Comentário enviado por dtux em 08/01/2009 - 01:13h

Eu tambem estou tento esse tipo de erro, acho que eh pq vc está tentando exporta uma pasta que já está dentro de outra pasta, pq se você tentar fazer o mesmo criando essa pastar rede2 no seu diretorio root / ele da certo. Mas se alguem conseguiu exportar um subpasta por favor poste a receita do bolo!1

[14] Comentário enviado por rogeriojlle em 09/01/2009 - 23:11h

Exportar diretorio "/home" [RESOLVIDO]

No meu caso funcionou assim:

Na máquina servidora (NIS e NFS) mapas: passwd, group e shadow - NIS
e cadastrei as estações clientes como slaves
Para o serviço NFS exportei /home com os parametros rw,no_root_squash,sync,no_subtree_check

chmod -R 755 /home

nos clientes ativei o serviço AUTOFS:

em /etc/auto.master acrescentei o seguinte: (no Opensuse já tem uma linha ativa que não sei o que ela faz entao deixei assa linha por último e o que agora vier abaixo ficou na PENULTIMA linha)

/home /etc/auto.home

e criei o tal /etc/auto.home com o seguinte conteúdo:

* -fstype=nfs,rw ip_do_nfsserver:/home/&

Com o Yast (todas as minhas estações Linux rodam Opensuse) ativei a autenticacao via nis.

reiniciei a estacao cliente

Saiu melhor que encomenda, pois só monta a home do fulano que está logado

Fontes de pesquisa:
http://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/sysadmin-guide/s1-nfs-mount.html

http://homepages.dcc.ufmg.br/~barroca/cef/nfs.pdf

[15] Comentário enviado por dinorox em 21/09/2011 - 11:57h

fabinhotdb e diego-p-g

Parece que o problema é com o cliente. Uso o fedora 15 como server e quando tento montar com o cliente do parted magic 5.5, ocorre tudo beleza. Agora, quando tento montar com o cliente de outro fedora 15, dá esse erro (mount.nfs: access denied by server while mounting).

[16] Comentário enviado por igor_rocha em 25/03/2012 - 02:47h

Ola @agk, muito obrigado, pois eu estava montando um diretório nfs e não conseguia acessar com um cliente Ubuntu, só consegui após a instalação do pacote que você mencionou, o nfs-comon, valeu pela dica.

e mattos muito obrigado pelo artigo... abraço

[17] Comentário enviado por alexandremc em 08/10/2013 - 10:01h

Oi amigo, to com o seguinte erro:

root@teste3:~# mount -v 192.168.0.1:/mnt/publico /mnt/publico/
mount: nenhum tipo foi fornecido - supondo nfs por causa dos dois-pontos
mount.nfs: timeout set for Tue Oct 8 10:02:54 2013
mount.nfs: trying text-based options 'vers=4,addr=192.168.0.1,clientaddr=192.168.0.106'
mount.nfs: mount(2): No such file or directory
mount.nfs: trying text-based options 'addr=192.168.0.1'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.0.1 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 192.168.0.1 prog 100005 vers 3 prot UDP port 54847
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 192.168.0.1:/mnt/publico

Sabe o que pode ser?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts