Início > Diversos, Linux, Microsoft, Slackware > Samba como cliente (estação)

Samba como cliente (estação)

Hi folks =)

Um dos maiores mitos, dos quais a Microsoft adora assustar os seus clientes insatisfeitos, aqueles que realmente assumem vontade de trocar de plataforma, é dizer que o Windows não se integra em rede com outros sistemas operacionais (explicitamente ela critica o Linux), como se apenas você detestasse o Windows mas só existisse ele na face da terra, e qualquer que seja o seu sistema operacional não-microsoft, ele não se “integrará com o mundo”. Eu já vi várias pérolas nesse sentido.

Desmentindo tudo isso, existe um programa que realmente deveria ser definido como o sentido da interoperabilidade. O Samba é o programa em que a mágica acontece, e faz sistemas operacionais Unix/Unix-Like (Solaris, BSDs, Linux, AIX e outros) se integrarem em redes ambiente Windows. Fruto inicialmente do programador Andrew Tridgell, atualmente o Samba é mantido por ele e pela sua comunidade. E é muito completo, compartilha arquivos, tem gerenciamento de usuários, PDC (controlador de domínios, inclusive mais rápido que o próprio Windows, infelizmente ainda a nível NT4) e se integra ao MS ActiveDirectory. Tudo isso sem códigos proprietários (ocasião em que eu acho isso uma vantagem) sem infringir nenhuma patente. Samba é r0x.

Como tudo começou (senta que lá vem história)

A história do Samba por si só é um capítulo a parte. Parafraseando um amigo meu, sem saber que era impossível, ele foi lá e fez. Tinha um cara que era PhD em Ciências da Computação em Canberra, na Austrália, no ano de 1991. O nome dele é Andrew Tridgell.

Ele havia ganhado um programa chamado eXcursion, um cliente X pra Windows, e esse programa necessitava de um segundo programa, o Dec PathWorks. Havia o cliente pra DOS, mas impossibilitava o uso de algum cliente NFS. O Pathworks Server então só era disponível para estações DEC rodando VMS ou Ultrix, e assim, ele não poderia mais montar os dispositivos no Solaris dele, pois o programa não tinha foco no Solaris ou outro SO não sendo os da DEC.

Andrew então tinha uma DecStation 3100 com Ultrix no laboratório, e ele imaginou que a merda do protocolo que o Ultrix usava não seria tão dificil de implementar, apesar dele nunca ter escrito nada voltado pra rede. Leu um pouco sobre sockets e criou um programinha simples, chamado Clockspy, que simplesmente capturava o que o Pathworks Server “falava” pro Pathworks Client. Ele passou a escrever programas simples em C (Turbo C pra DOS) que dava comandos básicos ao servidor (open, read, cd e outros) e ficava de olho nos pacotes que eles trocavam.

Com base nisso, ele escreveu um programa pro Solaris que “conversava” com o Pathworks Server, como o Pathworks Client fazia. Ele pensou que poderia haver pessoas que se interessariam pelo que ele havia feito, e perguntou na universidade, mas ninguém quis. Então, ele foi num escritório da DEC em Canberra e perguntou se ele poderia distribuir o programinha que ele havia feito, ou se era ilegal. E foi a primeira vez que ele ouviu o nome NetBios. Então ele leu os RFCs 1001 e 1002 (documentação do NetBios) e viu que simplesmente, ele implementou o SMB, o protocolo de rede da Microsoft! Assim, ele chamou o seu programa de Server 0.1.

E tudo bem, mas passou um tempinho (encurtando a história) e ele recebeu um email que dizia que o Server interagia com o LanManager, e aí que ele foi ver o que foi que ele tinha criado!!! Posteriormente, ele chamou o programa de NetBios for Unix (veja o anúncio original aqui), e posteriormente mudou o nome para Samba. Assim, Andrew acabou se tornando das personalidades mais r0x do mundo Linux atualmente, uma pessoa que eu admiro muito.

Como eu comecei a gostar disso

