7 de set. de 2012

Compartilhamento de Arquivos no Linux





O Samba é um "software servidor" para Linux (e outros sistemas baseados em Unix) que permite o gerenciamento e compartilhamento de recursos em redes formadas por computadores com o Windows. Assim, é possível usar o Linux como servidor de arquivos, servidor de impressão, entre outros, como se a rede utilizasse servidores Windows (NT, 2000, XP, Server 2003). Este artigo faz uma abordagem introdutória ao Samba, mostrando suas principais características e um pouco de sua história.

Breve história do Samba

O Samba é uma criação de Andrew Tridgell. De acordo com informações dadas no site oficial do software, Tridgell precisava montar um espaço em disco em seu PC para um servidor Unix. Esse PC rodava o sistema operacional DOS e, inicialmente, foi utilizado o sistema de arquivos NFS (Network File System) para o acesso. Porém, um aplicativo precisava de suporte ao protocolo NetBIOS (não suportado pelo NFS). A solução encontrada por Tridgell não foi tão simples: ele escreveu um sniffer (pequeno programa para captura de tráfego de dados em rede) que permitisse analisar o tráfego de dados gerado pelo protocolo NetBIOS, fez engenharia reversa no protocolo SMB (Server Message Block) e o implementou no Unix. Isso fez com que o servidor Unix aparecesse como um servidor de arquivos Windows em seu PC com DOS.
Esse código foi disponibilizado publicamente por Tridgell em 1992. Porém, tempos depois, o projeto foi posto de lado até que um determinado dia Tridgell decidiu conectar o PC de sua esposa ao seu computador com Linux. Porém, não encontrou nenhum meio melhor que seu código para fazer isso e assim o utilizou.
Através de contatos feitos por e-mail, Tridgell descobriu que as documentações dos protocolos SMB e NetBIOS estavam atualizadas e assim voltou a dedicar-se ao projeto. Porém, uma empresa entrou em contato com ele reivindicando os direitos sobre o nome usado no software até então. Diante disso, Andrew Tridgell teve a idéia de procurar em um dicionário uma palavra que tivesse as letras s, m e b (de SMB) e acabou encontrando o termo "samba". A partir daí o projeto Samba cresceu e hoje Andrew Tridgell conta com uma excelente equipe de programadores e com milhares de usuários de sua solução espalhados pelo mundo.

O que o servidor Samba faz

Com o servidor Samba, é possível compartilhar arquivos, compartilhar impressoras e controlar o acesso a determinados recursos de rede com igual ou maior eficiência que servidores baseados em sistemas operacionais da Microsoft. Mas, neste caso, o sistema operacional utilizado é o Linux.
O Samba é compatível com praticamente qualquer versão do Windows, como NT 4.0, 9x, Me, 2000, XP, Server 2003,Vista, Seven e mais recentes além de máquinas com o Linux, é claro.
Todo trabalho feito pelo Samba é provido de grande segurança, uma vez que há grande rigor nos controles dos recursos oferecidos. Tanto é que existem empresas que usam o Samba como solução para conflitos existentes entre diferentes versões do Windows.
Como não poderia deixar de ser, o Samba também permite que sua configuração seja feita por meio de computadores remotos. Para os casos mais críticos, o administrador da rede pode até ser notificado de anormalidades por e-mail (para isso é necessário usar um script específico que busca informações nos arquivos de log e cria um arquivo que pode ser enviado via e-mail).

Instalando o Samba

O Samba é um software livre que está disponível sob a licença GNU (GNU's not Unix). Muitas distribuições Linux já o incluem, mas caso queira instalá-lo, é possível baixá-lo de seu site oficial - www.samba.org. Neste, é possível notar que há pacotes específicos para as distribuições mais famosas, como Fedora, Mandriva, SuSE, Debian, Ubuntu entre outros. Isso significa que a instalação depende do tipo de pacote utilizado (tar.gz, RPM, deb, entre outros). Assim, como exemplo, os usuários do Debian devem usar o seguinte comando:

apt-get install samba smbclient samba-doc



Se o pacote do Samba estiver no formato tar.gz basta digitar (depois de baixado):

# tar -zxvf samba-a.b.c.tar.gz (onde a, b e c correspondem ao número da versão)
Em seguida, basta entrar no diretório source e digitar:
./configure --prefix=/usr/local/samba
Por fim, digite:
# make

# make install


O arquivo smb.conf
Um fato que agrada muitos usuários do Samba é que sua configuração é feita em um único arquivo: o smb.conf. Esse arquivo geralmente fica localizado no diretório de instalação do Samba.
O arquivo smb.conf é estruturado da seguinte maneira: os parâmetros de configuração são agrupados em seções. Cada seção é identificada por um nome entre colchetes, por exemplo, [global]. A seguir, segue a descrição de três exemplos de seções pré-definidas no Samba:

[global] - como o nome indica, contém configurações que afetam todo o Samba. Por exemplo, nome do servidor;


[homes] - contém as configurações do diretório home para cada usuário;


Abaixo segue um exemplo de um arquivo smb.conf com uma configuração bastante simples, pois serve apenas para explicar a estrutura do arquivo. Seus parâmetros são explicados em seguida. A numeração no início das linhas não é usada no arquivo e foi inserida pelo InfoWester apenas para facilitar a localização dos parâmetros:

1 [global]
2 # nome do servidor de arquivos
3 netbios name = Servidor
4 # nome do grupo de trabalho ou do domínio

5 workgroup = DC

6 server string = Servidor de Arquivos no GNU/Linux
7 # diretório compartilhado
8 path = /home/arquivos
9 browseable = yes

10 writable = yes


Explicando:
- As linhas 1 contêm os nomes das seções;

- As linhas 2, 4 e 7 são comentários. Você pode inserir o texto que quiser nelas e o Samba irá ignorá-las. Os comentários são usados para documentar funcionalidades ou fazer observações. Esse recurso também pode ser inserido no final de qualquer outra linha, bastando inserir o símbolo # antes do comentário;

- A linha 3 - netbios name - contém o nome NetBIOS do servidor Samba;

- A linha 5 - workgroup - recebe o nome do grupo de trabalho ou do domínio no qual o servidor Samba faz parte;
- A linha 6 - server string - é uma identificação que o servidor Samba envia aos demais computadores da rede;
- A linha 8 - path - indica qual o diretório compartilhado, se for esse o caso;
- A linha 9 - browseable - informa se o diretório é visível ou não. Se não for, mesmo assim é possível acessá-lo;
- A linha 10 - writable - se tiver o termo "no", indica que o usuário apenas pode ler o conteúdo do diretório compartilhado, mas não pode alterá-lo.


Neste Vídeo mostrei de forma prática o que foi mostrado no texto acima, embora no vídeo esteja rodando no Ubuntu ela pode ser utilizada em qualquer distribuição GNU/LINUX que tenha o Samba instalado ou disponível para instalar.

 
Perdoem minha voz, pois estou me recuperando de uma gripe então em certos momentos eu tive que cortar o vídeo e em outros não teve como fugir, mas deixe um cometário para um melhor feedback.

Nenhum comentário:

Postar um comentário