Infra - Linux
Acesso aos recursos compartilhados de sua rede Microsoft ou Samba via HTTP
Inúmeras vezes precisei copiar arquivos que se encontravam em uma pasta compartilhada da minha rede Samba. Com este artigo você poderá disponibilizar os recursos de compartilhamento da sua rede interna pelo protocolo HTTP. Portanto, seguindo as instruções deste documento, poderás efetuar todas as operações com arquivos em uma rede interna via browser.
por Alessandro de Oliveira Faria
O princípio de funcionamento de tutorial é muito simples. Copiaremos o script
smbwebclient.php para o DOCUMENTROOT do Apache e pronto! Seu serviço de
compartilhamento já está disponível via web.
Porém não aconselho deixar
este script no ar rodando a todo momento. Sendo assim elaborei um script para
ligar e desligar o acesso a rede interna manualmente. Criei um script que sempre
fica no ar exibindo a mensagem: "Serviço Indisponível".
Quando
executamos o Shell-Script LIGASMBWEB, substituímos o script da mensagem pelo
script de compartilhamento (smbwebclient.php). Enquanto isto o shell-script
aguarda o pressionamento da tecla [ENTER] para só então desativar a
disponibilização via web. Na verdade substituímos o script em php novamente pela
mensagem: "Serviço Indisponível".
Chega de blá-blá-blá e vamos descer o
dedo para o teclado...
Requisitos deste tutorial:
- Pacote dialog (Interface para o modo texto).
- Apache/PHP 4.1.x ou superior.
- Serviço de compartilhamento Samba ou Microsoft.
Downloads
O pacote dialog encontra-se nos CDs de quase todas distribuições
Linux.
Smbwebclient:
Script ligaweb: http://www.linhadecodigo.com.br/artigos/downloads/alessandro_faria/ligasmbweb.txt
Script desligaweb: http://www.linhadecodigo.com.br/artigos/downloads/alessandro_faria/desligaweb.txt SmbwebclientErro: http://cabelo.linuxdicas.com.br/exemplos/smbwebclientErro.php -->
ATENÇÃO: Apenas para efeito de compatibilidade com este tutorial, efetue o download dos scripts na pasta /rede/scripts.
Instalação, configuração e execução
Após o download, copie o script SmbwebclientErro para o
DOCUMENTROOT do Apache: # cd /rede/scripts/ # cp smbwebclientErro.php /srv/www/default/html/smbwebclient.php Veja o resultado ao solicitar o serviço no endereço: http://ip-do-meu-servidor/smbwebclient.php |
Agora iremos analisar os scripts. Abaixo o script ligasmbweb: |
#!/bin/sh DIALOG=${DIALOG=dialog} PATH_APACHE="/srv/www/default/html/" LIGA_SMBWEB="/rede/scripts/smbwebclient.php" $DIALOG --title "Samba Via Web" --clear \ --yesno "Deseja habilitar o serviço de compartilhamento samba via WEB? " 6 40 case $? in 0) cp $LIGA_SMBWEB $PATH_APACHE desligaweb;; 1) echo "Opção cancelada!";; 255) echo "ESC pressionado.";; esac |
Na 3a. linha, a variável PATH_APACHE deve conter o caminho completo do DOCUMENTROOT do Apache. No meu caso /srv/www/default/html/. Já na 4a. linha a variável LIGA_SMBWEB aponta para o script smbwebclient.php, em nosso exemplo utilizei o conteúdo /rede/scripts/smbwebclient.php. Agora vamos executar o script ligasmbweb: $ su # cd /rede/scripts/ # ./ligasmbweb Veja o resultado ao executar o script: |
O script parte do princípio que estamos habilitando MANUALMENTE o serviço de acesso aos serviços de compartilhados Samba e/ou Microsoft via web. Pressione [ENTER] com a opção <YES> selecionada para confirmar a operação. O script irá substituir o HTML que exibe "SERVIÇO INDISPONÍVEL" pelo VERDADEIRO script em php smbwebclient.php, assim permitindo o acesso a sua rede interna. Repare que após a substituição do script, é executado o desligaweb, que analisaremos a seguir. Veja a funcionalidade do serviço no vídeo abaixo: Agora vamos ao o script desligaweb. Veja o código do script abaixo: |
#!/bin/sh DIALOG=${DIALOG=dialog} DESLIGA_SMBWEB="/rede/scripts/smbwebclientErro.php" LIGA_SMBWEB="/srv/www/default/html/smbwebclient.php" $DIALOG --title "Compartilhamento Web Habilitado!" --clear \ --msgbox "Pressione [Enter] para finalizar o serviço de compartilhamento..." 6 41 case $? in 0) cp $DESLIGA_SMBWEB $LIGA_SMBWEB;; 255) echo "ESC pressionado.";; esac |
Na 3a. linha a variável DESLIGA_SMBWEB aponta para o script smbwebclientErro.php (HTML que apresenta a mensagem "SERVIÇO INDISPONÍVEL"). Este script substituirá o VERDADEIRO serviço smbwebclient.php que está em funcionamento. Agora na 4a. linha a variável LIGA_SMBWEB aponta para o script (em execução) smbwebclient.php, que será substituído. Desta vez o script se encontra no DOCUMENTROOT do Apache (/srv/www/default/html/smbwebclient.php). Enquanto o smbwebclient está em funcionamento, encontramos a seguinte tela no console que executamos o script: |
Ao pressionarmos [ENTER] o script DESLIGAWEB finaliza o compartilhamento. Se o serviço for solicitado após a operação acima, iremos obter a seguinte mensagem novamente: |
Em resumo, basta executar o script LIGASMBWEB para levantar o serviço e pressionar [ENTER] para finalizar o acesso. Tentei ser o mais objetivo possível neste tutorial, espero que ajude a muitos, pois este esquema se tornou uma ferramenta útil no dia-a-dia. |
- Login automático com SSH e Automatização da instalação (deploy) e atualização de sites com GitLinux
- Extensão Sun Presentation Minimizer para Broffice.ORGLinux
- Otimização de Desempenho em sistemas GNU/LinuxLinux
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 3Hardware
- Hardware para sistemas GNU/Linux - Dicas de Desempenho - Parte 2Hardware