Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > UnderLinux Wiki
Wiki Classificados Galeria Reviews Jogos Comunidades RSS Feeds FAQ Termos de Uso Sobre
Cadastre-se FotosBlogs Lista de Membros Calendário Pesquisar Mensagens de Hoje Marcar Fóruns Como Lidos

Ferramentas pessoais
Publicidade

From UnderLinux Wiki

Por Luciano Gaspar Farias - lucianogf - lucianogf@yahoo.com


Tabela de conteúdo

Introdução


Este tutorial foi baseado no texto de Hélder Garcia, e adaptado de acordo com o manual do shfs.

Com o módulo shfs monte facilmente qualquer filesystem remoto através de uma conexão segura, via ssh.

Apenas com a compilação do módulo e um utilitário para a montagem dos filesystems, no lado do cliente, e tendo o ssh server instalado no servidor remoto, é possível para o usuário acessar filesystems remotos como se fossem locais. O servidor remoto pode, ainda, ser de diversas plataformas, como Linux, Solaris, AIX, Cygwin, entre outros, pois ele só precisa do ssh e de um bash ou perl 5 instalados. Toda a comunicação é feita por uma conexão ssh, de forma secura e confiável. Neste artigo iremos realizar a instalação e montagem de um filesystem remoto.

Plataforma utilizada


Lado Cliente 01


Pentium MMX 233MHz
32MB RAM
Slackware 10.2
Kernel 2.4.31
Captive-NTFS 1.1.5
Lufs 0.9.7



Lado Cliente 02


Athlon 2600+ FSB 333MHz
512MB Ram
Conectiva 10
Kernel 2.6.11-72032U10_17cl
Kernel 2.6.5-63077c
shfs 0.35


Lado Servidor



Servidor Linux rodando SSHD

Compilação


Primeiro faça o download do pacote.
Pode ser baixado em:

http://shfs.sourceforge.net/


Siga os comandos abaixo:

# cd /tmp
# tar xzvf shfs-0.32.tar.gz
# cd shfs-0.32

Primeiro cheque a variável KERNEL_SOURCES no primeiro nível do arquivo Makefile. Veja se ela contém o caminho do seu kernel. Importante (kernel 2.4): cheque seu compilador se é o mesmo usado para compilar seu kernel:

# gcc --version
gcc (GCC) 3.3.6
# cat /proc/version
Linux version 2.4.31 (root@tree) (gcc version 3.3.5) #6 Sun Jun 5 19:04:47 PDT 2005

Se a versão do compilador e do kernel forem diferentes vc deve adicionar a variável CC na hora da compilação. ex.:

# gcc --version
gcc (GCC) 2.96
# cat /proc/version
Linux version 2.4.31 (root@tree) (gcc version 3.3.5) #6 Sun Jun 5 19:04:47 PDT 2005
# make CC=gcc-3.3.5

Caso esteja tudo OK proceda com o comando normal:

# make

Testando o módulo

Após compilar o módulo, podemos testá-lo antes de instalar. Carregue o módulo manualmente:

$ insmod shfs/Linux-2.6/shfs.o

Crie um mountpoint para montar o filesystem:

$ mkdir /mnt/shfs

Execute o utilitário compilado, passando como parâmetros user@host remotos e o mountpoint local:

$ shfsmount/shfsmount hlbog@192.168.1.2 /mnt/shfs
hlbog@192.168.1.2's password:

Certifique se funcionou:

$ cd /mnt/shfs
$ ls projetos/

Verifique que o filesystem montado é o home do usuário utilizado para realizar a conexão. Após esse teste inicial, você pode desmontar o filesystem e instalar o módulo no sistema.

Instalando

$ cd /tmp/shfs-0.32
$ shfsmount/shfsumount /mnt/shfs
$ make install

Criando arquivo .deb/.rpm

Se você desejar criar arquivo .deb ou .rpm e instalá-lo, proceda da seguinte forma:

# make deb
# dpkg -i ../shfs*.deb

ou

# make rpm
# rpm -ivh ../shfs*.rpm

Criando patch

É possível também criar um patch para o kernel

# cd shfs/Linux-2.x/
# make patch

Se o patch for aplicado, não há necessidade de módulo para o kernel, justo que o shfsmount foi instalado e configurado.

Utilização

Depois de instalado, você pode usar o utilitário mount normalmente, apenas passando o tipo do filesystem como shfs. Veja o exemplo abaixo:

$ mount -t shfs user@power /mnt/shfs
user@power's password:
$ ls -l /mnt/shfs
total 2
2 drwxr-xr-x 2 root root 4096 Feb 19 03:53 projetos/

Uso comum (montando o diretório home do usuário no host):

shfsmount user@host /mnt/shfs
ou
mount -t shfs user@host /mnt/shfs

Especificando o diretório remoto:

shfsmount user@host:/tmp /mnt/shfs
ou
mount -t shfs user@host:/tmp /mnt/shfs

Especificando porta diferente:

shfsmount -P 2222 user@host /mnt/shfs

Especificando outras opções de SSH:

shfsmount --cmd="ssh -c blowfish %u@%h /bin/bash" user@host:/tmp /mnt/shfs/

To make mount survive temporary connection outage (reconnect mode):

shfsmount --persistent user@host /mnt/shfs

Transferências longas? Aumente o tamanho do cache (1MB cache por arquivo):

shfsmount user@host /mnt/shfs -o cachesize=256

Para permitir a resolução de symlink:

shfsmount -s user@host /mnt/shfs

Para preservar o uid (gid) (NFS substitui o modo):

shfsmount root@host /mnt/shfs -o preserve,rmode=755

Para ver se algo está errado (forces kernel debug output too):

shfsmount -vvv user@host /mnt/shfs

Permissões

Se você quiser que qualquer usuário possa montar um filesystem remoto via shfs, ative o suid dos comandos /usr/bin/shfsmount e /usr/bin/shfsumount:

$ chmod u+s /usr/bin/shfsmount
$ chmod u+s /usr/bin/shfsumount

Também é possível utilizar o automounter para conectar automaticamente com o servidor remoto. Neste caso, considere utilizar chaves ssh.

Observações importantes

Nos testes utilizando kernel 2.6.5-63077c e 2.4.31 os resultados foram de acordo com o esperado. Mas ao utilizar o kernel 2.6.11-72032U10_17cl não oi possível instalar o módulo. Ainda não sei a causa do problema, mas quando descobrir será adicionado ao tutorial.

Conclusão


o SHFS mostrou-se muito útil para situações que precisamos conectar a algum servidor e compartilhar arquivos, o ideal seria a utilização de uma VPN, mas neste caso fica quase como uma VPN.

Para maiores detalhes acesse a página do projeto shfs no sourceforge.

http://shfs.sourceforge.net
http://shfs.sourceforge.net/install.html
Horários baseados na GMT -3. Agora são 1:04.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.