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.
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: 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:
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:
[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.
[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!!
[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
[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.
[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