Já expliquei nesse post, meio por alto, que na minha saga do aprendizado, o NFS foi o primeiro meio de comunicação e troca de arquivos que eu implementei no Linux. O Samba já despertava a minha atenção, sim, mas era algo muito “complexo” pra minha cabeça, naquela época, e não havia bons tutoriais na internet. Tudo era voltado pra PDC, mal explicado e complicado. Eu tentei várias coisas, pois precisava trocar arquivos (meu computador era o único Linux no meu ambiente de trabalho), e nada funcionava.

Então, num ato de machêsa, eu resolvi configurar o samba por mim mesmo. Já sabia de alguns parâmetros básicos, será que eu não conseguiria fazer sozinho? Então, li mais algumas coisas e fiz um apanhado geral do que a internet me dizia e do que eu poderia fazer. Interpretei o que várias linhas significavam, montei o meu smb.conf, de primeira ele já funcionou. E posteriormente, na terceira tentativa ele já recebeu arquivos que eu me auto-mandei de outro computador via ambiente de rede. mais uma lida e eu consegui fazê-lo imprimir via rede, e mais um pouco, outros computadores imprimiram através da minha estação: Serviço completo. E é isso que vou instalar a partir de agora.

A instalação do Samba

No Slackware 11, 10.2 e 10.1, o pacote vai no CD1, diretório /slackware/n. Só um installpkg samba-3.0.23c-i486-1.tgz e a parada tá resolvida. O script de inicialização é no /etc/rc.d/rc.samba.

No Fedora 6, yum install samba. Ele baixa e instala sem problemas (isso se o pacote samba não foi selecionado no ato da instalação). Basta um service smb start e ele já entrará em execução.

No Debian, apt-get install samba. Se tu der sorte ele vai baixar os pacotes corretamente e vai instalar certinho, hehe. No final ele tem um “assistente”, onde ele perguntará se quer que o samba inicialize a partir dos daemons ou do inet. Sugiro fortemente os daemons. service samba start e ele ativa.

No Solaris eu achei o pacote nesse site, só baixar e instalar com o pkg-add. Para ativar, svcs samba start (se eu não me engano era assim, tem tempo que eu fiz e o meu DVD do Solaris tá com o Gilberto).

Em todas, a configuração é feita no arquivo /etc/samba/smb.conf, e não vai haver mudanças no arquivo. No máximo os diretórios terão alteração.

Enfim, o smb.conf

Esse arquivo acompanha todas as configurações do samba, para o Unix/Linux interagir com o tal do Windows. Abaixo segue o meu smb.conf comentado para a interação de compartilhamento, ou seja, sem necessidade de usuário e senha. O arquivo é dividido em sessões. Na Global são as configurações gerais. Na printers, obviamente ficam as impressoras. E as configurações de diretórios terão o nome que tu escolher. Lets go?

# /etc/samba/smb.conf básico para compartilhamento.
# altere conforme as suas necessidades.
# Criado por: Lucas Timm
# https://timmerman.wordpress.com

[global]

# workgroup: Grupo de trabalho, deixe igual aos que tu
# colocou no Windows. Me deixe adivinhar… mshome? hehe.

workgroup = timmhome

# server string: Descrição do computador. Fique a vontade.

server string = AMD Athlon 1300MHz

# netbios name: Nome do servidor perante o Windows, que
# aparecerá no “Meus Locais de Rede”, ou \\nome.

netbios name = Servidor

# printcap name: O sistema de impressão que você usa. Pode ser lpd.

printcap name = cups

# load printers: Quer que os Windows vejam a impressora? Se nao
# tiver pode colocar em no, sem dó.

load printers = yes

# tempo de cache do sistema de impressão. Não mexa.

printcap cache time = 60

# De novo, se tu usa o cups deixe assim. Se usa lpd, basta mudar.

printing = cups

# Agora vem o sistema de logs. Estarão no diretório abaixo.

log file = /var/log/samba/%m.log

# Tamanho máximo do log

max log size = 50

# Debug do Log. Como esse smb.conf tá montado, está básico.
# Mas fazendo um domínio, por exemplo, é muito bom aumentar,
# principalmente quando a gente não descobre o erro. hehe.

debug level = 1

# Essa aqui é a fodona!😀 Não mexa nela. Essa apenas permite
# compartilhar.

security = share

# OS Level: Essa também é r0x, com OS Level = 100 a estação irá
# atualizar a lista com o nome dos hosts presentes.
# Deixa assim.

os level = 100

# Domain Master: A mesma coisa da acima.

local master = yes

# Quer o samba como um proxy de DNS? Eu não, se tu quiser, põe yes!

dns proxy = no

# Ele será um servidor WINS? (o negócio da listinha). Eu gosto.

wins support = yes

# Acabou a parte do global, vamos pra parte do printers. Se tu
# Não tiver nenhuma e colocou “no” nas de cima, pode comentar.

[printers]
comment = All Printers
path = /var/spool/samba
browseable = yes
guest ok = yes
writable = yes
printable = yes
read only = yes

# E agora os diretórios! Crie: [NomeQueVoceQuerQueApareça]
# podem ser quantos você quiser. Recomendo criar um diretório só
# pra troca de arquivos na /, pois nas homes precisa definir
# muitas permissões, e outros poderão xeretar…

[Compartilhada]

# Endereço pra ela:

path = /Compartilhada

# Comentário que vai aparecer

comment = Pasta compartilhada para Lucas

# Se é possível acessá-la pelo ispróri

browseable = yes

# Se qualquer um pode acessar.

public = yes

# Se pode escrever:

writable = yes

# A mesma coisa, mas tem que colocar.

read only = no

# ——- EOF! ——-

Lembre-se de criar o diretório que você compartilhou, e dar acesso pra ele. No caso aí de cima:

mkdir /Compartilhada
cd /
chown algumuser.users /Compartilhada
chown 1777 -Rf /Compartilhada

E, após isso, rode o comando testparm para saber se existe algum erro na sintaxe. Se não houver, reinicialize o Samba conforme o sistema que usa. service smb restart, /etc/rc.d/rc.samba restart, enfim, essa parte é contigo. E, pelo teu Windows, faça aquele lindo assistente para configuração da rede. Lembre de colocar o mesmo grupo de trabalho. Reinicie o Windows e veja o Meus Locais de Rede, pois o teu Unix/Linux estará lá, lindamente.

Pelo Linux, pode ser acessado através do protocolo smb:///, tanto no Konqueror quanto no Nautilus. smb://nomedomicro ou smb://ip pra ir diretamente, ou smb:/// para listar. Em modo texto? smbtree.😉

Finalizando, numa próxima oportunidade eu crio um outro artigo com a configuração do samba como PDC de uma rede em ambiente Microsoft. Esse dá mais trabalho!

Abraços,
Lucas Timm.

Referências:
História do Samba. No Slackware, vi /usr/doc/samba-3.0.23c/docs/history

  1. Marco
    18 de março de 2007 às 5:06 am

    Bom para começar.
    Conhece o NerAtalk?
    http://netatalk.sourceforge.net/

  2. 20 de março de 2007 às 3:32 am

    Nunca usei, pois nunca tive oportunidade de colocar Macs em rede com Linux!

  3. Gilberto
    21 de março de 2007 às 1:32 pm

    Hehehem
    Legal cara.

  4. Arnoldo Schiphorst
    27 de maio de 2007 às 3:51 pm

    Esse artigo do samba foi 10! Valeu

  5. wouerner
    4 de fevereiro de 2009 às 10:13 am

    Bom cara me ajudou a colocar minha maquina rede da empresa.

    vlews

  6. chelkkzZ
    27 de abril de 2009 às 4:26 pm

    Muito bom cara ! também sou um grade fã de redes Linux . Vlw
    um abrço !

  7. dener
    3 de maio de 2010 às 9:20 am

    maneiro o post
    cara to com uma pequena pedra no meu caminho to começando a ser programador de linux e estou com a seguinte dificuldade
    olha só
    fui incubido de montar um servidor linux com AMP para instalar o MOODLE e JOOMLA
    (migrar o site para open source e ferramentas free) e ter um ensino a distancia free
    mas quando eu tento instalar o SAMBA da error eu perco a rede e ao mesmo tempo eu crio a uma rede com o mesmo nome
    olha so
    eu vi na net que que pra compartilhar eu presciso do samba winbind e kerberos isso ta certo ?
    desde de ja obrigado

  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: