You are on page 1of 88

Samba: Integrao Unix e Windows

Alexandre Folle de Menezes Carlos E. Morimoto David Wood Elvis Pftzenreuter Victor F. F. Zucarino

Traduo Oficial Alfamdia


Alexandre Folle de Menezes

Verso 1.3, setembro/2002.

As marcas registradas utilizadas no decorrer deste livro so usadas unicamente para fins didticos, sendo estas propriedade de suas respectivas companhias. A Alfamdia no assume qualquer responsabilidade por erros ou omisses, ou por danos resultantes do uso das informaes contidas neste livro. Parte dos captulos 1 e 3, mais os captulos 6 e 14, e o Apndice A so adaptaes do texto: Manual de Configurao do SAMBA Copyright 2001 Victor F. F. Zucarino <vffzbr@yahoo.com.br> Fonte: http://geocities.yahoo.com.br/vffzbr/manual.html Parte dos captulos 1 e 3, mais os captulos 4, 5, 7 e 9 so adaptaes do texto: SMB-HOWTO Copyright 1996-1999 David Wood <dwood@plugged.net.au>. Fonte: http://www.ibiblio.org/pub/Linux/docs/HOWTO/otherformats/html_single/SMB-HOWTO.html

O captulo 2 uma adaptao do texto: Samba: Servidor NetBIOS para Unix Copyright 1999 Elvis Pftzenreuter <info@rootshell.com.br> Fonte: http://www.linux.trix.net/samba_intro.htm O captulo 13 uma adaptao do texto: Entendendo e utilizando o Linux Copyright 1999 Carlos E. Morimoto <morimoto@guiadohardware.net> Fonte:
http://www.guiadohardware.net/tutoriais/entendendo_e_utilizando_o_linu x/26.asp

Parte do captulo 1 e os captulos 8, 9, 11 e 12 foram escritos por: Copyright 2002 por Alexandre Folle de Menezes <menezes@alfamidia.com.br> Traduo para portugus - Brasil, 2002: Alfamdia Ltda Rua Flix da Cunha, 818 Porto Alegre - RS - Brasil Fone/Fax: +55 (51) 3346-7300 E-mail: alfamidia@alfamidia.com.br URL: http://www.alfamidia.com.br Esta apostila uma coletnea de textos com licena GNU ou livres

encontrados na Internet, conforme referncias acima. Este material foi totalmente montado com fins didticos, sem objetivo comercial. Foram acrescentados exemplos e exerccios desenvolvidos pela Alfamdia Ltda.

CONTEDO
CONTEDO ................................................................................................................... 5 1 1.1 1.2 1.3 1.4 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 INTRODUO ........................................................................................................ 9 CONCEITOS INICIAIS ............................................................................................. 10 HISTRICO DO SAMBA .......................................................................................... 10 CONHECENDO O SAMBA........................................................................................ 11 INFORMAES ADICIONAIS................................................................................... 12 O PROTOCOLO NETBIOS ................................................................................. 13 O QUE O NETBIOS............................................................................................. 13 NAVEGADOR-MESTRE LOCAL (LOCAL MASTER BROWSER) ................................. 15 NAVEGADOR-MESTRE DO DOMNIO (DOMAIN MASTER BROWSER) ..................... 16 ULTRAPASSANDO AS FRONTEIRAS DA REDE LOCAL ............................................. 16 SERVIDOR WINS................................................................................................... 17 A DANA DA COMUNICAO INTER-REDES .......................................................... 18 AUTENTICAO DE USURIOS .............................................................................. 20 SENHAS CRIPTOGRAFADAS ................................................................................... 21

3 INSTALAO ....................................................................................................... 22 3.1 3.2 PACOTES RPM...................................................................................................... 22 PACOTES TAR ........................................................................................................ 22

4 EXECUTANDO OS DAEMONS .......................................................................... 24 5 5.1 6 CONFIGURAO MNIMA ............................................................................... 27 TESTE DO ARQUIVO DE CONFIGURAO ............................................................. 28 ACESSANDO SERVIDORES ATRAVS DE ESTAES LINUX................ 30

6.1 O SMBCLIENT ........................................................................................................ 30 6.2 O SMBPASSWD .......................................................................................................... 31 6.3 O SMBSTATUS .......................................................................................................... 32 6.4 O TESTPRNS ............................................................................................................ 32 6.5 EXEMPLO DE LOGIN SCRIPT PARA ESTAES WINDOWS ................................... 34 7 COMPARTILHAMENTO DE DISCOS.............................................................. 35

7.1 COMPARTILHAMENTO DE DISCO LINUX COM MQUINAS WINDOWS .................. 35 7.1.1 CONFIGURAR O SAMBA PARA USAR SENHAS CRIPTOGRAFADAS ........................... 36 7.1.2 CONFIGURAR O WINDOWS PARA NO USAR SENHAS CRIPTOGRAFADAS .............. 37 7.2 COMPARTILHAMENTO DE DISCO WINDOWS COM MQUINAS LINUX .................. 38 7.2.1 O PACOTE SMBFS .................................................................................................. 40

DIFERENAS ENTRE SISTEMAS DE ARQUIVOS ....................................... 42

8.1 OCULTANDO E VETANDO ARQUIVOS .................................................................... 42 8.1.1 OPO HIDE DOT FILES ..................................................................................... 42 8.1.2 OPO HIDE FILES ............................................................................................. 42 8.1.3 OPO VETO FILES ............................................................................................. 42 8.1.4 OPO DELETE VETO FILES = YES|NO ............................................................. 43 8.1.5 OPO DONT DESCEND ......................................................................................... 43 8.1.6 OPO UNIX REALNAME = YES|NO ..................................................................... 43 8.2 LINKS ..................................................................................................................... 43 8.3 PERMISSES E ATRIBUTOS ................................................................................... 44 9 9.1 9.2 COMPARTILHAMENTO DE IMPRESSORAS................................................ 45 COMPARTILHAMENTO DE IMPRESSORA LINUX COM MQUINAS WINDOWS....... 45 COMPARTILHAMENTO DE IMPRESSORA WINDOWS COM MQUINAS LINUX....... 48

10 O WINS NO SAMBA ............................................................................................. 59 10.1 10.2 10.3 O DAEMON NMBD ................................................................................................... 59 O SAMBA COMO CLIENTE WINS ....................................................................... 59 O SAMBA COMO SERVIDOR WINS ..................................................................... 60

11 O SAMBA ATUANDO COMO PDC ................................................................... 61 11.1 DOMNIOS DO WINDOWS .................................................................................... 61 11.2 CONFIGURANDO O SERVIDOR SAMBA ................................................................ 61 11.2.1 CLIENTES WINDOWS 9X .................................................................................... 61 11.2.2 CLIENTES WINDOWS NT ................................................................................... 62 11.2.2.1 Criando contas confiveis (trusted accounts) ................................................ 63 11.3 LIMITAES DO SAMBA NA INTEGRAO COM WINDOWS NT ......................... 64 12 ARQUIVOS DE LOG DO SAMBA...................................................................... 65 12.1 12.2 OPO LOG OPO MAX
FILE ................................................................................................. 66 LOG SIZE

......................................................................................... 66

13 CONFIGURANDO O SAMBA REMOTAMENTE ........................................... 67 13.1 13.2 13.3 UTILIZANDO O SWAT ........................................................................................ 67 ACESSANDO COMPARTILHAMENTOS DE MQUINAS WINDOWS......................... 71 CONFIGURANDO MANUALMENTE ....................................................................... 73

14 CONSIDERAES ............................................................................................... 75 APNDICE A. APNDICE B. B.1. LICENA DE PUBLICAO LIVRE........................................ 77 CONFIGURAO GERAL.......................................................... 80

CONHECENDO OS PARMETROS.......................................................................... 82 6

B.1.1. SEO [GLOBAL]............................................................................................... 82 B.1.2. SEO [HOMES]................................................................................................. 85 B.1.3. DEMAIS SEES [SHARES]................................................................................ 86 APNDICE C. VARIVEIS PR-DEFINIDAS.................................................... 88

1 INTRODUO
O Samba um dos softwares mais populares do mundo Linux. Ele composto por ferramentas que usam os protocolos de rede NetBIOS e SMB (Server Message Block), e permite que uma mquina Linux atue como servidor ou estao de trabalho em redes heterogneas. Ainda que este documento seja voltado para Linux, o Samba roda na maioria dos sistemas Unix e compatveis. Antes de comear vamos entender o que o Samba. Em uma rede necessrio compartilhar dados, por isso temos que pensar em obter o mximo em qualidade do Sistema/Aplicao que ser o responsvel por esta tarefa. Com o SAMBA possvel compartilhar diretrios, impressoras, acessar arquivos na rede exatamente como em redes Microsoft. Mas neste caso, seu servidor um Linux rodando uma aplicao especfica. O Windows NT e o 2000 (assim como o NetWare 5 e outros presentes no mercado) so reconhecidos mundialmente por sua segurana e escalabilidade, mas o SAMBA possui muitas vantagens que podem se transformar em solues e economia para sua empresa. Confira: Permite compatibilidade com estaes Windows (de WfW a 2000) e servidores WinNT 4.0 e 2000. Entre servidores e estaes Linux (com Interface Grfica por exemplo) a compatibilidade total. O SAMBA 100% configurvel, com a grande vantagem de centralizar esta configurao em um nico arquivo, o smb.conf. Sem dvida muito interessante ter a possibilidade de restaurar toda a configurao que disponibiliza seu Servidor de Arquivos (inclusive as permisses de acesso) atravs do backup de apenas 1 arquivo, em casos de desastre. Porm isso no quer dizer que no seja necessrio o backup de outros arquivos de configurao... Todo o SAMBA pode ser configurado remotamente atravs de acesso seguro, alm do recebimento por email de informaes do estado do servidor (bastando utilizar um script especfico que busca informaes nos arquivos de log e cria um arquivo que pode ser enviado por email). Em se falando de economia no h o que discutir: o Linux e o SAMBA esto disponveis para download na Internet sem nus algum para qualquer usurio comum ou empresa que se interesse em utiliz-lo, sem custos com licenas ou atualizaes. As mais recentes distribuies j trazem o SAMBA como padro, mas seu download e atualizaes esto disponveis em http://www.samba.org/ O suporte est disponvel 24h por dia, o ano todo: alm do prprio site do SAMBA existem milhares de sites e listas de discusso dedicadas ao assunto, entre outras documentaes e artigos em sites de renome por Administradores e Engenheiros de Redes 9

Linux. Muita coisa j est em nosso idioma facilitando os iniciantes e interessados em leitura. Muitos sites nacionais so especializados em Linux e Segurana para Linux. O Samba vem substituindo vrios servidores Windows, OS/2, Netware e Unix. Se for necessria uma soluo estvel e segura para Servidor de Arquivos da rede, o SAMBA uma grande opo. H tambm a vantagem de ser licensiado pela GPL, com livre distribuio, sem limite de usurios ou custos por licena.

1.1

Conceitos Iniciais

O protocolo SMB usado pelo Microsoft Windows 3.11, Windows NT e Windows 95/98 para compartilhar discos e impressoras. Usando o conjunto de ferramentas do Samba de Andrew Tridgell (Andrew.Tridgell@anu.edu.au), mquinas UNIX (incluindo Linux) podem compartilhar discos e impressoras com mquinas Windows. As ferramentas smbfs de Paal-Kr. Engstad (engstad@intermetrics.com) e Volker Lendecke (lendecke@namu01.gwdg.de) habilitam mquinas Unix a montar compartilhamentos SMB de hospedeiros Windows ou SAMBA.

1.2

Histrico do Samba

Os sistemas operacionais da srie Windows seguem a tradio iniciada ainda nos tempos do DOS de compartilhar seus recursos, como arquivos, impressoras e outros, em rede atravs de um conjunto de protocolos atualmente conhecido pela sigla CIFS (Common Internet File System), mas que originalmente recebia o nome de Server Message Block (SMB) - de fato, o SMB continua vivo, includo nas especificaes do CIFS. O conjunto SMB/CIFS pode ter uma srie de desvantagens tcnicas, mas tem a seu favor uma circunstncia especial: a quantidade de usurios, j que todos os computadores com Windows, desde a verso 3.11, podem ser facilmente convertidos em clientes ou servidores CIFS, e cujo nmero imenso. Entretanto, o SMB no tinha suporte nativo no Unix, o que dava margem a todo tipo de problemas para os administradores de redes mistas, pois tinham que instalar clientes Unix de protocolos "tradicionais" como NFS, LPD, nas mquinas Windows ou moviam os servios para os servidores NT, que, na poca, ainda eram uma novidade, abrindo mo da robustez e das demais vantagens. neste ponto que surge em nosso cenrio o estudante australiano Andrew Tridgell, que na busca por razes para adiar o incio de sua tese, resolveu entender como funcionava o Pathworks, um servidor de arquivos da Digital. A conseqncia direta foi o surgimento de um sistema capaz de exportar sistemas de arquivos de mquinas Unix, de forma que pudessem ser acessados a partir de mquinas DOS rodando o cliente do Pathworks. Embora Tridgell no soubesse, o Pathworks utilizava justamente o mesmo protocolo do 10

Windows, o SMB, e logo outros usurios descobriram que podiam usar o mesmo software para se comunicarem com mquinas Windows de suas redes. Eles avisaram Tridgell, mas por estranho que parea, ele no acreditou! Meses mais tarde, Tridgell instalou uma rede em sua prpria casa, com computadores rodando Linux e Windows, e resolveu experimentar o que ele prprio julgava impossvel. Como podemos imaginar, ele ficou bastante surpreso ao ver que estava errado. Alis, a documentao do Samba diz que at hoje a esposa dele imprime documentos, a partir do Windows, na impressora conec-tada mquina Linux de Andrew. A partir da, o projeto se desenvolveu rapidamente. Surgiu o nome Samba, que inclui as 3 letras do protocolo SMB, e outros integrantes, com destaque para Jeremy Allison, se juntaram equipe de desenvolvimento e novas funcionalidades foram adicionadas. O software se desenvolveu a ponto de realizar todas as tarefas que veremos a seguir, com qualidade e estabilidade superiores a algumas das alternativas. De fato, j em 1998 a SGI chegou a afirmar publicamente que seus servidores Origin rodando Samba apresentam performance superior de um servidor Windows - o que equivale a dizer que o servidor de arquivos Windows mais rpido do mundo no rodava Windows... O Samba no usado apenas nos servidores Linux. De fato, empresas como a SGI, Veritas, HP, Cobalt e Whistle comercializam produtos que incluem suporte a compartilha-mentos baseados no Samba. Mas ele sempre esteve intimamente ligado ao Linux, desde a rede domstica do seu criador, passando pela escolha da licena GPL de sua distribuio e pela existncia de suporte exclusivo para o Linux, e no para outros tipos de Unix, em alguns componentes do sistema, como o smbfs. O que poucos sabem que Andrew Tridgell teve participao muito importante em um momento histrico do sistema: foi ele quem levou Linus Torvalds a um zoolgico em Canberra, dando a ele a oportunidade de ser bicado por um pingim - fato que teve papel vital, anos mais tarde, na escolha desta ave como smbolo do Linux.

1.3

Conhecendo o Samba

O Samba oferece a maior parte das funcionalidades dos servidores Windows, sem a necessidade de adquirir suas dispendiosas licenas e, melhor do que isso, sem expor sua rede s famosas telas azuis da morte, nem necessidade de reinicializaes a cada mudana de configurao. O Samba um produto maduro, flexvel e muito bem documentado. Pode parecer difcil de acreditar a princpio, mas as mquinas Windows de sua rede iro "ver" o seu servidor Linux com Samba como se fosse outra mquina Windows - incluindo cones na janela Ambiente de Rede, a possibilidade de mapear drives remotos, imprimir nas impressoras do servidor, e muito mais. O seu servidor Linux com Samba pode at atuar como o controlador primrio do domnio (PDC), tarefa normalmente exclusiva do Windows NT 4 Server. Encontramos na literatura relatos de domnios com PDCs baseados em Samba, nos quais conviviam simultnea e pacificamente mquinas rodando 11

NT Workstation 4.0, com o service pack 6a; Windows 2000 Professional, com o service pack 1; Win-dows 2000 Server, com o service pack 1; e at o Windows 95. A incluso de cada uma destas mquinas no domnio pode ser feita com as prprias ferramentas de rede do Windows, desde que o Samba esteja configurado para aceitar este recurso. O Samba tambm inclui ferramentas que permitem que o Linux atue como cliente em uma rede com servidores Windows. Assim, voc pode imprimir a partir do Linux naquela impressora a jato de tinta conectada a um micro rodando Win-dows 98, ou montar, "mapear", um diretrio disponibilizado pelas mquinas Windows. Tcnicos experientes no projeto de redes com servidores Windows NT iro querer saber mais detalhes tcnicos e a documentao prdiga nisso. Alguns, porm, podem ser antecipados aqui: importante notar que, ao menos at a verso 2.2, quando atua co-mo PDC, o Samba no suporta a presena de um BDC nem relaes de confiana entre domnios ("trust relationships"), o que impede o recurso de Single Signon para usurios de mltiplos domnios. O Samba tambm inclui um servidor de nomes NetBIOS (WINS), que alm de facilitar as conexes em redes roteadas, d suporte ao recurso de "browsing" - a ao de localizar e exibir todos os computadores e recursos compartilhados de sua rede ou domnio. Voc pode at mesmo configurar o Samba como o Master Browser de sua rede, se desejar.

1.4

Informaes adicionais

Mais documentao sobre o Samba est disponvel no Samba Web site, localizado em http://www.samba.org/. Voc tambm pode tentar o newsgroup comp.protocols.smb. Para mais informaes, favor veja os seguintes documentos: The Samba documentation, disponvel como parte da distribuio Samba. A distribuio est disponvel em: ftp://ftp.samba.org/ The Linux Printing HOWTO. The Print2Win Mini-HOWTO. Protocol Standard For A NetBIOS Service On A TCP/UDP Transport. As RFCs que definem os protocolos: o RFC 1001 Concepts and Methods. o RFC 1002 Detailed Specifications.

12

2 O PROTOCOLO NETBIOS
O protocolo NetBIOS foi concebido para ser simples de configurar e usar em redes pequenas. Porm, essa aparente simplicidade desaparece em qualquer instalao que contm duas ou mais redes Ethernet. o que eu chamo de "curva de aprendizado exponencial", caracterstica que o NetBIOS compartilha com o Windows, Visual Basic e assim por diante. Outros procolos (TCP/IP) e softwares (Linux) obrigam seus usurios a ter um conhecimento relativamente profundo por mais simples que seja a tarefa; porm no reservam "surpresas" para instalaes de complexidade crescente. Portanto, desenham uma curva de aprendizado logartmica, de que tanto gostam os Linuxers. Erro! Argumento de opo desconhecido.No obstante, o NetBios assim como o DHCP, para quem o conhece - tem o seu valor, e, uma vez dominados seus conceitos, pode ser til e muito adequado at mesmo em redes sem mquinas Windows.

2.1

O que o NetBIOS

Erro! Argumento de opo desconhecido.NetBIOS um protocolo de transporte e de sesso, de uso geral, mas primariamente destinado a servios de arquivo e impresso. Nesse ltimo aspecto, semelhante ao protocolo NCP da Novell. Porm o NCP um protocolo de sesso; o transporte feito pelo protocolo subjacente IPX (embora ser muito difcil encontrar uma instalao onde IPX e NCP no estejam "empilhados"). Erro! Argumento de opo desconhecido.Para quem no sabe, protocolo de transporte aquele que leva UM pacote de rede da origem at o destino. Protocolo de sesso encarrega-se de dividir seqncias arbitrariamente longas de dados em pacotes (ento transportados pelo protocolo de transporte) e remont-las no destino, possivelmente ordenando a retransmisso de pacotes perdidos etc. No protocolo TCP/IP, o IP encarregado do transporte e o TCP, da sesso. Erro! Argumento de opo desconhecido.Como o protocolo NetBios capaz de cuidar do transporte, no precisa ser "carregado" por nenhum outro protocolo; pode ser constitudo como pacote de rede e transmitido. isso que o protocolo NetBEUI da Microsoft faz - pega os pacotes NetBIOS in natura e transmite-os rede afora. Porm, o NetBIOS no nativamente capaz de ser roteado; portanto, fica "preso" rede local. Erro! Argumento de opo desconhecido.Uma possvel soluo programar os roteadores para que retransmitam pacotes NetBIOS s outras redes; assim, o pacote NetBIOS/NetBEUI acabar atingindo o seu destino, pois recebido e analisado por absolutamente todos os computadores da organizao. Essa soluo tem o inconveniente de gerar um trfego de rede infernal, e ainda mais infernal de a comunicao inter-redes for feita atravs de links de baixa velocidade.

13

Erro! Argumento de opo desconhecido.Outra soluo encapsular o NetBIOS em um protocolo de transporte que seja rotevel, como o IPX ou o TCP/IP. De fato, a forma mais comum de se usar servios NetBIOS hoje atravs de TCP/IP - e a nica forma suportada pelo Samba. Como o NetBIOS no nativamente rotevel e no aceita o conceito de endereo IP ou IPX, vrias extenses foram criadas para torn-lo mais adequado a uma instalao com diversas redes locais. Veremo-nas todas ao longo deste texto. Erro! Argumento de opo desconhecido.Como o Samba suporta apenas NetBIOS encapsulado em TCP/IP, daqui por diante no falaremos mais sobre outras encapsulaes. Apenas vale lembrar que, ao configurar suas mquinas Windows, procure no misturar encapsulamentos diferentes. i.e. usar NetBIOS encapsulado em IPX, TCP/IP e NetBEUI todos ao mesmo tempo. Isso pode ser fonte de inmeros problemas intermitentes e dores de cabea. Tire o NetBEUI da lista de protocolos suportados e, se precisar usar IPX, certifique-se de que no est habilitado o transporte de NetBIOS sobre IPX. Erro! Argumento de opo desconhecido.Como o NetBIOS se obriga a cuidar do transporte, e ao mesmo tempo no suporta nmeros IP, ele trabalha com tcnicas de broadcasting. Uma vez lanado um pacote na rede local, todas as mquinas recebero e analisaro esse pacote; apenas aquela que for a mquina-destino dever assimilar o pacote. Obviamente existe uma identificao da mquina de destino, que um NOME de at 15 caracteres (doravante chamado de "nome NetBIOS da mquina") e no um endereo nmrico. Isso muito diferente de uma comunicao TCP/IP "normal", onde as prprias placas de rede determinam se o pacote lhes pertence ou no, sem envolver processamento de software. Erro! Argumento de opo desconhecido.O TCP/IP permite fazer broadcasting de uma forma muito simples: supondo uma rede local 10.30.0.0/16, o endereo de broadcasting 10.30.255.255. Um pacote IP emitido com esse endereo ser analisado a nvel de software por todas as mquinas daquela rede local. exatamente esse expediente que o NetBIOS utiliza para forar broadcasting mesmo quando encapsulado em TCP/IP. Erro! Argumento de opo desconhecido.O uso massivo de broadcasting torna o NetBIOS muito simples de usar em redes isoladas, pois no necessrio saber muito sobre endereos IP para que as mquinas enxerguem umas s outras. claro que existe o custo (relativamente pequeno) de processamento, pois todas as mquinas tem de analisar todos os pacotes NetBIOS a nvel de software. Erro! Argumento de opo desconhecido.Como j foi dito, o broadcasting no combina muito bem com instalaes onde h vrias redes locais interligadas por roteadores. Os pacotes de broadcast no conseguem ultrapassar a fronteira do roteador. O contorno dessa limitao est descrito no tpico 4.

14

2.2

Navegador-mestre local (local master browser)

Erro! Argumento de opo desconhecido.Um dos aspectos mais interessantes e desconhecidos do NetBIOS est na "eleio" do navegadormestre local, descrito na documentao do Samba como local master browser, e doravante aqui chamado de "mestre". Periodicamente, os computadores de uma rede local trocam pacotes para determinar quem tem o maior OS level. O OS level (doravante chamado de "nvel") nada mais que um nmero de 0 a 255. Se no me falha a memria, o nvel do Windows 95 001 (decimal!), o do Windows NT 032, e o nvel padro (porm altervel) do Samba 033. Erro! Argumento de opo desconhecido.O computador com maior nvel vencer a eleio. Se houver mais de um computador com o mesmo nvel, haver um desempate por critrios aleatrios. Mesmo que a rede tenha apenas computadores Windows 95, todos com um nmero de nvel muito baixo, um deles acabar sendo o escolhido. Erro! Argumento de opo desconhecido.O computador vencedor ficar responsvel em compilar uma lista das mquinas presentes na rede local. No surpreendentemente, ele usar tcnicas de broadcasting para esse fim. Os demais computadores obtero essa lista junto ao mestre. justamente essa lista que aparece na janela "Ambiente de Rede" do Windows. Erro! Argumento de opo desconhecido. importante entender que, numa rede local, h apenas um computador tomando conta da lista. Pode at parecer, pela demora no surgimento da janela, que cada computador desbrava a rede por conta prpria, mas NO isso que acontece. Erro! Argumento de opo desconhecido.Agora a primeira "pedra" onde algum pode tropear. O Windows NT no gosta de perder a eleio para o Samba se ambos tiverem o mesmo OS level. Portanto, nunca configure o Samba com o mesmo OS level que o Windows NT. Configurar o Samba para que ele nunca vena a eleio para mestre, ou ento use o maior nvel possvel (255). Erro! Argumento de opo desconhecido.Note que todo esse processo ocorre dentro de uma rede local. O fato de um computador ser o mestre de uma rede (ainda) no lhe d o poder de enxergar as demais redes da instalao. Isso assunto para o tpico 4. Erro! Argumento de opo desconhecido.Um detalhe importantssimo: mesmo dentro de uma nica rede local, haver um mestre para cada grupo de trabalho (workgroup). Portanto, se voc quer que todas as mquinas se enxerguem, tome o cuidado de configur-las todas com o mesmo grupo de trabalho. Ou, se deseja isolar grupos de mquinas dentro de uma rede isolada, configure deliberadamente com grupos diferentes. Erro! Argumento de opo desconhecido.O sintoma mais aparente de um computador com grupo de trabalho configurado incorretamente o fato de ele no enxergar nenhum computador na janela Ambiente de Rede; quando muito, enxerga apenas o grupo de trabalho. Exemplo: o grupo de trabalho VITARA e um computador est configurado para o grupo VITARE. Esse ltimo computador est num grupo isolado e tornar-se- o mestre daquele grupo. Obviamente, a lista que ele mesmo compilou s contm um computador, pois

15

as demais mquinas da rede esto em outro grupo de trabalho e elegeram outro mestre. Erro! Argumento de opo desconhecido.Se o computador-mestre for desligado, alguma outra mquina procurar pelo mestre, e no o achar. Nesse caso, uma nova eleio efetuada. Esse um ponto interessante do NetBIOS: redundncia automtica.

2.3

Navegador-mestre do domnio (domain master browser)

Erro! Argumento de opo desconhecido.Forando um pouco os conceitos, pode-se dizer que um domnio um grupo de trabalho onde haja pelo menos um computador "responsvel" por ele - o mestre do domnio. (Temos aqui um conceito recursivo, eu acho.) Erro! Argumento de opo desconhecido.No mundo Windows NT, o mestre do domnio o prprio PDC - primary domain controller. J o Samba, que ainda no suporta completamente todas as funes de um controlador de domnio NT1, pode ser explicitamente configurado para ser apenas o navegador-mestre do domnio. Erro! Argumento de opo desconhecido.O mestre do domnio compilar a lista de TODAS as mquinas do grupo de trabalho, mesmo que estejam em outras redes locais. Alm disso, por ser uma mquina privilegiada, vencer sempre as eleies para mestre da rede local, pois no faria sentido haver um mestre local e um mestre de domnio separados. Erro! Argumento de opo desconhecido.Deve haver APENAS UM mestre de domnio por domnio. Tenha em mente que o NT costuma ser configurado em tempo de instalao para ser o mestre do domnio. Tome cuidado com isso ao instalar outras mquinas NT, e principalmente, no configure o Samba para ser mestre de domnio sem antes verificar as configuraes dos servidores NT. Como no existe eleio para mestre de domnio, a presena de mais de um mestre fonte certa de problemas, principalmente se um dos pretensos mestres de domnio for NT. Erro! Argumento de opo desconhecido.Agora, resta saber como o mestre do domnio consegue descobrir os nomes das mquinas de fora da rede local. As bases esto nos tpicos 4 e 5, e o mecanismo prtico est descrito no tpico 6.

2.4

Ultrapassando as fronteiras da rede local

Erro! Argumento de opo desconhecido.Como o NetBIOS utiliza-se de broadcasting, fica restrito rede local, pelo menos nas instalaes "srias". Uma verso futura do Samba deve trazer suporte completo a controle de domnio e BDCs.
1

16

Para que o NetBIOS possa ultrapassar as fronteiras da rede local, trs mecanismos so necessrios: Erro! Argumento de opo desconhecido.- capacidade de comunicarse diretamente com outros computadores pelo nmero IP, pois s assim os roteadores aceitaro transportar os pacotes; Erro! Argumento de opo desconhecido.- capacidade de traduzir nomes NetBIOS para nmeros IP, para que o usurio no perca a comodidade de usar nomes NetBIOS; Erro! Argumento de opo desconhecido.- capacidade de compilar listas que contenham todos os computadores de todas as redes da instalao. Erro! Argumento de opo desconhecido.A implementao da Microsoft para o protocolo NetBIOS foi estendida de modo a cumprir o primeiro quesito, e uma extenso "externa" ao NetBIOS, denominada WINS, cumpre os demais quesitos. Erro! Argumento de opo desconhecido.Assim, modernamente o NetBIOS no depende mais exclusivamente do broadcasting para fazer o transporte. Se houver um mecanismo qualquer que identifique o nmero IP da mquina de destino, o pacote NetBIOS encapsulado em TCP/IP ser mandado diretamente ao IP do computador-destino, mesmo que esse IP esteja fora da rede local, pois os roteadores sero capazes de transport-lo. possvel inclusive trafegar NetBIOS pela Internet pblica ! Erro! Argumento de opo desconhecido.O mecanismo mais primitivo de traduo de nomes NetBIOS para endereos IP o arquivo c:\windows\lmhosts ou /etc/lmhosts. uma lista pura e simples dos nomes NetBIOS com os endereos IP ao lado. Logo descobre-se as desvantagens desse mecanismo: cada computador tem de ter a sua lista, as atualizaes tambm precisam ser feitas em todas as mquinas, e os computadores desse arquivo no aparecem na janela Ambiente de Rede. O ideal seria que a traduo funcionasse de modo anlogo ao DNS.

2.5

Servidor WINS

Erro! Argumento de opo desconhecido.Entra o servio WINS, que opera de modo anlogo ao DNS. Note que eu disse anlogo, e no semelhante, nem paralelo, nem igual. O WINS contactado diretamente pelo nmero IP - nada de broadcasting para localizar o servidor WINS, at porque ele no faz parte do NetBIOS em si. Erro! Argumento de opo desconhecido.O WINS no tem um cadastro esttico de computadores. Ele recebe informaes de todos os computadores da instalao e, dinamicamente, vai formando uma lista de todos os computadores da rede: nomes NetBIOS, grupos de trabalho e os respectivos endereos IP. O servidor WINS mantm cadastros de todas as mquinas da instalao, independentemente do grupo de trabalho. Por isso mesmo, deve haver apenas um servidor WINS na instalao inteira, mesmo que haja vrios grupos de trabalho e/ou mestres de domnio.

17

Erro! Argumento de opo desconhecido.NO confunda o servidor WINS com o mestre do domnio. Embora comum rodar o WINS na prpria mquina que foi designada como mestre do domnio, perfeitamente possvel que os dois residam em computadores separados! Erro! Argumento de opo desconhecido.Tambm lembre-se que no existe nenhuma integrao automtica entre DNS e WINS, mesmo que ambos rodem no mesmo servidor. O fato de cadastrar o nome DNS de um computador no significa que o servidor WINS v passar a conhecer o endereo IP do mesmo. Erro! Argumento de opo desconhecido.Existem alguns mecanismos de fallback onde o nome NetBIOS consultado junto ao servidor DNS se o servidor WINS no responder consulta, mas a prpria documentao do Samba desaconselha seu uso. Em grandes instalaes com muitas estaes de trabalho, muito comum (e aconselhvel) o uso de DHCP, o que torna o DNS completamente intil para acesso inter-estaes.

2.6

A dana da comunicao inter-redes

Erro! Argumento de opo desconhecido.O documento BROWSINGConfig.txt contm uma excelente descrio de como o mestre de domnio consegue compilar a lista de todos os computadores de uma instalao. Considere a descrio a seguir uma cpia plida e "mastigada". Erro! Argumento de opo desconhecido.Suponha que haja trs redes locais interligadas por roteadores: A, B e C. Suponha tambm que em cada rede haja cinco computadores, e que todos, independentemente do sistema operacional, ofeream servios NetBIOS. Suponha tambm que: Erro! Argumento de opo desconhecido.- O nome do grupo de trabalho/domnio seja ACME; Erro! Argumento de opo desconhecido.- O computador A2 seja o mestre de domnio; Erro! Argumento de opo desconhecido.- O computador A3 seja o servidor WINS e seu IP 10.30.14.56; Erro! Argumento de opo desconhecido.- Todos os computadores estejam configurados corretamente e "saibam" que o endereo IP do servidor WINS 10.30.14.56; Erro! Argumento de opo desconhecido.- Os computadores A1, B1 e C1 estejam rodando o Samba e, exceto por A1, estejam programados para vencer as eleies para mestre local. Erro! Argumento de opo desconhecido.To logo os computadores sejam ligados, haver eleies para mestre em cada uma das redes locais. Nas redes B e C, os computadores B1 e C1 vencero. Na rede A, o computador A2 vencer a eleio pois o mestre do domnio e isso lhe d preponderncia sobre todas as outras mquinas da rede.

18

Erro! Argumento de opo desconhecido.O mestre do domnio (A2) registrar o domnio junto ao servidor WINS (A3). Da mesma forma, todas as outras mquinas registraro seus nomes NetBIOS, grupos de trabalho e nmeros IP junto ao servidor WINS. Erro! Argumento de opo desconhecido.Os computadores comearo a anunciar a si mesmos por pacotes de broadcast. Atentos, os mestres locais compilaro uma lista das mquinas de cada rede. Nesse instante, os mestres de cada rede local contero as seguintes listas de computadores: Erro! Argumento de opo desconhecido.A2: -> A1, A2, A3, A4, A5 Erro! Argumento de opo desconhecido.B1: -> B1, B2, B3, B4, B5 Erro! Argumento de opo desconhecido.C1: -> C1, C2, C3, C4, C5 Erro! Argumento de opo desconhecido.At agora, nenhuma rede tem conhecimento da existncia das demais redes. Erro! Argumento de opo desconhecido.Cada um dos computadores de todas as redes vai contactar o servidor WINS (A3) e registrarse junto a ele. Nesse ponto, o servidor WINS conhece os nomes NetBios, grupos de trabalho e endereos IP de todas as mquinas. Como o WINS funciona independente do mestre de domnio A2, este ltimo continua com sua lista incompleta. Erro! Argumento de opo desconhecido.Cada mestre local (B1 e C1) contacta o servidor WINS e descobre o endereo IP do mestre de domnio (A2.). A seguir, o mestre local contacta o mestre do domnio e transmite a ele a lista de todas as mquinas do grupo de trabalho. Em troca, o mestre de domnio transmite ao mestre local a lista geral dos computadores do domnio. Supondo que os mestres locais B1 e C1 contactem o mestre de domnio A2 em ordem, as listas em cada servidor ficaro assim: Erro! Argumento de opo desconhecido.A2: -> A1, A2, A3, A4, A5, B1, B2, B3, B4, B5, C1, C2, C3, C4, C5 Erro! Argumento de opo desconhecido.B1: -> B1, B2, B3, B4, B5, A1, A2, A3, A4, A5 Erro! Argumento de opo desconhecido.C1: -> C1, C2, C3, C4, C5, A1, A2, A3, A4, A5, B1, B2, B3, B4, B5 Erro! Argumento de opo desconhecido.O servidor B1 contactou A2 antes de C1. Naquele instante, A2 ainda no sabia que a rede C existia. Por isso, a lista do servidor B1 ficou prejudicada. J o servidor C1 contactou o mestre de domnio A2 quando este ltimo j tinha recebido a lista da rede B. (Est claro que a lista da rede "A" tinha sido compilada pelo prprio mestre do domnio A2.) Erro! Argumento de opo desconhecido.Dentro de 15 minutos, os mestres locais contactaro novamente o mestre de domnio para retransmitir e atualizar as listas. Nesse momento, o mestre de domnio A2 j conhece a rede inteira, e o mestre local B1 poder completar sua lista: Erro! Argumento de opo desconhecido.A2: -> A1, A2, A3, A4, A5, B1, B2, B3, B4, B5, C1, C2, C3, C4, C5 19

Erro! Argumento de opo desconhecido.B1: -> B1, B2, B3, B4, B5, A1, A2, A3, A4, A5, C1, C2, C3, C4, C5 Erro! Argumento de opo desconhecido.C1: -> C1, C2, C3, C4, C5, A1, A2, A3, A4, A5, B1, B2, B3, B4, B5 Erro! Argumento de opo desconhecido.Agora, todos os computadores da rede aparecero na janela "Ambiente de Rede" de qualquer das estaes. Erro! Argumento de opo desconhecido.Lembre-se sempre disto: a lista de mquinas NO vai aparecer completa imediatamente. Pode levar at 30 minutos at que todos os mestres locais tenham a lista completa da rede. Da mesma forma, se um dos computadores for desligado ou uma rede for desconectada, haver um lapso de tempo durante o qual a mquina continuar aparecendo nas listas (36 minutos), at que o mestre local da rede desligada finalmente retire-a da lista e informe o fato ao mestre do domnio. Erro! Argumento de opo desconhecido.Supondo agora que o computador C4 quer comunicar-se com o computador A5. Pela lista, ele sabe que o computador A5 existe, mas no sabe qual seu endereo IP. Ento, C4 consulta o servidor WINS, obtm o endereo IP e contacta A5 diretamente, sem usar broadcast. Note bem aqui como o trabalho de compilao de listas independente do servidor WINS.

2.7

Autenticao de usurios

Erro! Argumento de opo desconhecido.O Samba suporta quatro formas de autenticao de usurios, reguladas pela linha security = ... do arquivo /etc/smb.conf. Assuma, at segunda ordem, que estamos falando de senhas no criptografadas. Erro! Argumento de opo desconhecido.SHARE: Sem segurana. Todo e qualquer usurio ser aceito. As operaes de arquivo e impresso sero executadas com as permisses do usurio UNIX associado ao hspede (guest account = ...). Se voc escolher essa modalidade, verifique se o usurio UNIX ter permisses suficientes para acessar arquivos e, se for o caso, imprimir. Erro! Argumento de opo desconhecido.USER: Segurana por usurio, local. A senha do usurio reduzida a letras minsculas e confrontada com a senha UNIX. Essa modalidade de segurana obriga que os usurios sejam cadastrados no Linux, e suas senhas sejam atribudas corretamente. As operaes sobre arquivos e de impresso sero feitas com a permisso do respectivo usurio UNIX. Todavia, pode-se abrir aos hspedes o acesso a determinados volumes ou impressoras - para esses objetos, a segurana operar no estilo SHARE. Erro! Argumento de opo desconhecido.SERVER: Segurana por usurio, remota. O Samba pega o nome de usurio e a senha, e autentica junto a outro servidor, que poder ser outro Linux rodando Samba, ou um Windows NT. Apesar da autenticao ser remota, ainda necessrio criar os

20

usurios UNIX localmente em determinados casos. (Consulte a linha map to guest = Bad User do arquivo de configurao comentado.) DOMAIN: Segurana por usurio, remota. Praticamente idntica modalidade SERVER, porm convive com instalaes mais complexas onde existem computadores NT operando como PDCs (primary domain controllers) e BDCs (backup domain controllers). Nesse modo, mais de um servidor de autenticao pode ser especificado na linha password server do arquivo de configurao. necessrio criar uma conta no servidor de domnio para que o Samba identifique a si mesmo junto ao NT.

2.8

Senhas criptografadas

Erro! Argumento de opo desconhecido.O Windows 98, bem como verses mais recentes do Windows NT Workstation, transmitem senhas criptografadas no processo de autenticao. Isso torna a configurao do Samba bem mais complicada, especialmente na modalidade USER, pois ele tem de armazenar as senhas num arquivo separado (/etc/smbpasswd), mantida por um utilitrio no padro do Unix (smbpasswd). O esquema de encriptao do NetBIOS completamente diferente do Unix, portanto no h possibilidade de usar as senhas armazenadas em /etc/passwd. Erro! Argumento de opo desconhecido.A verdade que as senhas criptografadas no adicionam quase nenhuma segurana ao NetBIOS, por razes diversas. (Portanto, NO pense que trafegar NetBIOS na Internet pblica seguro, mesmo usando senhas criptografadas !!!) Sendo assim, por amor comodidade, o melhor a fazer configurar o Windows 98/NT para usar senhas no criptografadas. Erro! Argumento de opo desconhecido.Para fazer isso, voc deve adicionar um item no Registro do Windows. Consulte o diretrio /usr/samba*/docs. L voc encontrar uns arquivos *.reg que, em conjuno ao REGEDIT do Windows, criam esses itens automaticamente nos diversos "sabores" de Windows.

21

3 INSTALAO
Para usar o Samba, suas mquinas devem estar num nico segmento de rede ethernet usando o protocolo TCP/IP. O Samba no funcionar usando outros protocolos de rede. Isto geralmente fcil j que o Linux e o Windows 95/98/NT vem com suporte TCP/IP de fbrica. No entanto, se voc estiver usando mquinas Windows 3.x, elas devem ter um pilha TCP/IP e as DLLs do Win32s. Ambos esto disponveis no site Web da Microsoft (http://www.microsoft.com). Note tambm que servios SMB no podem ser utilizados atravs de roteadores. Se voc quer alguma coisa desse tipo, voc ter que configurar um tnel IP, o que est alm do escopo deste documento. Se a distribuio utilizada j traz o SAMBA (como o Conectiva, RedHat, Mandrake, Debian, TechLinux, Suse, praticamente todas hoje em dia!), a instalao no necessria. Se deseja atualiz-lo ou iniciar a instalao, siga os passos a seguir. Para pegar a ltima verso do Samba, v nesta URL e escolha o site espelho mais prximo de voc: ftp://ftp.samba.org/. Para instalar o SAMBA necessrio antes saber se o pacote obtido est no formato RPM ou .tar (.tgz ou .tar.gz).

3.1

Pacotes RPM
Se o pacote for um RPM, execute o comando abaixo:

#rpm -ivh samba-2.2.x-i386.rpm

Atualmente grande parte das distribuies instalam o conjunto de pacotes samba-common, samba-client e samba-doc juntamente com o pacote samba, criando uma dependncia entre estes pacotes. Substitua o "x" pelo nmero relativo a verso do pacote ou o nome correto do pacote dependendo da sua distribuio. Para atualizar o SAMBA atual, substitua a sintaxe -ivh por -Uvh.

3.2

Pacotes tar
Se o pacote veio no formato tar.gz, execute o comando abaixo:

#tar -zxvf samba-2.2.x-i386.tar.gz

Um diretrio ser criado com o nome samba-2.0.x. Entre neste diretrio e em seguida no subdiretrio source. Para iniciar a instalao digite:

22

#./configure

Em seguida digite:
#make

Os binrios do SAMBA sero criados. Quando terminar digite:


#make install

Agora os binrios e pginas do man sero instalados. Aguarde o processo e quando terminar confira o diretrio /usr/doc/samba-2.2.x/docs para informaes sobre o SAMBA.

23

4 EXECUTANDO OS DAEMONS
Os seguintes daemons so exigidos pelo pacote Samba. Eles so instalados tipicamente em /usr/sbin e podem ser executados tanto no boot atravs de scripts de partida do sistema quanto pelo inetd. smbd nmbd daemon SMB servio de nomes NetBIOS aos clientes

Note que o servio de nomes provido pelo nmbd diferente daquele provido pelo servio de nomes de domnio (DNS). O servio de nomes do NetBIOS um servio de nomes "estilo Windows" usado para SMB. Em outras palavras, ter servio de nomes de domnio DNS no diz nada sobre a habilidade do Samba de resolver nomes de hosts. Voc pode rodar os daemons do Samba do inetd ou como processos independentes (stand-alone). O Samba ir responder ligeiramente mais rpido como um daemon stand-alone do que rodando pelo inetd. Em ambos os casos, voc deve verificar se existem linhas no arquivo /etc/services como estas:
netbios-ns netbios-ns netbios-dgm netbios-dgm netbios-ssn 137/tcp 137/udp 138/tcp 138/udp 139/tcp nbns nbns nbdgm nbdgm nbssn

Certifique-se de que todas esto sem as marcas de comentrios. Dependendo da sua distribuio, voc pode at mesmo ter que adicion-las. O Samba no ser capaz de fazer a ligao (bind) s portas apropriadas enquanto o arquivo /etc/service no contenha estas entradas. Para rodar os daemons do inetd, coloque as seguintes linhas no arquivo de configurao do inetd, /etc/inetd.conf:
# SAMBA NetBIOS services (for PC file and print sharing) netbios-ssn stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait root /usr/sbin/nmbd nmbd

Ento, reinicie o daemon do inetd com o segunite comando:


kill -HUP `cat /var/run/inetd.pid`

Para executar os daemons com os scripts de inicializao do sistema, coloque o seguinte script num arquivo chamado /etc/rc.d/init.d/smb 24

(para uma distribuio RedHat) e faa um link simblico para os arquivos especificados nos comentrios abaixo:
#!/bin/sh # # /etc/rc.d/init.d/smb - starts and stops SMB services. # # Os arquivos abaixo devem ser links simblicos para este arquivo: # symlinks: /etc/rc.d/rc1.d/K35smb (Mata os servios SMB no shutdown) # /etc/rc.d/rc3.d/S91smb (Inicia os servios SMB no modo multiusurio) # /etc/rc.d/rc6.d/K35smb (Mata os servios SMB no reboot) # # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 # See how we were called. case "$1" in start) echo -n "Starting SMB services: " daemon smbd -D daemon nmbd -D echo touch /var/lock/subsys/smb ;; stop) echo -n "Shutting down SMB services: " killproc smbd killproc nmbd rm -f /var/lock/subsys/smb echo "" ;; *) echo "Usage: smb {start|stop}" exit 1

25

esac

Se voc obtiver um erro durante a inicializao, que diz alguma coisa sobre o daemon no conseguir fazer ligao (bind) com a porta 139, ento voc provavelmente possui outro processo Samba rodando e que ainda no foi derrubado. Verifique a lista de processos (com 'ps auxww | grep mbd') para determinar se h outro servio Samba rodando.

26

5 CONFIGURAO MNIMA
A configurao do Samba no Linux (ou numa outra mquina UNIX) controlada por um nico arquivo, /etc/smb.conf. Este arquivo determina que recursos do sistema voc quer compartilhar com o mundo exterior e que restries voc deseja que sejam aplicadas a eles. J que as sees seguintes iro tratar do compartilhamento de discos e impressoras Linux com mquinas Windows, o arquivo smb.conf mostrado nesta seo o mais simples possvel, somente para fins de introduo. No se preocupe ainda com os detalhes. introduziro os conceitos principais. As sees seguintes

Cada seo do arquivo comea com um cabealho de seo como [global], [homes], [printers], etc. A seo [global] define algumas variveis que o Samba utilizar para definir o compartilhamento de todos os recursos. A seo [homes] permite a usurios remotos acessar seus prprios (e somente os seus) diretrios home na mquina local. Isto , usurios tentando se conectar a este compartilhamento de mquinas Windows, sero conectados ao seus diretrios home pessoais. Note que para fazer isso, eles devem ter uma conta na mquina Linux. O arquivo smb.conf de exemplo abaixo, permite que usurios remotos acessessem seus diretrios home na mquina local e que escreva em um diretrio temporrio. Para que um usurio Windows veja estes compartilhamentos, a mquina Linux deve estar na rede local. Ento o usurio simplesmente conecta um drive de rede no Gerenciador de Arquivos ou no Windows Explorer. Note que nas sees seguintes, entradas adicionais a este arquivo sero dadas para permitir o compartilhamento de mais recursos.
; ; ; ; /etc/smb.conf Reiniciar o servidor sempre que de alterar este arquivo, ex: /etc/rc.d/init.d/smb stop /etc/rc.d/init.d/smb start

[global] ; Se voc deseja uma conta guest, descomente a linha abaixo: ; guest account = nobody security = share workgroup = WORKGROUP log file = /var/log/samba-log.%m lock directory = /var/lock/samba share modes = yes [homes]

27

comment = Diretorios Home browseable = no read only = no create mode = 0750 [tmp] comment = Espaco de armazenamento temporario path = /tmp read only = no public = yes

Tendo escrito um novo smb.conf, muito til test-lo para verificar se h erros. Voc pode testar um arquivo smb.conf, usando o utilitrio 'testparm' (para mais detalhes, man testparm); se testparm no reportar nenhum problema, o smbd poder carregar o arquivo de configurao corretamente. Aqui temos um bom truque: se seu servidor Samba tem mais de uma interface ethernet, o smbd pode se ligar (bind) a interface errada. Se for o caso, voc pode determinar a qual porta ele devera se ligar pela adio de uma linha parecidada como esta na sao [global] do /etc/smb.conf:
interfaces = 192.168.1.1/24

Onde voc dever trocar o endereo IP acima pelo que voc atribuiu a interface ethernet correta. O "24" correto para um rede classe C, mas deve ser calculado se voc tiver feito sub-redes. O nmero se refere a mscara de rede. Nmeros para outras classes de redes so fornecidos no IP-Masquerade mini-HOWTO.

5.1

Teste do Arquivo de Configurao

Agora que o smb.conf est configurado faa um teste para saber se est tudo certo, com o comando testparm:
# testparm > teste_config_samba

Ser criado o arquivo teste_config_samba. Confira este arquivo e caso exista alguma mensagem de erro (ERROR...) volte a corrija o problema. Acertadas as configuraes, deve-se ativar o SAMBA:
# /etc/rc.d/init.d/smb start

28

Se quiser conferir se o SAMBA est realmente no ar, execute o comando acima mas substitua o "start" por "status". Para que o SAMBA seja iniciado sempre aps a inicializao do servidor, execute o ntsysv e marque o SMB. Se preferir, voc tambm pode escrever a linha de "start" do smb no arquivo /etc/rc.d/rc.local, da seguinte forma: 1) Edite o arquivo rc.local (#vi /etc/rc.d/rc.local). 2) Tecle "i" para editar e v at o final do arquivo (Page Down). 3) Escreva a seguinte linha: /etc/rc.d/init.d/./smb start 4) Tecle "Esc" e em seguida ":" e depois "wq" para sair. A partir de agora, sempre que o computador for reiniciado o SAMBA ser ativado automaticamente. Em uma estao Linux, necessrio dar um "start" exatamente como no servidor, onde o smbclient deve ser utilizado para acessar os compartilhamentos disponveis no servidor. Ainda na estao Linux, necessrio que cada uma contenha um smb.conf se diretrios locais precisarem ser compartilhados. Estaes Windows devem estar com o TCP/IP configurado corretamente (IP, Mscara de SubRede, Wins se existir, etc).

29

6 ACESSANDO SERVIDORES ATRAVS DE ESTAES LINUX

6.1

O smbclient

Da mesma forma que o SAMBA permite que o Linux atue como servidor para estaes Linux e redes Microsoft, ele tambm permite atuar como estao de trabalho para acessar servidores de ambos sistemas, sem que nenhuma configurao seja necessria no servidor. Com o smbclient possvel acessar dados em um servidor Windows (lembra o comando net, mas a sintaxe utilizada similar aos de FTP). Ele pode ser usado para receber e enviar arquivos, listar diretrios, navegar pelos diretrios, renomear e apagar arquivos, entre outros. Diretrios compartilhados por um servidor SAMBA so acessados da mesma forma. Para verificar quais compartilhamentos esto disponveis em um determinado Host, execute:
$smbclient -L host_desejado

A resposta ser uma lista de servios, ou seja, nomes de dispositivos ou impressoras que podem ser compartilhados com os usurios na rede. A menos que o servidor SMB no tenha itens de segurana configurados, ser solicitada uma senha antes de mostrar as informaes. Exemplo:
$smbclient -L servidor1

A resposta ser semelhante a:


Server time is Fri Dec 22 15:58:02 2000 Timezone is UTC+10.0 Password: Domain=[EMPRESA] OS=[Windows NT 4.0] Server=[NT LAN Manager 4.0] Server=[servidor1] User=[] Workgroup=[EMPRESA] Domain=[] Sharename Type Comment ADMIN$ Disk Remote Administration Public Disk Public C$ Disk Default Share Print$ Disk Printer Control

30

Para acessar uma pasta compartilhada, basta especificar o caminho na rede, conforme abaixo:
$smbclient //maquina/pasta1 senha O smbtar

Tambm possvel fazer backup (cpias de segurana) para o formato .tar de arquivos que esto em compartilhamentos na rede. Esta operao muito til para garantir backup de arquivos em estaes com pastas compartilhadas mas que no pertencem ao Domnio da rede (por exemplo) ou em estaes isoladas da rede. O comando utilizado o smbtar:
$smbtar -s HOST -p SENHA -x COMPARTILHAMENTO -d PASTA -t FITA (.tar)

Como exemplo vamos criar um arquivo chamado vacina.tar que ser o backup de //servidor1/vacinas/vacina.exe sem senha para acesso:
$smbtar -s servidor1 -x vacinas -d vacina.exe -t vacina.tar

Para conferir se o arquivo foi criado corretamente, digite:


$tar -tvf vacina.tar

Se o empacotamento teve sucesso, voc ver o nome original do arquivo e seu tamanho. Para que o backup seja guardado em fita deve-se mudar a sintaxe do comando, substituindo o nome do arquivo pela unidade de fita instalada (geralmente /dev/st0).

6.2

O smbpasswd

O SAMBA permite tambm que as estaes troquem suas senhas de logon, utilizando o smbpasswd. Ele age de forma similar ao comando passwd, mas as senhas so armazenadas no arquivo smbpasswd. possvel ainda alterar a senha dos usurios em um servidor Primrio de um Domnio NT (PDC). Utilizado pelo superusurio, ele permite que contas sejam adicionados ou removidos e atributos sejam alterados. Mantenha o "localhost" especificado no parmetro "allow hosts" para seu perfeito funcionamento. O smbpasswd um arquivo em formato ASCII e contm o nome do usurio, identificao junto ao Linux, a senha encriptada, o indicador de como est a conta e a data de ltima alterao da senha do usurio.

31

Vale destacar que o smbpasswd somente til quando o SAMBA est configurado para utilizar senhas criptografadas (veja detalhes em Consideraes).

6.3

O smbstatus

Para saber a situao atual das conexes SAMBA, utilizamos o smbstatus. $smbstatus p Lista os processos smbd e finaliza em seguida. til quando utilizado em programas. $smbstatus S Lista todos os compartilhamentos definidos. $smbstatus s Permite utilizar outro arquivo de conffigurao (smb.conf2 por exemplo), que deve ser especificado aps a opo. $smbstatus u Lista as informaes rellevantes sobre o usurio, que deve ser especificado aps a opo.

6.4

O testprns

O testprns verifica o nome da impressora junto ao smbd, a fim de determinar se h um nome vlido (entrada encontrada em printcap para a impressora) sendo informado para uso pelo servio de impresso. Pode ser ativado da seguinte forma:
#testprns ftp://ftp.samba.org/pub/samba/pwdump/pwdump.exe

Efetue logon como usurio Administrator no servidor NT (que disponibiliza a autenticao). Em seguida, abra um Command Prompt e v at o diretrio que voc colocou o pwdump. Rode o comando pwdump da seguinte maneira:
#pwdump smbpasswd

Ser gerado um arquivo smbpasswd com as informaes de autenticao (logon e senha) do Windows NT no formato criptografado utilizado pelo SAMBA. Agora copie o arquivo smbpasswd gerado para o servidor Linux (atravs de diskete ou diretrio compartilhado, por exemplo). No Linux, jogue o arquivo smbpasswd criado para o diretrio /etc e defina as permisses para 600:
#chmod 600 /etc/smbpasswd

Para que funcione corretamente, importante destacar que o ID dos usurios seja o mesmo tanto no smbpasswd quanto no passwd do Linux. Abra 32

o smbpasswd e exporte os dados de autenticao (nome do usurio, ID, etc) mas no possvel fazer o mesmo com as senhas. Se voc quiser exportar as senhas vai ter que quebr-las com algum password cracker :) Na verdade no necessrio ter a senha no passwd, apenas o login, ID e home. Para rodar o SAMBA e ele autenticar os usurios, no preciso ter a senha no passwd do Unix, apenas o login, ID e home se voc quiser exportlos. Vo ser utilizadas as senhas do smbpasswd. Luciano Linhares Martins lmartins@matrix.com.br criou um script baseado no mksmbpasswd para converter as senhas em formato smbpasswd para o passwd. Funciona bem e pode ser modificado conforme a necessidade de cada um. um script bem simples e pode ser alterado de acordo com a sua necessidade. Crie o arquivo mkpasswd.sh com o contedo abaixo:
#!/bin/sh awk 'BEGIN {FS=":" printf("#\n# Unix password file.\n#\n") } { printf( "%s:*:%s:103:%s:/home/%s:/bin/bash\n", $1, $2, $5, $1) } '

D um chmod 700 no arquivo e execute da seguinte maneira:


#cat /etc/smbpasswd | ./mkpasswd.sh passwd-smb

Se o seu arquivo smbpasswd e o script mkpasswd.sh estiverem em outro local, configure de acordo com a sua necessidade. Aps isso, gerado um arquivo chamado passwd-smb com os logins, id's, home, etc no formato do passwd do seu sistema. Normalmente, os ID's do smbpasswd vo comear a partir de 1000 e voc no vai ter problemas para junta-lo com o seu passwd do Unix sem nenhum conflito. Eu recomendo que voc confira antes de juntar as bases. Procure por logins com o mesmo ID, mesmo username e username com espaos. Se voc utiliza shadow importante desabilit-lo antes de juntar os arquivos. Desabilite o shadow atravs do comando pwunconv. Em seguida para passar o arquivo passwd-smb para o passwd do sistema entre no diretrio onde esta o arquivo passwd-smb que voc gerou e digite:
#cat passwd-smb /etc/passwd

Se voc utiliza o shadow, pode reativ-lo agora atravs do comando pwconv. Reinicie o Linux para que as alteraes entrem em vigor.

33

6.5

Exemplo de Login Script para estaes Windows

O login script (ou logon script) uma ferramenta muito til para disponibilizar recursos na rede. O script abaixo um exemplo que pode usado em redes com estaes Windows. Lembre-se de que deve ser criado com o notepad (por exemplo) em uma estao Windows para que funcione corretamente! (Confira a seo [global] para saber mais sobre o logon script). Note que a sintaxe do comando net diferente para sistemas 95/98/Me e NT/2000.
rem Logon script padro para a rede. net time \\servidor1 /set /yes @echo off if %OS%.==Windows_NT. goto WinNT :Win95 net use X: \\servidor1\pasta_01 net use Z: /HOME goto end :WinNT net use X: \\servidor1\pasta_01 /persistent:no net use Z: /HOME /persistent:no :end

34

7 COMPARTILHAMENTO DE DISCOS

7.1

Compartilhamento Windows

de

disco

Linux

com

mquinas

Como mostrado no exemplo de smb.conf acima, compartilhar drives Linux com usurios Windows fcil. Contudo, como tudo no Samba, voc pode controlar coisas em um alto grau. Aqui so alguns exemplos: Para compartilhar um diretrio com o pblico, crie uma cpia da seo [tmp] anterior e adicione algo como neste smb.conf:
[public] comment = Area Publica path = /home/public public = yes writable = yes printable = no

Para fazer com que o diretrio acima possa ser lido pelo pblico (todos), mas somente gravvel pelos membros do grupo staff, modifique as entradas como abaixo:
[public] comment = Public Stuff path = /home/public public = yes writable = yes printable = no write list = @staff

Normalmente fcil assim; voc agora deve estar habilitado a iniciar o Samba e visualizar os compartilhamentos de um PC com Windows. Contudo, a Microsoft recentemente tornou a vida um pouco mais difcil para quem usa Samba. O Windows 98, Windows NT (service pack 3 ou posterior) e as ltimas verses do Windows 95 agora usam senhas criptografadas como padro. O Samba usa senhas no criptografadas por padro. Voc no pode visualizar servidores quando o cliente ou o servidor esto usando senhas criptografadas, porque a conexo no pode ser feita anonimamente. Voc pode dizer se tem uma diferena de tipo de senhas entre o cliente e o servidor, se quando voc tentar se conectar a um compartilhamento voc vir uma caixa de dilogo que mostra algo como "Voc no tem permisso para acessar esta conta nesta mquina.

35

Por padro o SAMBA no utiliza autenticao encriptada na rede, mas sim "clear text". Verses mais atuais do Windows95/98/Me no utilizam o modo "clear text". Para resolver este problema temos duas solues:

7.1.1 Configurar o Samba para usar senhas criptografadas


Na seo [global] do /etc/smb.conf, adicione as seguintes linhas:
encrypt passwords = yes smb passwd file = /etc/smbpasswd

Certificar-se de que todas as estaes na rede utilizam autenticao encriptada no logon. Para fazer o Windows trabalhar com senhas criptografadas, use o regedit e crie a seguinte chave: Windows 95/98 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Service s\VxD\VNETSUP Adicione um novo valor DWORD: Value Name: EnablePlainTextPassword e Data: 0x00 Windows NT 4.0 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Service s\Rdr\Parameters Adicione um novo valor DWORD: Value Name: EnablePlainTextPassword e Data: 0x00 Windows 2000 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service s\LanmanWorkStation\Parameters Adicione um novo valor DWORD: Value Name: EnablePlainTextPassword e Data: 0x00

Uma vez que as alteraes no registro tenham sido feitas, reinicie a mquina Windows. Para maiores detalhes, leia os arquivos ENCRYPTION.txt, Win95.txt e WinNT.txt na documentao do Samba. Se seus clientes e seu servidor esto usando senhas criptografadas, voc no ser capaz de visualizar compartilhamentos no servidor at que uma conexo inicial tenha sido feita com a autenticao apropriada. Para conseguir a conexo inicial, entre o nome do compartilhamento manualmente no Gerenciador de Arquivos ou na caixa de dilogo do Explorer, na forma '\\'. Registre-se no servidor com um nome de usurio e senha que lhe so vlidos. Se seus clientes e seu servidor esto usando senhas criptografadas, voc no ser capaz de visualizar compartilhamentos no servidor at que uma conexo inicial tenha sido feita com a autenticao apropriada. Para conseguir a conexo inicial, entre o nome do compartilhamento manualmente no Gerenciador de Arquivos ou na caixa de dilogo do Explorer, na forma '\\<hostname>\<nomedocompartilhamento>'. Registre-se no servidor com um nome de usurio e senha que lhe so vlidos.

36

Se voc suspeita que seu servio de nomes NetBIOS no est corretamente configurado (talvs porque voc tenha obtido erros 'host not found' ao tentar se conectar), tente usar somente o endereo IP do servidor: '\\<endereoIPdoservidor>\<nomedocompatilhamento>'. Para que o nome dos arquivos apaream corretamente, voc pode precisar configurar algumas opes na seo de compartilhamento apropriada. Estas funcionam para clientes Windows 85/98/NT, mas podem precisar ser modificadas se voc tem clientes Windows 3.x:
; Mangle case = yes aparentemente fornece os nomes de arquivo corretos para Win95/98/NT mangle case = yes ; Se o samba deve diferenciar maisculas e minsculas quando procurando por arquivos case sensitive = no ; Padro de letras maisculas ou minsculas para quando os arquivos so criados default case = lower ; Preservar maisculas e minsculas para todos os nomes de arquivo preserve case = yes ; Preservar maisculas e minsculas para nomes DOS (8.3) short preserve case = no

7.1.2 Configurar o Windows para no usar senhas criptografadas


No utilizar encriptao no logon, alterando uma chave no registro do Windows. O SAMBA trs o arquivo .reg para cada verso do Windows com a chave modificada. Execute o arquivo correspondente para validar a mudana (eles esto em /usr/doc/samba-2.0.x/docs). Se voc no possui estes arquivos, abaixo esto as chaves que devem ser modificadas nas estaes Windows para no utilizar o "clear text": Windows 95/98 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Servic es\VxD\VNETSUP] "EnablePlainTextPassword"=dword:00000001 WindowsNT 4.0 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Rdr\Parameters] "EnablePlainTextPassword"=dword:00000001 Windows 2000 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic 37

es\LanmanWorkStation\Parameters] "EnablePlainTextPassword"=dword:00000001 claro que se sua rede for "sniffada", os passwords que no estiverem encriptados sero descobertos. Em alguns casos vale a pena tirar a criptografia de login e monitorar a rede com um anti-sniffer. Mas lembre-se que o Windows NT e o 2000 s conseguem se autenticar no servidor SAMBA atravs de senha encriptada. Mais ainda: o Windows 2000 vem com algumas dificuldades para entrar no Domnio de um PDC Samba verso 2.1.x. Utilize a verso 2.2.2 ou superior do Samba para evitar problemas.

7.2

Compartilhamento de disco Windows com mquinas Linux

Um programa cliente SMB para mquinas UNIX incluido na distribuio. Ele prov uma interface tipo ftp com linha de comando. Voc pode usar este utilitrio para transferir arquivos entre um 'servidor' Windows e um cliente Linux. Para ver quais compartilhamentos esto disponveis num determinado host, execute:
/usr/sbin/smbclient -L host

Onde 'host' o nome da mquina que voc deseja ver. Isto ir retornar uma lista de nomes de servio, isto , nomes de drives ou impressoras que o servidor pode compartilhar com voc. A menos que o servidor SMB no possua nenhuma medida de seguna configurada, ele ir lhe perguntar uma senha. D-lhe a senha para a conta 'guest' ou para a sua senha pessoal naquela mquina. Por exemplo:
smbclient -L zimmerman

A sada do comando deve parecer com esta:


Server time is Sat Aug 10 15:58:27 1996 Timezone is UTC+10.0 Password: Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51] Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[] Sharename --------Type ---Comment -------

38

ADMIN$ public C$ IPC$ OReilly print$

Disk Disk Disk IPC Printer Disk

Remote Admin Public Default share Remote IPC OReilly Printer Drivers

This machine has a browse list: Server --------HOPPER KERNIGAN LOVELACE RITCHIE ZIMMERMAN Comment ------Samba 1.9.15p8 Samba 1.9.15p8 Samba 1.9.15p8 Samba 1.9.15p8

A lista de visualizao mostra outros servidores SMB com recursos a compartilhar na rede. Para usar o cliente, execute:
/usr/sbin/smbclient service <password>

onde 'servio' a mquina e o nome do compartilhamento. Por exemplo, se voc est tentando alcanar um diretrio que foi compartilhado como 'public' numa mquina chamada zimmerman, o servio deveria se chamar \\zimmerman\public. No entanto, devido a limitaes do shell, voc ter que dobrar as barras, logo, voc ter por fim algo assim:
/usr/sbin/smbclient \\\\zimmerman\\public mypasswd

Onde 'mypasswd' sua senha. Voc obter o seguinte prompt do smbclient:


Server time is Sat Aug 10 15:58:44 1996 Timezone is UTC+10.0 Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51] smb: \>

Digite 'h' para obter ajuda usando o smbclient:


smb: \> h

39

ls get rename more mkdir md recurse translate queue cancel newer tarmode setmode smb: \>

dir mget mask rmdir lowercase stat archive help

lcd put del rd print quit tar ?

cd mput rm prompt printmode q blocksize !

pwd

exit

Se voc sabe utilizar o ftp, voc no precisar das pginas de ajuda para o smbclient.

7.2.1 O pacote smbfs


Mesmo pondedo usar o smbclient para testes, voc logo estar saturado dele para trabalhos de verdade. Para estes voc provavelmente usar o pacote smbfs. O pacote smbfs j incluido na maioria das distribuies Linux. Uma coisa importante a observar: Voc deve possuir suporte a smbfs compilado no kernel para utilizar estes utilitrios. O smbfs vem com dois utilitrios simples: smbmount e smbumount. Eles funcionam de forma muito similar a mount e umount, s que para compartilhamentos SMB. O processo deve ser feito atravs da linha de comando. Imaginando que voc queira montar o disco C: da mquina estacao1, que foi compartilhado com o nome C, em seu diretrio Conectiva Linux /mnt/estacao1:
# smbmount //estacao1/c /mnt/estacao1

Observe que em alguns casos (voc est montando um volume de um servidor Windows NT, por exemplo) ser necessrio que voc informe um usurio e uma senha para poder utilizar o comando smbmount.
# smbmount //estacao1/c /mnt/estacao1 -o \ username=usuario,password=minhasenha

Isso funcionar se o usurio usuario estiver cadastrado na mquina estacao1 com a senha minhasenha. Em verses mais recentes, possvel usar o prprio comando mount do GNU/Linix:

40

# mount t smbfs //estacao1/c /mnt/estacao1

41

8 DIFERENAS ENTRE SISTEMAS DE ARQUIVOS


Neste captulo sero estudadas as diferenas entre os sistemas de arquivos Unix e no-Unix. Uma das maiores dificuldades que o Samba tem que enfrentar a diferena entre os sistemas dearquivos Unix e no-Unix. Isso inclui singularidades como links simblicos e arquivos ocultos.

8.1

Ocultando e Vetando arquivos

Em sistemas Unix, arquivos ocultos comeam com ., em sistemas DOS/Windows, os arquivos tm um atributo especfico para esta funo. O servidor Samba precisa de meios para esconder os arquivos quando este atributo estiver habilitado em um cliente Windows. Existem casos em que necessrio assegurar que um usurio no possa ver ou acessar um arquivo. Em outros casos no se que apenas esconde-lo quando se est visualizando um diretrio.

8.1.1 Opo hide dot files


Esta opo faz exatamente o que diz: quando est configurada como yes, esconde arquivos que comeam com .. E se estiver configurada como no, estes arquivos so sempre exibidos. No se deve esquecer que os arquivos sero apenas ocultos: se o cliente Windows estiver configurado para mostrar arquivos ocultos, ele poder v-los de qualquer maneira.

8.1.2 Opo hide files


Ao invs de esconder apenas os arquivos que comeam com ., possvel especificar uma string ao Samba, informando quais arquivos ocultar, atravs da opo hide files. Por exemplo, para esconder todos os arquivos .conf e todos os comeados por lib-:
hide files = /*.conf/lib-*/

Cada entrada deve iniciar e acabar com /, mesmo que haja apenas uma entrada. Podem ser colocados espaos nas regras.

8.1.3 Opo veto files


Caso seja necessrio prevenir que os usurios vejam arquivos, usa-se a opo veto files, que usa a mesma sintaxe da opo hide files:
veto files = /*.conf/lib-*/

42

Com esta opo, todos os arquivos .conf e todos os comeados por lib- desaparecero do diretrio, e ser impossvel para um cliente SMB enxerg-los.

8.1.4 Opo delete veto files = yes|no


O que acontecer se um usurio tentar apagar um diretrio que contm arquivos vetados? Depende da opo booleana delete veto files: se estiver setada para yes, o diretrio ser removido mesmo assim. Se estiver em no, ser impossvel para um cliente SMB apagar um diretrio com arquivos vetados.

8.1.5 Opo dont descend


Esta opo especifica uma lista de diretrios que no devem ter seu contedo mostrado pelo Samba. Apenas o contedo ser escondido, e no o prprio diretrio.
dont descend = bin lib

Os clientes SMB que tentarem acessar os diretrios bin e lib vero apenas listas vazias. Alm disso, nenhum usurio remoto poder gravar arquivos nestes diretrios. Note que essa uma opo administrativa e no de segurana, e no substitui as permisses de acesso aos arquivos.

8.1.6 Opo unix realname = yes|no


Alguns programas precisam de um nome de usurio completo para funcionar. Se o arquivo /etc/passwd tiver os nomes reais dos usurios no campo GCOS, a opo unix realname far com que o Samba fornea esta informao para os clientes. Sem isto, o nome do usurio ser o seu ID de login.

8.2

Links

No existem links simblicos em sistemas de arquivos FAT e NTFS. Os sistemas Windows possuem uma caracterstica parecida, que chamada de atalho. Quando um cliente tenta abrir um link simblico em um compartilhamento em um servidor Samba, o Samba tentar seguir o link simblico para encontrar o arquivo real, como se o usurio estivesse na mquina Linux. Para desabilitar isto ser necessrio inserir a seguinte linha dentro do compartilhamento:

43

follow symlinks = no

Existe tambm a opo wide links, que se for configurada como yes, permite que o usurio cliente siga os links simblicos que apontam para fora da rvore de diretrio compartilhada, incluindo arquivos e diretrio na outra ponta do link.

8.3

Permisses e Atributos

O DOS nunca teve a inteno de ser um sistema operacional de rede multiusurio, ao contrrio do Unix, que foi desenvolvido desta maneira desde o incio. Devido a isso, existem inconsistncias e lacunas de cobertura entre os dois sistemas de arquivo, que o Samba deve resolver. Uma das principais lacunas o manuseamento de permisses entre os dois sistemas. Todos os arquivos do Linux possuem bits de leitura, escrita e execuo para dono, grupo e outros. J o Windows tem 4 bits de permisso: apenas leitura, sistema, oculto e arquivo. No h um bit especfico para defenir um arquivo executvel, pois o DOS identifica arquivos executveis pela extenso .EXE, .COM, .CMD ou .BAT. Devido a isto, no h utilidade para os bits executveis do Linux que esto presentes em um disco compartilhado pelo Samba. J os arquivos DOS possuem seus prprios atributos, que precisam ser preservados quando so armazenados no ambiente Linux: arquivo, sistema e oculto. O Samba pode preservar estes bits reutilizando os bits de permisso de execuo do arquivo no lado do Linux, desde que devidamente configurado. Existe um efeito colateral: se no lado Unix for executado um ls l, alguns bits de permisso vo ter um significado diferente do esperado. Existem trs opes do Samba que decidem se os bits so mapeados: map archive (arquivo), map system (sistema) e map hidden (oculto). Estas opes mapeiam os atributos para o dono, grupo e outros, respectivamente. Veja um exemplo abaixo, com os valores padro das opes:
map archive = yes map system = no map hidden = no

O atributo apenas leitura mapedo no atributo de permisso de escrita do dono do arquivo, obviamente invertido.

44

9 COMPARTILHAMENTO DE IMPRESSORAS

9.1

Compartilhamento de impressora Linux com mquinas Windows

Para compartilhar uma impressora Linux com mquinas Windows, voc precisa ter certeza que sua impressora est configurada no Linux. Se voc pode imprimir do Linux, configurar um compartilhamento SMB da impressora bem simples. Veja o Printing HOWTO para configurar uma impressora local. J que o autor usou uma impressora conectada a uma mquina Windows NT (h muito tempo atrs - antes de converter nossa rede ao Linux, quase em sua totalidade), esta seo no deve ser vista como definitiva, mas meramente uma sugesto. Adicionando configuraes de impresso a seu sbm.conf:
[global] printing = bsd printcap name = /etc/printcap load printers = yes log file = /var/log/samba-log.%m lock directory = /var/lock/samba [printers] comment = All Printers security = server path = /var/spool/lpd/lp browseable = no printable = yes public = yes writable = no create mode = 0700 [ljet] security = server path = /var/spool/lpd/lp printer name = lp writable = yes public = yes printable = yes print command = lpr -r -h -P %p %s

45

Tenha certeza que a o caminho da impressora (neste caso abaixo de [ljet]) casa com o diretrio de spool em /etc/printcap! As linhas:
printcap name = /etc/printcap load printers = yes

controlam quando todas as impressoras em /etc/printcap devem ser cerregadas por padro ou no. Se voc fizer isso, no h razo para configurar impressoras individualmente. A seo [printers] escifica opes para as impressoras que voc quer definir explicitamente. Se o subsistema de impresso que voc est usando no funciona deste modo (BSD), voc ter que configurar um arquivo printcap falso (ou usar a tcnica do 'comando de impresso', veja abaixo). Para mais informaes sobre o sistema printcap veja o Printing HOWTO. Uma tcnica til de testar a conexo de rede trocar o camando de impresso para:
print command = cp %S /tmp/print.%P.%S

O arquivo resultante pode ento ser analisado. Observao: H alguns problemas ao se compartilhar impressoras em mquinas UNIX com mquinas NT usando Samba. Um dos problemas o NT ver a impressora compartilhada corretamente. Para solucionar, use as observaes contidas na documentao do Samba no arquivo docs/WinNT.txt. Outro problema ocorre com as senhas. Veja os comentrios no mesmo arquivo sobre uma forma irritante de compreenso e falha para solucionar o problema. Oleg L. Machulskiy (machulsk@shade.msu.ru) sugere que um comando de impresso melhor para o exemplo acima seria:
print command = smb2ps %s | lpr -r -h -P %p

onde 'smb2ps' um script que transforma os arquivos de spool recebidos do Windows em usveis e comuns arquivos Postscript. Ele deve cortar as primeiras trs e as ltimas duas linhas, porque estas linhas contm cdigo PJL ou PCL. Este mtodo s necessrio se sua mquina Windows est imprimindo PCL e no Postscript realmente. Eu tenho visto que no Windows 95/98/NT no tem um driver genrico para Postscript, mas o driver da "Digital turbo Printserver 20" funciona como um bom driver genrico de Postscript para a maioria das configuraes. Eu tambm tenho ouvido que o driver da "Apple LaserWriter II NTX" tambm funciona para este fim. Jeff Stern (jstern@eclectic.ss.uci.edu) reporta o seguinte, o que pode ajudar alguns de vocs: 46

--------------------------%<---------------------------------- O problema que eu estava tendo, era que eu podia imprimir via lpd/lpr na minha impressora do Linux. Mas, eu no conseguia imprimir de uma mquina Win95 remota. Ento eu tentei: smbclient \\eclectic\belen -P e ento: print myfile Eu obtive erros como acesso negado. Ento, eu configurei as permisses em meu diretrio /var/spool/lpd/lp1 para 777. Me desculpe, mas foi isso que eu tive que fazer. Eu acho que alternativamente, eu poderia ter posto todos os usurios no grupo 'lp', ou feito dado a posse do diretrio ao grupo 'users', etc... Mas por enquanto, este mtodo est funcionando (com propriedade root:lp). Finalmente, uma outra coisa que os administradores devem saber que o nome da conta na mquina Windows (na qual eu estava tentando usar a impressora Linux via Samba) deve ter equivalente no Linux. Assim, se h um usurio chamado 'joe' na mquina Windows 'mywinbox' tentando imprimir na impressora 'belen' da mquina Linux 'eclectic' (\\eclecticz\belen, dever haver um usurio chamado 'joe' na mquina Linux. Ento o login e a senha do usurio 'joe' sero a senha para acesar a impressora belen da mquina eclectic. Esta senha ser solicitada na mquina Windows quando voc estiver configurando a impressora com Impressoras | Adicionar Nova. Eu pensei que este tipo de problema no seria bem o caso, mas eu configurei minha impressora com acesso pblico no smb.conf. Mas aparentemente, ela continua a pedir senha. (A mquina Windows, infelizmente, no lhe d a oportunidade de informar um nome de usurio diferente para a impressora remota (Linux). Ela simplesmente usa o nome do usurio atual que voc informou quando iniciou o Win95. -------------------------%<---------------------------------O Dr. Michael Langner langner@fiz-chemie.de mostra que problemas de permisso de escrita na rvore de /var/spool/lpd/ podem ser evitados por alguma coisa como "path = /tmp" e "print command = lpr -r -P%p %s". Algumas vezes, um error de interpretao do Postscript ir ocorrer quando voc estiver imprimindo de mquinas Windows, o que causa a impresso de uma pgina extra no fim de cada trabalho de impresso. A tima pgina sempre conter "%%[ Lastpage ]%%" em seu topo. Aparentemente isto acontece apenas com o Windows 95 e 98 e devido a um defeito no Postscript gerado. Uma maneira de lidar com isso usar um script que remove a pequena parte ruim desde Postscript dos trabalhos da fila de impresso. Outra maneira tentar encontrar um driver Postscript melhor para Windows. Provavelmente a melhor maneira usarmos LPRng invs de Postscript para imprimir num servidor Samba. Erik Ratcliffe (erik@caldera.com) da Caldera contou-me que usando LPRng significa que qualquer driver de impresso pode ser usado na mquina

47

Windows. No servidor Samba, ele usou uma entrada no /etc/printcap que se parece com esta:
raw:\ :rw:sh: :lp=/dev/lp1 :sd=/var/spool/lpd/raw :fx=flp

LPRng no requer :\ no final de cada linha. Uma linha de impressora ainda precisa ser adicionada ao /etc/smb.conf para a impressora fsica. O comando de impresso precisa usar a entrada "raw" do /etc/printcap e os dados precisam ser enviados para a impressora em formato binrio. Tente um comando de impresso como este:
print command = lpr -b -Praw %s

Voc tambm pode precisar configurar o spooling no Windows 95 para imprimir diretamente para a impressora, ao invs de fazer spool.

9.2

Compartilhamento mquinas Linux

de

impressora

Windows

com

Para compartilhar uma impressora de uma mquina Windows, voc deve fazer o seguinte: 1. Voc deve possuir as entradas apropriadas no /etc/printcap e elas devem corresponder a estrutura local de diretrios (para o diretrio de spool, etc). 2. Voc deve ter o script /usr/bin/smbprint. Ele vem junto dos fontes do Samba, mas no em todas as distribuies binrias. Uma cpia levemente modificada ser discutida abaixo. 3. Se voc quer converter arquivos ASCII para Postscript, voc deve ter o nenscript, ou um equivalente. nescript um conversor para Postscript e geralmente instalado em /usr/bin. 4. Voc pode querer fazer a impresso do Samba ficar mais fcil tendo um programa interface que torne-a simples de usar. Um script em Perl simples para manipular ASCII, Postscript ou Postscript criado dado abaixo. 5. Voc pode tambm usar o MagicFilter para fazer o item acima. Detalhes sobre como configurar o MagicFilter so fornecidos depois do script perl. O MagicFilter tem vantegens porque ele sabe como converter automaticamente muitos formatos de arquivo.

48

6. 1. A entrada no arquivo /etc/printcap abaixo para um impressora HP 5MP numa mquina Windows NT. As entradas so como as que seguem abaixo:
cm lp sd af mx if comentrio dispositivo a abrir para sada o diretrio de spool da impressora (na mquina local). o arquivo de registro (contabilidade) o tamanho mximo de arquivo (zero ilimitado) o nome do filtro de entrada.

Para mais informaes, veja o Printing HOWTO ou a pgina man do printcap.


# /etc/printcap # # //zimmerman/oreilly via smbprint # lp:\ :cm=HP 5MP Postscript OReilly on zimmerman:\ :lp=/dev/lp1:\ :sd=/var/spool/lpd/lp:\ :af=/var/spool/lpd/lp/acct:\ :mx#0:\ :if=/usr/bin/smbprint:

Tenha certeza que os diretrios de spool e registro (contabilidade) existem e so gravveis. Assegure-se que a linha que tem o 'if' contenha o caminho correto para o script smbprint (dado abaixo) e tenha certeza que o dispositivo apropriado tenha sido indicado (o arquivo especial /dev). Depois vem o prprio script smbprint. Ele normalmente colocado em /usr/bin e atribudo a Andrew Tridgell, a pessoa que criou o Samba, at onde eu sei. Ele vem junto da distribuio dos fontes do Samba, mas no vem em algumas distribuies binrias, assim sendo eu o reproduzi aqui. Voc pode quer dar uma olhada cuidadosa nele. H algumas pequenas alteraes que se mostraram muito teis.
#!/bin/sh -x # This script is an input filter for printcap printing on a unix machine. It

49

# uses the smbclient program to print the file to the specified smb-based # server and service. # For example you could have a printcap entry like this # # smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbpri nt # # which would create a unix printer called "smb" that will print via this # script. You will need to create the spool directory /usr/spool/smb with # appropriate permissions and ownerships for your system. # Set these to the server and service you wish to print to # In this example I have a WfWg PC called "lapland" that has a printer # exported called "printer" with no password. # # Script further altered by hamiltom@ecnz.co.nz (Michael Hamilton) # so that the server, service, and password can be read from # a /usr/var/spool/lpd/PRINTNAME/.config file. # # In order for this to work the /etc/printcap entry must include an # accounting file (af=...): # # cdcolour:\ # :cm=CD IBM Colorjet on 6th:\ # :sd=/var/spool/lpd/cdcolour:\ # :af=/var/spool/lpd/cdcolour/acct:\ # :if=/usr/local/etc/smbprint:\ # :mx=0:\ # :lp=/dev/null: # # The /usr/var/spool/lpd/PRINTNAME/.config file should contain: # server=PC_SERVER # service=PR_SHARENAME # password="password" # # E.g. # server=PAULS_PC # service=CJET_371 # password=""

50

# # Debugging log file, change to /dev/null if you like. # logfile=/tmp/smb-print.log # logfile=/dev/null

# # The last parameter to the filter is the accounting file name. # spool_dir=/var/spool/lpd/lp config_file=$spool_dir/.config # Should read the following variables set in the config file: # server # service # password # user eval `cat $config_file` # # Some debugging help, change the >> to > if you want to same space. # echo "server $server, service $service" >> $logfile ( # NOTE You may wish to add the line `echo translate' if you want automatic # CR/LF translation when printing. echo translate echo "print -" cat ) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $user -N -P >> $logfile

A maioria das distribuies Linux vem com o nenscript para converter documentos ASCII em Postscript. O script perl abaixo facilita a nossa vida fornecendo uma interface simples ao Linux para impresso via smbprint.
Uso: print [-a|c|p] <nomedoarquivo> -a imprime <nomedoarquivo> como ASCII -c imprime <nomedoarquivo> como arquivo fonte formatado -p imprime <nomedoarquivo> como Postscript

51

Se nenhuma opo for dada, print tenta descobrir o tipo de arquivo e imprimi-lo apropriadamente.

Usando o smbprint para imprimir arquivos ASCII tende a cortar linhas grandes. Este script quebra linhas grandes com espaos em branco (ao invs de no meio das palavras), se possvel. A formatao do cdigo fonte feita com o nescript. Ele pega um arquivo ASCII e o formata em duas colunas com um cabealho legal (data, nome do arquivo, etc). Ele tambm numera as linhas. Usando isto como exemplo, outros tipos de formatao podem ser obtidos. Documentos Postscript j esto formatados adequadamente, ento repasse-os automaticamente.
#!/usr/bin/perl # Script: print # Autores: Brad Marshall, David Wood # Plugged In Communications # Data: 960808 # # Script para imprimir numa impressora Postscript printer via Samba. # Finalidade: Pega arquivos de vrios tipos e arqumentos e os processa # apropriadamente para um canal(pipe) do script de impresso do Samba. # # Currently supported file types: # # ASCII - assegura-se que as linhas maiores que $line_length caracteres # sejam quebradas nos espaoes em branco. # Postscript - No faz nada. # Code - Formata em Postscript (usando nenscript) para aparecer # adequadamente(landscape, font, etc). # # Determina o maior comprimento de linha permitido em textos ASCII $line_length = 76; # Determina o nome e o caminho do script de impresso do samba $print_prog = "/usr/bin/smbprint"; # Determina o nome e o caminho para o nescript (o conversor ASCII-->Postscript)

52

$nenscript = "/usr/bin/nenscript"; unless (-f $print_prog ) { die "No pude encontrar $print_prog!"; } unless (-f $nenscript ) { die "No pude encontrar $nenscript!"; } &ParseCmdLine(@ARGV); # DBG print "Arquivo do tipo $filetype\n"; if ($filetype eq "ASCII") { &wrap($line_length); } elsif ($filetype eq "code") { &codeformat; } elsif ($filetype eq "ps") { &createarray; } else { print "Desculpe... tipo de arquivo desconhecido.\n"; exit 0; } # Canalisa a matriz para o smbprint open(PRINTER, "|$print_prog") || die "No pude abrir $print_prog: $!\n"; foreach $line (@newlines) { print PRINTER $line; } # Envia um linefeed extra no caso do arquivo ter uma ltima linha incompleta. print PRINTER "\n"; close(PRINTER); print "Completed\n"; exit 0; # --------------------------------------------------- # # Tudo daqui para baixo so sub-rotinas # # --------------------------------------------------- # sub ParseCmdLine { # Parses the command line, finding out what file type the file is

53

exists)

# Gets $arg and $file to be the arguments (if the # and the filename if ($#_ < 0) { &usage; } # DBG foreach $element (@_) { print "*$element* \n"; } $arg = shift(@_); if ($arg =~ /\-./) { $cmd = $arg; # DBG print "\$cmd found.\n"; $file = shift(@_); } else { $file = $arg; } # Defining the file type unless ($cmd) { # We have no arguments

# # #

if ($file =~ /\.ps$/) { $filetype = "ps"; } elsif ($file =~ /\.java$|\.c$|\.h$|\.pl$|\.sh$|\.csh$|\.m4$|\.inc$|\.html$|\.htm $/) { $filetype = "code"; } else { $filetype = "ASCII"; } # Process $file for what type is it and return $filetype } else { # We have what type it is in $arg if ($cmd =~ /^-p$/) { $filetype = "ps"; } elsif ($cmd =~ /^-c$/) { $filetype = "code"; } elsif ($cmd =~ /^-a$/) { $filetype = "ASCII"

54

} } } sub usage { print " Usage: print [-a|c|p] <filename> -a prints <filename> as ASCII -c prints <filename> formatted as source code -p prints <filename> as Postscript If no switch is given, print attempts to guess the file type and print appropriately.\n "; exit(0); } sub wrap { # Create an array of file lines, where each line is < the # number of characters specified, and wrapped only on whitespace # Get the number of characters to limit the line to. $limit = pop(@_); # DBG #print "Entering subroutine wrap\n"; #print "The line length limit is $limit\n"; # Read in the file, parse and put into an array. open(FILE, "<$file") || die "Can't open $file: $!\n"; while(<FILE>) { $line = $_; # DBG #print "The line is:\n$line\n"; # Wrap the line if it is over the limit. while (length($line) > $limit ) { # DBG #print "Wrapping..."; # Get the first $limit +1 characters. $part = substr($line,0,$limit +1);

55

# DBG #print "The partial line is:\n$part\n"; # Check to see if the last character is a space. $last_char = substr($part,-1, 1); if (" " eq $last_char ) { # If it is, print the rest. # DBG #print "The last character was a space\n"; substr($line,0,$limit + 1) = ""; substr($part,-1,1) = ""; push(@newlines,"$part\n"); } else { # If it is not, find the last space # sub-line and print up to there. # DBG #print "The last character was not a space\n"; # Remove the character past $limit substr($part,-1,1) = ""; # Reverse the line to make it easy # the last space. $revpart = reverse($part); $index = index($revpart," "); if ($index > 0 ) { substr($line,0,$limit-$index) =

in the

to find

"";

push(@newlines,substr($part,0,$limit-$index) . "\n"); } else { # There was no space in the line, so # print it up to $limit. substr($line,0,$limit) = ""; push(@newlines,substr($part,0,$limit) . "\n");

56

} } } push(@newlines,$line); } close(FILE); } sub codeformat { # Call subroutine wrap then filter through nenscript &wrap($line_length); # Pipe the results through nenscript to create a Postscript # file that adheres to some decent format for printing # source code (landscape, Courier font, line numbers). # Print this to a temporary file first. $tmpfile = "/tmp/nenscript$$"; open(FILE, "|$nenscript -2G -i$file -N -p$tmpfile -r") || die "Can't open nenscript: $!\n"; foreach $line (@newlines) { print FILE $line; } close(FILE); # Read the temporary file back into an array so it can be # passed to the Samba print script. @newlines = (""); open(FILE, "<$tmpfile") || die "Can't open $file: $!\n"; while(<FILE>) { push(@newlines,$_); } close(FILE); system("rm $tmpfile"); } sub createarray { # Create the array for postscript open(FILE, "<$file") || die "Can't open $file: $!\n"; while(<FILE>) { push(@newlines,$_); } close(FILE); }

57

Agora, via MagicFilter. Obrigado a Alberto Menegazzi (flash.egon@iol.it) por esta informao. Alberto disse: -------------------------%<---------------------------------- 1) Instale o MagicFilter com o filtro de impressoras que voc precisa em /usr/bin/local mas no preencha o /etc/printcap com a sugesto dada na documentao do MagicFilter. 2) Escreva o /etc/printcap desta forma (est feito para minha LaserJet 4L): lp|ljet4l:\ :cm=HP LaserJet 4L:\ :lp=/dev/null:\ # or /dev/lp1 :sd=/var/spool/lpd/ljet4l:\ :af=/var/spool/lpd/ljet4l/acct:\ :sh:mx#0:\ :if=/usr/local/bin/mainfilter: Voc pode perceber que o lp=/dev/... est aberto para fazer o locking de tais dispositivos "virtuais", deve ser usado um para cada impressora remota. Exemplo criando com: touch /dev/ljet4l Escreva o filtro /usr/local/bin/main-filter, o mesmo que voc sugeriu usando o filtro ljet4l-filter ao invs do cat. Aqui est o meu: #! /bin/sh logfile=/var/log/smb-print.log spool_dir=/var/spool/lpd/ljet4l (echo "print -" /usr/local/bin/ljet4lfilter ) | /usr/bin/smbclient "\\\\SHIR\\HPLJ4" -N -P >> $logfile P.S. : aqui vai uma citao do Print2Win mini-Howto sobre locking e porque criar impressoras virtuais Starts here--> ---Comea aqui Dica de Rick Bressler : Boa dica. Eu uso algo muito parecido. Uma dica til que isso no uma boa idia: :lp=/dev/null:\ lpr abre em modo exclusivo o arquivo que voc especifica em lp=. Ele o faz para evitar que vrios processos tentem imprimir na mesma impressora ao mesmo tempo. O efeito colateral disto no seu caso, eng e colour no podem imprimir ao mesmo tempo, (normalmente mais ou menos transparente, j que provavelmente elas imprimem rapidamente e j que elas enfileram, voc provavelmente no percebe) mas qualquer outro processo que tenta escrever em /dev/null ser quebrado! Em um sistema monousurio, provavelmente no um grande problema. Eu tenho um sistema com mais de 50 impressoras. Haveria um problema aqui. A soluo criar uma impressora burra para cada. Exemplo: touch /dev/eng. Eu modifiquei as entradas lp no arquivo printcap acima para levar em conta as sugestes do Rick. Eu fiz o seguinte: #touch /dev/eng #touch /dev/colour Ends here-> ---Termina aqui --------------------------%<----------------------------------

58

10 O WINS NO SAMBA
O Samba pode ser configurado tanto como cliente como servidor WINS, utilizando para isso o daemon nmbd.

10.1 O daemon nmbd


O daemon nmbd um servidor que entende e pode responder solicitaes NetBIOS sobre resoluo de nomes IP, iguais quelas produzidas pelos clientes SMBD/CIFS, como Windows 9x, Windows NT e clientes LanManager. Tambm pode ser configurado para atuar como um servidor WINS, que nada mais do que uma extenso do protocolo de resoluo de nomes do NetBIOS. A configurao do nmbd definida no arquivo de configurao do Samba. Algumas opes que tm relao com a execuo do WINS so: wins support = yes|no como servidor WINS. informa ao nmbd se ele deve funcionar

dns proxy = yes|no informa ao nmbd se ele deve utilizar o DNS para resolver as solicitaes feitas ao WINS que no puderam ser resolvidas. S tem sentido se o nmbd estiver rodando como um servidor WINS. O padro yes. wins server = 0.0.0.0 informa ao nmbd que ele deve funcionar como um cliente WINS. Note que o nmbd no pode ser ao mesmo tempo servidor e cliente WINS. wins proxy = yes|no informa ao nmbd para responder solicitaes de resoluo de nomes a favor de um cliente que no possa atender ao WINS. Para isso deve haver pelo menos um servidor de WINS na rede. O padro no.

10.2 O Samba como Cliente WINS


Para configurar o Samba como um cliente WINS, preciso editar as seguintes linhas no arquivo /etc/smb.conf:
[global] wins server = 172.20.1.3 name resolve order = wins lmhosts bcast

Sendo que 172.20.1.3 o endereo IP do servidor WINS. A opo name resolve order usada pelos programas do pacote Samba para determinar quais servios de nomes e em qual ordem tentar resolver os nomes de mquina para endereos IP. Neste caso, ir tentar resolver primeiro usando

59

o servidor WINS (setado na opo anterior), depois procurar o endereo IP no arquivo /etc/lmhosts do Samba, e por ltimo executar um broadcast.

10.3 O Samba como servidor WINS


A configurao do Samba para funcionar como um servidor WINS bem simples. Ser necessrio apenas configurar as seguintes opes:
[global] wins support = yes name resolve order = wins lmhosts bcast

A opo wins support que efetivamente configura o Samba para funcionar como servidor WINS.

60

11 O SAMBA ATUANDO COMO PDC

11.1 Domnios do Windows


Com os tradicionais grupos de trabalho, o Windows 9x aceitam cada usurio e senha que forem fornecidos na hora do logon (no existem usurios no autorizados). O sistema operacional simplesmente solicita uma nova senha qe autentica o usurio com a senha que possui. A nica vez que o Windows 9x tenta usar uma senha que foi fornecida quando se est tentando conectar a outro compartilhamento. Entretanto, os logons de domnio so similares ao sistema Unix. Para logar em um domnio, um usurio vlido e uma senha devem ser fornecidos na inicializao e sero autenticados no banco de dados de senhas do PDC. Se a senha no for vlida, o usurio ser automaticamente notificado e no efetuar um logon no domnio. Outra vantagem que depois de feita a autenticao de um usurio, este pode acessar qualquer um dos recursos compartilhados do domnio sem ter que se reautenticar.

11.2 Configurando o Servidor Samba


11.2.1 Clientes Windows 9x

Para configurar o servidor Samba para que atue como PDC de um cliente Windows 9x, existem alguns pr-requisitos: O Samba seja o nico controlador primrio de domnio do grupo de trabalho atual; Exista um servidor WINS disponvel na rede, que pode ser uma mquina Samba ou Windows NT; O Samba esteja configurado com nvel de segurana de usurio.

Para isso, necessria a incluso das seguintes opes no arquivo de configurao do Samba:
[global] workgroup = DESIGN domain logons = yes security = user os level = 254 local master = yes preferred master = yes domain master = yes

61

A opo domain logons configura o Samba para aceitar logons como um controlador primrio de domnio. Quando um cliente faz um logon no domnio, o Samba retorna um token especial para os clientes que permite que eles acessem compartilhamentos de domnio, sem consultar o PDC novamente para autenticao. J a opo os level determina a preferncia deste servidor na eleio sobre qualquer outro sistema. Para garantir que o Samba ganhe a eleio configure o os level como 254. Para maiores informaes, veja o arquivo BROWSING.txt no diretrio de documentao do Samba. Jamais promova o Samba a mestre de domnio ou coloque um OS level muito alto se o PDC for outro computador em particular se for o Windows NT. Do contrrio haver uma guerra pela funo: nenhum dos servidores aceitar perder a eleio, convocando novas votaes em seqencia, e aumentando o trfego na rede. A opo local master determina se o samba pode vir a se tornar o master browser local em uma sub-rede. A opo preferred master fora o Samba a uma eleio de browser local na inicializao e d a ele uma chance um pouco maior de vencer a eleio e tornar-se master browser. A opo domain master = yes determina que o Samba seja o master browser do domnio, permitindo que o Samba confira listas de mquinas entre redes. Aps a configurao das opes ser necessrio criar um compartilhamento de disco chamado [netlogon], no importando para onde ele apontar, desde que cada cliente Windows consiga conectar-se a ele.
[netlogon] comment = Servio de logon de domnio path = /home/samba/netlogon public = no writeable = no browseable = no

O compartilhamento no pode ser public, browseable. Ele ser usado pelos scripts de logon.

writeable

ou

11.2.2

Clientes Windows NT

A configurao para clientes Windows NT exige alguns passos a mais. Alm das verificaes anteriores, preciso assegurar-se de que o Samba esteja usando senhas criptografadas. Ou seja, ser necessrio incluir a opo encript password = yes:
[global]

62

workgroup = DESIGN encript password = yes domain logons = yes security = user os level = 254 local master = yes preferred master = yes domain master = yes

11.2.2.1

Criando contas confiveis (trusted accounts)

Aps a incluso da opo sobre senhas, preciso criar um conta confivel. Todos os clientes Windows NT usam-nas para conectar a um controlador primrio de domnio. Estas contas permitem a uma mquina efetuar um logon no PDC ( no em seus compartilhamentos), o que significa que o PDC pode confiar em quaisquer conexes posteriores de usurios naquele cliente. Para todos os objetivos e propsitos, uma conta confivel idntica a uma conta de usurio. Sero usadas contas de usurio padro do Linux para emular usurios confiveis no servidor Samba. O nome de login da conta confivel de uma mquina o seu nome com um sinal de $ no final, por exemplo alfa$. A senha inicial da conta simplesmente o nome da mquina em letras maisculas. Para produzir esta conta ser necessrio criar uma nova conta no Unix com o nome apropriado da mquina, assim como uma senha criptografada no banco de dados smbpasswd. Em primeiro lugar preciso adicionar um usurio ao sistema, para que seja suportada a conta confivel. Esta conta no precisa ter um diretrio home ou um shell vlido, pois sua nica parte que interessa se o login permitido. Assim, ser necessrio, por exemplo, inserir a seguinte entrada no arquivo /etc/passwd:
bart$:x:200:1000:Maquina Homer:/dev/null:bin/false

Alm disso, no necessrio designar uma senha vlida para este usurio (no arquivo /etc/shadow), pois o Samba ir usar o arquivo smbpasswd para manter a senha. No se deseja que algum execute um telnet na mquina usando aquela conta. Na verdade o nico valor usado diferente do nome da conta o UID da conta para o banco de dados de senhas criptografadas (200). Este nmero deve mapear para um ID de um nico recurso no servidor NT e no pode conflitar com outros IDs. Portanto, nenhum usurio ou brupo NT deve mapear para este nmero, ou um erro ocorrer. Aps a criao da conta, necessrio adicionar a senha criptografada; para isto ser usado o comando smbpasswd.
# smbpasswd am omega

63

A opo a significa que uma conta est sendo adicionada e a opo m que esta uma conta de mquina. No ser necessrio fornecer uma senha, pois o smbpasswd ir automaticamente configurar a senha inicial criptografada como o NetBIOS da mquina em letras minsculas. No necessrio adicionar $ ao final do nome da mquina, isto automtico. O Samba est agora pronto para aceitar conexes de clientes Windows NT.

11.3 Limitaes do Samba na integrao com Windows NT


A grande limitao do Samba no poder se filiar como servidor a um domnio, pois tal capacidade depende do protocolo SAM, cujo modus operandi no divulgado pela Microsoft. Especificamente, o Samba no pode: Ser BDC de um domnio NT, pois no tem acesso ao SAM do PDC; Possuir BDCs; Ser um servidor agregado, cujos recursos e permisses so gerenciados de forma centralizada no PDC; Ser um servidor de backup WINS; Ter servidores de de backup WINS; Ser um PDC, com clientes Windows 9x, NT e 2000; Ser um servidor WINS, desde que no tenha que interagir com outros servidores WINS; Dar suporte a logons ao domnio (9x/NT); Dar suporte a roaming profiles (9x/NT); Autenticar a senha de um usurio junto a outro servidor Samba ou NT, seja ou no um PDC

Por outro lado, o Samba pode, entre outras coisas:

O Sambainterage corretamente com o Windows 2000, desde que este ltimo esteja configurado em Modo de Compatibilidade com o NT4. Nativamente, o Windows 2000 utiliza Kerberos e LDAP, e o Samba ainda no oferece interoperabilidade com esses protocolos.

64

12 ARQUIVOS DE LOG DO SAMBA


As vezes necessrio saber o que o samba pode fazer, principalmente quando ele no est se comportando conforme o esperado. Este tipo de informao pode ser encontrado nos arquivos de log do Samba, onde possvel ver o motivo de suas aes. O Samba disponibiliza vrias opes que permitem aos usurios descrever como e onde as informaes de logging devem ser escritas. Estas so opes globais e no podem aparecer dentro das definies dos compartilhamentos. Veja um arquivo de configurao de exemplo:
[global] netbios name = ASTERIX server string = Samba %v em (%I) workgroup = DESIGN # Debug logging information log level = 2 log file = /var/log/samba.log.%m max log size = 50 debug timestamp = yes [dados] path = /samba/dados comment = drive de dados volume = Drive-de-dados-simples writeable = yes guest ok = yes

No exemplo acima, foi adicionado um arquivo de log customizado que reporta informao at o nvel 2, que relativamente baixo. Os nveis de logging podem variar de 0 a 10, sendo que o 10 o que fornece maior quantidade de informao. O nvel 2 ir fornecer informao de depurao sem desprdiar espao no servidor. Os nveis acima de 3 so usados apenas para desenvolvimento. Os arquivos de log esto normalmente localizados no diretrio /var/log. Mas possvel usar variveis de substituio para criar arquivos de log especficos para usurios ou clientes:
log file = /usr/local/logs/samba.log.%m

O isolamento das mensagens de log facilita a procura por erros, pois sabe-se especificamente qual a mquina ou usurios que esto causando problemas.

65

Aconselha-se que cada arquivo de log no exceda o tamanho de 50K, conforme especificado na opo max log size. Se o arquivo exceder este tamanho, ter acrescentado o sufixo .old, e um novo ser criado. Caso j exista um arquivo .old, ser destrudo. Isto previne que o um disco fique lotado pelos arquivos de log durante a execuo dos daemons.

12.1 Opo log file


Esta opo determina onde os arquivos de log do Samba devero ser gravados. Por exemplo, para configurar o nome e a localizao do arquivo de log para /var/log/samba/samba.log, ser necessrio:
[global] log file = /var/log/samba/samba.log

Como j foi visto antes, podem ser usadas variveis para criar logs especficos para cada usurio.

12.2 Opo max log size


Esta opo configura o tamanho mximo do arquivo de log do Samba, em Kbytes.
[global] log file = /var/log/samba/samba.log max log size = 1024

No caso acima, se o tamanho do arquivo de log exceder um Mbyte, o Samba ir criar um arquivo novo e salvar o antigo com a extenso .old. recomendado configurar esta opo, pois estas informaes de log podem ocupar muito espao em disco e evita-se desta maneira que administradores descuidados descubram de repente que o disco do servidor foi totalmente ocupado por um nico arquivo de log do Samba.

66

13 CONFIGURANDO O SAMBA REMOTAMENTE


Alm de ser um software de uso livre e compatvel com redes existentes, o SAMBA ainda possui outra caracterstica: permite ser administrado remotamente. Para isso deve utilizar um programa especfico que geralmente trabalha via http. possvel monitorar atravs de sua rede interna ou mesmo atravs da Internet. Os principais programas so o SWAT, Webmin e o LinuxConf. Existem outros mas no vou entrar em detalhes de como instalar estes programas ou utiliz-los, mas abaixo est o link para downloads, inclusive de programas para administrar o SAMBA atravs da Interface Grfica do Linux: http://us4.samba.org/samba/GUI

13.1 Utilizando o SWAT


Alm do Linuxconf, possvel configurar o SAMBA atravs de uma outra interface amigvel: o SWAT. O SWAT uma interface web para a configurao. Uma grande vantagem do SWAT que ele permite a configurao remota de um servidor SAMBA, j que s necessrio acessar a mquina pela Internet. Para habilitar o SWAT a partir de seu servidor necessrio editar o arquivo /etc/inetd.conf e descomentar (retirar o "#" inicial) a linha:
swat stream tcp nowait.400 root /usr/sbin/swat swat

que est, normalmente, no final do arquivo. Caso voc no encontre uma linha semelhante, pode-se adicionar a linha acima. Se voc possui o xinetd instalado ao invs do inetd, procure a documentao do xinetd para habilitar o SWAT. Basicamente, voc deve criar um arquivo em /etc/xinetd.d com a configurao do SWAT e reiniciar o xinetd. Aps feita a edio, o servio inetd deve ser reiniciado, e voc poder fazer isso atravs do Linuxconf ou digitando o seguinte comando em um terminal:
# service inetd restart

A partir do momento em que o inetd for reiniciado, o SWAT ser acessvel atravs da porta 901 de seu servidor , atravs de qualquer navegador. O Samba pode ser configurado atravs do Swat, um utilitrio de configurao via Web, semelhante ao encontrado em alguns roteadores. Para acessa-lo basta abrir o Konqueror ou outro Browser disponvel e acessar o endereo http://localhost:901 basta fornecer a senha de root para acessar.

67

Antes de mais nada voc dever criar logins para todos os usurios que forem acessar o servidor. Voc pode fazer isso atravs do Iniciar > Configuration > Other > UserDrake. Os logins e senhas devem ser os mesmos que os usurios iro utilizar para se logar no Windows. Um detalhe importante que na configurao de rede das mquinas Windows (Painel de controle > Redes) voc deve marcar a opo de login como Login do Windows e no como Cliente para redes Microsoft que o default. Falta agora apenas configurar o Samba para se integrar rede e compartilhar as pastas desejadas. Ao abrir o Swat voc ver um menu como o do screenshot abaixo, com vrios links para a documentao disponvel sobre o Samba, que voc pode consultar para se aprofundar no sistema. Na parte de cima esto os links para as sesses da configurao, que o que nos interessa: Erro! Argumento de opo desconhecido. Acesse primeiro a seo Password, onde voc dever cadastrar todos os usurios que tero acesso s pastas compartilhadas atravs do Samba, os mesmos que anteriormente cadastrou no UserDrake. No apenas o Samba, mas vrios outros programas servidores exigem que os usurios tambm estejam cadastrados no sistema, uma questo de segurana. Basta escrever o nome e senha do usurio e clicar no boto add new user. Erro! Argumento de opo desconhecido. Em seguida, acesse a seo Globals, que engloba todas as configuraes de rede e de acesso: Erro! Argumento de opo desconhecido. Nas opes Workgroup e NetBios name voc deve colocar o nome do computador e o grupo de trabalho a que ele pertence, como faria numa mquina Windows. Na seo security coloque a opo Security como User, o que permitir definir quais usurios tero acesso ao sistema. A opo Encrypt Password tambm importantssima e deve ser configurada de acordo com a verso do Windows que rodar nas mquinas clientes. O Windows 95 original no suporta encriptao de senhas, por isso s poder se conectar ao servidor caso a opo seja configurada com o valor No. Porm, o Windows 95 OSR/2, Windows 98/SE/ME, Windows NT, Windows 2000 e Windows XP utilizam senhas encriptadas, por isso ao utilizar mquinas com qualquer um destes sistemas, que o mais provvel, a opo deve ser configurada como Yes. A opo Hosts Allow deve incluir os endereos IP todos os computadores que tero permisso para acessar o servidor. Se quiser que todos os PCs da rede tenham acesso, basta escrever apenas a primeira parte do endereo IP, como em 192.168.0., onde todos os endereos dentro do escopo sero permitidos. 68

A opo Hosts Deny por sua vez permite especificar mquinas dentro do escopo configurados na opo Hosts Allow que no tero permisso para acessar o servidor, as excees regra. Por exemplo, se voc configurou a opo acima como 192.168.0., mas deseja bloquear o acesso do PC 192.168.0.7, basta inclu-lo aqui. Se quiser incluir vrias mquinas basta separar os endereos por espaos. Na seo Browse Options, a opo OS Level permite especificar qual chance o servidor Linux ter de ser o master browser do domnio. No nosso caso desejvel que ele seja o master browser pois ele est concentrando todos os recursos acessados pelas estaes. Sendo assim configure esta opo com um valor alto, 100 por exemplo, para que ele sempre ganhe as eleies. O default dessa opo 20, que faz com que ele perca para qualquer mquina Windows NT, Windows 2000 ou Windows XP. Para completar, deixe a opo Local Master como Yes e as opes Preferred Master e Domain Master como Auto. Abaixo, deixe a opo Wins Support ativada (Yes). A opo Wins Server deve ser deixada em branco, a menos que exista na rede algum servidor Wins. Como no seu caso o nico servidor a mquina Linux, voc pode configurar as mquinas Windows para utiliz-la como servidor Wins, para isto basta colocar o seu endereo IP no campo Servidor Wins na configurao de rede das estaes. Terminando, pressione o boto Commit Changes no topo da tela para que as alteraes entrem em vigor. Finalmente, voc deve configurar as pastas a serem compartilhadas com as estaes, atravs da seo Shares: Erro! Argumento de opo desconhecido. Cada usurio que cadastrou no sistema j possui um diretrio home criado. Estas pastas ficam dentro do diretrio /home e podem ser usadas para guardar arquivos pessoais, j que a menos que seja estabelecido o contrrio, um usurio no ter acesso pasta pessoal do outro. Alm dos diretrios home voc pode compartilhar mais pastas de uso geral. Para criar um compartilhamento basta escrever seu nome no campo no topo da tela e clicar no boto Create Share: Erro! Argumento de opo desconhecido. Depois de criado um compartilhamento, escolha-o na lista e clique no boto Choose Share para configura-la. Voc ver uma lista de opes como a abaixo: Erro! Argumento de opo desconhecido. O campo Path o mais importante, pois diz justamente qual pasta ser compartilhada. O nome do compartilhamento diz apenas com que novo ele

69

aparecer no ambiente de redes. No caso do compartilhamento do screenshot a pasta compartilhada /arquivos/programas. A opo Read Only determina se a pasta ficar disponvel apenas para leitura (opo Yes) ou se os usurios podero tambm gravar arquivos (opo No). Voc tambm pode determinar quais mquinas tero acesso ao compartilhamento atravs das opes Hosts Allow e Hosts Deny. As configuraes feitas aqui subscrevem as feitas na seo global. Se por exemplo a mquina 192.168.0.5 possui permisso para acessar o sistema, mas foi includa na campo Hosts Deny do compartilhamento programas, ela poder acessar outros compartilhamentos do sistema, mas no o compartilhamento programas. A opo Browseable permite configurar se o compartilhamento aparecer entre os outros compartilhamentos do servidor no ambiente de redes, ou se ser um compartilhamento oculto, que poder ser acessado apenas por quem souber que ele existe. Isso tem uma funo semelhante a colocar um $ numa pasta compartilhada no Windows 98. Ela fica compartilhada, mas no aparece no ambiente de redes. Finalmente, a opo Available especifica se o compartilhamento est ativado ou no. Voc desativar temporariamente um compartilhamento configurando esta opo como No. Fazendo isso ele continuar no sistema e voc poder torna-lo disponvel quando quiser, alterando a opo para Yes. Um detalhe importante que os usurios s tero permisso para acessar pastas que o login permite acessar. Por exemplo, no Linux o nico usurio que pode acessar a pasta /root o prprio root, ou outro autorizado por ele. Mesmo que voc compartilhe a pasta root atravs do Samba, os demais usurios no podero acess-la. Para editar as permisses de uma pasta, basta abrir o gerenciador de arquivos e nas propriedades da pasta acessar a guia Permissions. As permisses podem ser dadas apenas ao usurio, para todos os usurios pertencentes ao grupo do usurio dono da pasta, ou para todos os usurios. A opo Apply changes to all subdirectories e their contents deve ficar marcada para que as permisses sejam aplicadas tambm s subpastas: Erro! Argumento de opo desconhecido. Terminadas as configuraes, o servidor j ir aparecer no ambiente de redes, como se fosse um servidor Windows. Os compartilhamentos podem ser acessados de acordo com as permisses que tiverem sido configuradas e podem ser mapeados como unidades de rede entre outros recursos. Voc pode compartilhar inclusive o CD-ROM do servidor se desejar, basta para isso compartilhar a pasta /mnt/cdrom, mas isso no muito prtico, pois alm de trocar o CD-ROM, necessrio montar e desmontar a unidade apartir do servidor. Para compartilhar uma impressora j instalada na mquina Linux o procedimento o mesmo. Acesse a seo printers, escolha a impressora a ser compartilhada (a lista mostrar todas as instaladas no sistema), configure a opo available como yes e configure as permisses de acesso como 70

vimos anteriormente. No Mandrake voc pode instalar impressoras atravs do Mandrake Control Center. Caso voc esteja usando outra distribuio e o utilitrio no esteja disponvel, tente o linuxconf.

13.2 Acessando compartilhamentos de mquinas Windows


O Samba tambm inclui um mdulo cliente, o smbclient que pode ser usado para fazer inverso, ou seja, acessar compartilhamentos de mquinas Windows apartir do Linux. O uso deste comando bastante simples. Abra um terminal e digite:
smbclient -L nome_da_maquina

Como por exemplo smbclient -L ascot. Ele pedir a sua senha de usurio e em seguida mostrar uma lista dos compartilhamentos disponveis na mquina que solicitou: Erro! Argumento de opo desconhecido. Lembre-se as mquinas Windows 95/98/ME aceitam conexes de rede por parte de qualquer usurio. A nica opo de segurana colocar senhas nos compartilhamentos. Mas, as mquinas rodando Windows NT ou Windows 2000 precisam ser configuradas para dar acesso ao login que voc est utilizando na mquina Linux. Para isso basta acessar o painel de controle > usurios e senhas (no Windows 2000) e adicionar o login e senha. Voltando configurao do smbclient, depois de decidir qual compartilhamento quer acessar, voc dever mont-lo para ganhar acesso. Voc pode montar o compartilhamento em qualquer pasta vazia do sistema. Como exemplo eu montei o compartilhamento C disponvel na mquina ascot no diretrio /mnt/windows da mquina Linux. Para isso o comando o seguinte:
mount -t smbfs //ascot/c /mnt/windows -o password=xxxxx

(substituindo o xxxxx pela senha, naturalmente) O comando mount um dos comandos mais tradicionais do Linux, que permite mapear um diretrio qualquer dentro de outro diretrio do sistema para que este possa ser acessado. A opo -t serve para especificar o sistema de arquivos, j que no estamos utilizando um sistema de arquivos nativo do Linux. O smbfs indica o sistema de arquivos que ser utilizado, este sistema que permite mapear unidades de rede compartilhadas pelo Windows. Em seguida, especificamos o compartilhamento e o diretrio onde ele ser montado seguido pelo -o. Este s um exemplo. Se voc for montar o compartilhamento arquivos dentro da mquina ricardo no diretrio /home/maria/ricardo da mquina Linux, o comando seria:
mount -t smbfs //ricardo/arquivos /home/maria/ricardo -o password=xxxxx

E assim por diante.

71

No password=xxxxx voc deve informar a senha do compartilhamento que est sendo acessado. Se ele no tiver senha, basta deixar este ltimo campo em branco. Depois do comando voc pode dar um ls no diretrio onde o compartilhamento foi montado s para checar se os arquivos realmente esto l: Erro! Argumento de opo desconhecido. Depois de montado, o compartilhamento pode ser acessado pelo gerenciador de arquivos da sua interface (Konqueror no KDE, Nautilus no Gnome, etc.): Erro! Argumento de opo desconhecido. No Mandrake 8.1 e outras distribuies que trazem a ferramenta DiskDrake, como por exemplo o TechLinux, voc pode montar as parties Windows de um jeito mais prtico. O DiskDrake pode ser encontrado dentro do Mandrake Control Center na seo Hardware > Pontos de Montagem. A parte que nos interessa est na aba Samba: Erro! Argumento de opo desconhecido. O funcionamento muito simples. Clique em novo e aponte o compartilhamento a ser montado na janela que ser aberta. Sero mostrados todos os compartilhamentos disponveis na rede, inclusive os de outras mquinas Linux rodando o Samba. Erro! Argumento de opo desconhecido. Em seguida, basta fornecer o ponto de montagem desejado. Note que dentro do diskdrake voc tem privilgios de root e pode montar os compartilhamentos onde quiser. Mas, tenha o cuidado de no montar numa pasta onde seu login de usurio (ou de quem for usar a mquina) no tenha permisso de acesso. Erro! Argumento de opo desconhecido. Para finalizar, basta montar o sistema de arquivos para ter acesso. Por default, ele passar a ser montado a cada inicializao do sistema, at que voc volte aqui e desmonte-o. Mas, voc pode alterar isso na seo opes. Erro! Argumento de opo desconhecido.

72

13.3 Configurando manualmente


Se por qualquer motivo o Swat no estiver instalado no seu sistema, ou voc preferir configurar tudo manualmente, basta abrir o arquivo smb.conf, que concentra as configuraes do Samba, num formato semelhante ao das opes do Swat, mantendo as mesmas sees: global, homes, printers, etc. Ao instalar o Samba criado um smb.conf com configuraes default, voc precisar apenas alterar as mesmas opes que alteraria no Swat. O smb.conf pode ser encontrado em /etc/samba (no caso do Mandrake e RedHat 7) ou em /etc (no caso de algumas distros). Para abri-lo, com privilgios de root, voc pode digitar simplesmente kdesu kedit /etc/samba/smb.conf num terminal.
# Global parameters [global] workgroup = HOME netbios name = BETA-2 server string = Samba Server %v interfaces = eth0 encrypt passwords = Yes log file = /var/log/samba/log.%m max log size = 50 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 printcap name = lpstat os level = 100 dns proxy = No hosts allow = 192.168.0. printing = cups [homes] comment = Home Directories read only = No browseable = No [printers] comment = All Printers path = /var/spool/samba create mask = 0700 guest ok = Yes printable = Yes print command = lpr-cups -P %p -o raw %s -r # using client side printer drivers. lpq command = lpstat -o %p lprm command = cancel %p-%j browseable = No [morimoto]

73

path = /home/morimoto read only = No [cd] path = /mnt/cdrom [HP] path = /var/spool/samba read only = No create mask = 0700 guest ok = Yes printable = Yes print command = lpr-cups -P %p -o raw %s -r # using client side printer drivers. lpq command = lpstat -o %p lprm command = cancel %p-%j printer name = HP oplocks = No share modes = No

O Swat serve apenas como uma interface para a edio deste arquivo. Seja qual for o modo de configurao escolhido, basta fazer backups regulares deste arquivo para restaurar as configuraes do servidor em caso de problemas. Sempre que alterar manualmente smb.conf, ou mesmo alterar algumas opes pelo Swat e quiser verificar se as configuraes esto corretas, rode o testparm (basta chama-lo num terminal). Ele funciona como uma espcie de debug, indicando erros grosseiros no arquivo. Se por acaso voc estiver utilizando uma distro que no venha com o Samba, basta baixar o RPM adequando sua distribuio aqui:
http://us1.samba.org/samba/ftp/Binary_Packages

Para instalar, basta clicar sobre o arquivo ou usar o comando rpm -ivh nome_do_arquivo no terminal. Depois de instalar o arquivo e configurar o smb.conf, use os comandos abaixo para inicializar, parar e verificar o status do servio sempre que precisar:
/etc/rc.d/init.d/smb start /etc/rc.d/init.d/smb stop /etc/rc.d/init.d/smb status

O comando smbstatus tambm muito til, pois permite verificar quais estaes esto conectadas ao servidor e quais recursos esto sendo acessados no momento.

74

14 CONSIDERAES
O SAMBA permite ainda muitas outras configuraes que podem ser consultadas atravs do man do smb.conf. Uma documentao importante est em /usr/doc/samba-2.2.x/ com dicas e referencias a segurana, navegao, compatibilidades, etc. Uma caracterstica das verses mais recentes do SAMBA a possibilidade de um cliente NT/2000 usar sua interface nativa de configurao para ver e modificar permisses no Linux. O parmetro "nt acl support = yes" deve ser adicionado na seo [global] do smb.conf. A aplicao smbmount vem inclusa no pacote do SAMBA (samba-client) com a funo de possibilitar a montagem de um compartilhamento de outra mquina localmente. uma tima ferramenta mas pode apresentar problemas, onde os mais conhecidos so quando compartilhamos unidades de CD via rede. O comando mount mais seguro e pode fazer exatamente a mesma tarefa, com a seguinte sintaxe:
mount -t smbfs -o username=usuario,password=senha //estacao/pasta /local

O diretrio /local deve ser criado antecipadamente. escrever uma linha no /etc/fstab para facilitar o processo.

Vale a pena

No aconselhvel reiniciar o SAMBA a cada modificao no smb.conf. Com exceo a parmetros como "path", "logon master", e outros que definem acesso ou segurana, a criao de compartilhamentos e permisses de acesso so automaticamente validadas pelo Samba. Muitos programas ficam "salvando" arquivos constantemente enquanto esto abertos, e se neste momento voc reiniciar o SAMBA ser um risco de se perder o arquivo. Se o SAMBA deve diferenciar maisculas e minsculas quando procurando por arquivos, adicione "case sensitive = yes". Para utilizar como padro letras maisculas ou minsculas quando os arquivos so criados, adicione "default case = lower (ou upper)". Para preservar maisculas e minsculas para todos os nomes de arquivo, adicione "preserve case = yes". Para preservar maisculas e minsculas para nomes DOS (8.3), adicione "short preserve case = yes". Se o servidor possui mais de uma placa de rede, o smb.conf deve conter uma especificao para qual placa ser utilizada pelo Samba. Adicione o seguinte parmetro: "interfaces = 192.168.1.1/24", onde o nmero depois da / uma referencia mscara de sub-rede. "24" o valor a usar para uma rede Classe C no segmentada. Para mais informaes sobre clculo de sub-redes visite: http://www.ziplink.net/~ralphb/IPSubnet/index.html O SAMBA atualmente no pode ser utilizado como BDC (Backup Server) em conjunto com um PDC Windows NT ou 2000. Tanto as verses 2.0.x quanto as 2.2.x ainda no esto prontas para tal tarefa (pelo menos por

75

enquanto). O Samba de modo geral no permite "trust relationship" entre servidores Windows (NT e 2000). Quem sabe aps ler estas linhas este recurso j tenha sido disponvel? :) Todos os parmetros de configurao apresentados neste manual so vlidos para as verses 2.0.x e 2.2.x do Samba. Caso algum encontre alguma incompatibilidade, peo que entre em contato ok! Lembre-se que a documentao do SAMBA (do protocolo SMB em geral) extensa. Consulte os docs criados aps a sua instalao. Voc pode tambm obter referencias em documentaes do LDP (Linux Documentation Project), que no Brasil est em http://br.tldp.org/.

76

APNDICE A. LICENA DE PUBLICAO LIVRE


Esta uma traduo no-oficial da Open Publication License verso 1.0, de 8 de junho de 1999, e no substituto legal para a Licena original, disponvel em http://www.opencontent.org/openpub. Entretanto, esta traduo poder auxiliar pessoas que falem Portugus a entender melhor a licena. permitido a qualquer pessoa copiar e distribuir cpias desse documento de licena, desde que sem a implementao de qualquer mudana.

OPEN PUBLIC LICENSE


Draft v1.0, 8 june 1999

I. Requisitos comuns s verses modificadas e no modificadas


Os trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) podem ser reproduzidos e distribudos no todo ou em parte, em qualquer meio fsico ou eletrnico, desde que os termos desta licena estejam includos, e que esta licena ou uma incorporao dela por referncia (com quaisquer das opes escolhidas pelo autor ou editor) estejam presentes na reproduo. A forma apropriada para uma incorporao por referncia deste livro : Copyright 2002 Alfamdia Ltda. Este material somente poder ser distribudo se sujeito aos termos e condies firmados na Licena de Livre Publicao (Open Publication License), verso 1.0 ou superior (a verso mais atual encontra-se disponvel em http://www.opencontent.org/openpub/). Esta referncia, devidamente preenchida com os dados da publicao, deve ser seguida imediatamente com quaisquer opes escolhidas pelos autores ou editor do documento (consultar a seo Termos opcionais). permitida a redistribuio comercial de material licenciado pela Licena de Livre Publicao (Open Publication License). Qualquer publicao no formato livro padro (papel) requer obrigatoriamente a citao dos autores e editor originais. Os nomes dos autores e do editor devem aparecer em todas as superfcies externas do livro. Em todas as faces externas do livro, o nome do editor original deve estar impresso em tamanho to grande quanto o ttulo do trabalho, e citado como proprietrio em relao quele ttulo.

II. Copyright
O copyright de todo trabalho protegido pela Licena de Livre Publicao (Open Publication License) pertence aos autores ou proprietrios.

77

III. Escopo da licena


Os termos de licena a seguir aplicam-se a todos os trabalhos protegidos pela Licena de Livre Publicao (Open Publication License), a no ser que explicitamente indicado no trabalho. A mera adio de trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) ou partes de trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) em uma mesma mdia que contenha outros trabalhos ou programas no protegidos por essa licena no decorre em aplicao da Licena de Livre Publicao (Open Publication License) para esses outros trabalhos. O trabalho resultante deve explicitamente conter uma nota especificando a incluso do material protegido pela Licena de Livre Publicao (Open Publication License) e o aviso de copyright apropriado. APLICABILIDADE. Se alguma parte desta licena no puder ser aplicada em alguma jurisdio, as partes restantes deste documento continuam sendo aplicadas. AUSNCIA DE GARANTIA. Os trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) so fornecidos "como esto", sem garantias de qualquer tipo, explcita ou implcita, incluindo, mas no limitado a, as garantias implcitas de comercializao e convenincia para um propsito particular, ou garantia de no-infrao.

IV. Requisitos para trabalhos modificados


Todas as verses modificadas de documentos cobertos por esta licena, incluindo tradues, antologias, compilaes e documentao parcial, deve seguir os requisitos abaixo: A verso modificada deve ser indicada como tal. As pessoas que fizerem as modificaes e as datas de modificao devem ser identificadas. O reconhecimento dos autores e editor originais (se aplicvel) deve ser mantido de acordo com as prticas acadmicas usuais de citao. O local da verso no-modificada do documento deve ser indicado. Os nomes originais dos autores no devem ser utilizados para indicar ou garantir seu endosso ao documento resultante sem a autorizao expressa dos autores.

V. Prticas recomendadas
Em adio aos requisitos desta licena, solicitado e extremamente recomendado aos redistribuidores que: Se os trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) estiverem sendo distribudos em impressos ou CD-ROM, os autores sejam informados por email, ao menos trinta dias antes, para que os autores tenham tempo de providenciar documentao atualizada. Esta notificao deve descrever as modificaoes introduzidas no documento, se existirem.

78

Todas as modificaes substanciais (incluindo excluses) devem ser marcadas claramente no documento, ou ento descritas em um anexo ao documento. Finalmente, mesmo no sendo obrigatrio sob esta licena, considerado de bom tom oferecer uma cpia sem nus de todo o material modificado (impresso e CD-ROM) para os autores originais.

VI. Termos opcionais


Os autores e editores de documentos protegidos pela Licena de Livre Publicao (Open Publication License) podem escolher certas opes de licena simplesmente incluindo alguns pargrafos aps a cpia da licena ou sua referncia. Estas opes so consideradas parte da licena e devem ser includas com ela (ou com a referncia a ela) nos trabalhos derivados. As opes que se aplicam a este trabalho so: A: vedada a distribuio de verses com modificaes substanciais deste documento sem a expressa permisso dos proprietrios do direito autoral. B: vedada a distribuio deste trabalho ou qualquer derivado seu em qualquer formato de livro padro (papel) sem a prvia autorizao dos proprietrios do direito autoral.

Polticas de Publicao Livre


(O texto a seguir no considerado parte da licena.) Os trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) esto disponveis e podem ser acessados na home page da Open Publication http://works.opencontent.org/ . Os autores de trabalhos protegidos pela Licena de Livre Publicao (Open Publication License) podem incluir suas prprias licenas nesses trabalhos, desde que os termos dessa licena no sejam mais restritrivos que os da Licena de Livre Publicao (Open Publication License). Em caso de dvidas sobre a Licena de Livre Publicao (Open Publication License), contactar David Wiley <dw2@opencontent.org> ou a lista de autores de publicaes <opal@opencontent.org> via email. Para se inscrever na lista de autores de publicaes livres (Open Publication Author's List), mande um email para <opal-request@opencontent.org> com a palavra subscribe no corpo da mensagem. Para enviar mensagens para a lista de autores de publicaes livres (Open Publication Author's List), mande um email para opal@opencontent.org ou simplesmente responda a uma mensagem postada. Para se desinscrever na lista de autores de publicaes livres (Open Publication Author's List), mande um email para opalrequest@opencontent.org com a palavra unsubscribe no corpo da mensagem. 79

APNDICE B. CONFIGURAO GERAL


Toda a configurao do SAMBA centralizada no arquivo smb.conf, que deve ser guardado no diretrio /etc ou /etc/samba, dependendo da distribuio. Nele que so descritos os compartilhamentos, permisses de acesso, impressoras, dentre outras configuraes disponveis. Quando instalado, o SAMBA disponibiliza os seguintes componentes: smbd O servidor SAMBA. nmbd O Servidor de nomes NetBios smbclient Cliente SMB para sistemas Unix. smbmount smbprint Ver final do documento, em Configuraes. Cliente para envio de impresso a sistemas Linux. smbpasswd Alterar senhas (encriptadas) de usurios smb. smbstatus Apresenta o estado atual das conexes SMB no Host. testparm Verifica a validade do arquivo smb.conf. a comunicao via rede com as testprns Verifica impressoras.

O smb.conf dividido basicamente em trs partes: a configurao do servidor SAMBA (parmetros na seo [global], [printers] e [netlogon]), a configurao dos diretrios/pastas pessoais dos usurios (parmetros na seo [homes]) e as demais sees que correspondem aos diretrios compartilhados. Cada seo representada entre colchetes [seo], e os parmetros so seguidos do sinal de igual (=) e o valor ou termo correspondente. Confira abaixo um exemplo do smb.conf para um servidor Samba como PDC da rede:
[global] comment = Servidor SAMBA workgroup = EMPRESA security = user os level = 100 announce as = NT Server domain logons = yes logon script = %U.bat logon path = //%L/Profiles/%U domain master = yes local master = yes

80

preferred master = yes guest account = nobody encrypt passwords = yes # wins server = 192.168.0.2 wins support = yes keep alive = 20 debug level = 3 winpopup command = /bin/csh -c 'xedit %s; rm %s' & log file = /var/log/samba_log.%u null passwords = no unix password sync = yes socket options = IPTOS_LOWDELAY TCP_NODELAY printing = bsd printcap name = /etc/printcap load printers = yes hosts allow = 192.168.0. 127. hosts deny = 192.168.0.3 192.168.0.4 [homes] comment = Pastas dos Usuarios public = no browseable = yes writeable = yes hosts deny = 192.168.0.250 [printers] comment = Impressoras Linux public = no browseable = yes printable = yes read only = yes create mode = 0700 path = /var/spool/samba admin users = admin, usuario1 [netlogon] comment = Compartilhamento de Scripts path = /etc/scripts public = no browseable = yes writeable = no [diretoria] comment = Grupo Diretoria path = /home/diretoria

81

public = no browseable = yes valid users = @diretoria writeable = yes write list = @diretoria force create mode = 0777 force directory mode = 0777 [comercial] comment = Grupo Comercial path = /home/comercial public = yes browseable = yes writeable = yes write list = @comercial read list = @marketing force create mode = 0777 force directory mode = 0777 [transf] comment = Area de Transferencia path = /home/transf public = yes browseable = yes writeable = yes write list = @todos force create mode = 0777 force directory mode = 0775 max disk size = 200 [oculto$] comment = Especifico do Admin path = /home/admin/oculto copy = homes max connections = 1

B.1. Conhecendo os parmetros


B.1.1. Seo [global]

Define as configuraes globais do SAMBA. A relao abaixo apresenta a explicao dos parmetros do exemplo:

82

comment Comentrio para este Host na Rede. workgroup Especifica o Domnio ou Workgroup a que o Host pertence na Rede. security Por padro o SAMBA utiliza a segurana a nvel de usurio (security = user), com opes: o security = share senhas de acesso sero solicitadas por cada recurso compartilhado e no por usurio, ou seja, cada diretrio ou impressora poder ter uma senha nica conhecida pelos usurios autorizados. Esta opo geralmente usada p/ estaes de trabalho Linux, onde em diversos casos simplifica o acesso a dados locais quando necessrio. o security = user as permisses so dadas de acordo com o login do usurio, ou atravs dos grupos (@grupo). o security = server o SAMBA tentar validara senha do usurio enviando os dados para outro servidor SMB, como outro servidor SAMBA ou um servidor Windows. Deve-se incluir o parmetro .password server = x.x.x.x. na seo [global] do smb.conf. o security = domain usado se o Host for adicionado a um Domnio Windows atravs do comando smbpasswd. Neste caso as informaes de usurio e senha sero enviadas para o PDC da rede, exatamente como o servidor NT faria. Note que necessrio que a conta do usurio exista tanto no Linux quanto no servidor primrio (mais adiante isso ser explicado de forma detalhada).

os level este parmetro no obrigatrio se voc no possui um servidor Linux ou Windows na rede, mas deve ser usado caso tenha um ou mais. A varivel um nmero de 1 a 255, onde 65 a mesma varivel utilizada pelo servidor Windows. Especifique um nmero maior que este (como 100 por exemplo) para garantir que o servidor SAMBA seja eleito na escolha de validao do login das estaes. announce as permite especificar o tipo de servidor NetBios (nmbd) que ser divulgado na rede. As opes aceitas pelo SAMBA: "NT Server", "NT Workstation", "Win95" ou "WfW". domain logons usado para validar o login na rede, apenas para estaes Windows. logon script indica qual arquivo de logon script ser executado para os usurios. A varivel %u corresponde ao usurio na rede. Deve tambm ser criado um compartilhamento de nome [netlogon] apontando para o diretrio dos scripts. logon path indica o caminho do perfil remoto do usurio. A varivel %L corresponde ao nome do servidor NetBios (que pode ser o prprio SAMBA). O logon path til quando usurios costumam 83

efetuar logon em mais de um Host na rede, pois seu perfil trazido com o logon. No caso do exemplo, o diretrio "Profiles" deve conter os scripts (em formato Microsoft usando NET USE e etc) e os scripts devem ser criados com o notepad do Windows por exemplo, a fim de conservar o formato do arquivo. domain master indica se o Host ser o Domain Master Browser da rede inteira (WAN). local master indica se o Host ser o Master Browser da rede local. preferred master. Este parmetro fora a eleio do SAMBA como Master Browser para o workgroup. recomendvel utilizar este parmetro em conjunto com o "domain master = yes" para garantir a eleio. Mas tome cuidado: se voc possui uma rede com servidores Windows e SAMBA e j possui um servidor como Domain Master, no use esta opo e deixe o parmetro "os level = 65" para haver equilbrio. guest account o SAMBA trabalha melhor em redes Microsoft com a existncia de uma conta guest (visitante em ingls). Por padro a conta usada nobody (a mesma utilizada pelo Apache). wins server indica qual o servidor de Wins da rede. Se o prprio Host for o servidor de Wins ento no utilize este parmetro, pois haver um loop e o sistema travar! wins support permite ao SAMBA ser o servidor de Wins na rede. Isto significa que o SAMBA ter uma tabela com o ambiente completo da rede, garantindo que as estaes tenham acesso a estas informaes e ganho em velocidade para encontrar e acessar os compartilhamentos e impressoras. O Wins Server deve ser especificado na configurao de rede (TCP/IP) das estaes, indicando o endereo IP do servidor. keep alive Como mquinas rodando Windows tendem a travar com o passar do tempo, este parmetro usado para verificar o estado da conexo, evitando trfego desnecessrio na rede. Tambm pode ser usado para estaes Linux. debug level Parmetro usado para dar flexibilidade a configurao do sistema. Permite ao SAMBA trabalhar corretamente com algumas situaes de erro, por exemplo. winpopup command Especifica qual comando ser executado quando o servidor receber mensagens Winpopup. Aqui, muitas opes podem ser usadas de acordo com a preferncia do Administrador. Se sua rede utiliza mensagens deste tipo, interessante definir um comando para o parmetro, evitando assim possveis mensagens de erro para quem enviou a mensagem ao servidor. log file Indica o arquivo de log do SAMBA. A varivel %u corresponde ao nome de logon do usurio. O samba por padro gera arquivos de log em /var/log/samba que indicam por exemplo os

84

horrios de logon dos usurios, quem acessou determinado arquivo, etc. Esteja atento para estas informaes para consultas quando necessrio. null passwords Indica se ser ou no possvel que usurios tenham senha nula de logon (logon sem senha). unix password sync Se este parmetro for ativado (= yes) ento clientes SMB (como estaes Windows) podero trocar sua senha de login. socket options Este parmetro permite configuraes extras para o protocolo, possibilitando uma melhor performance do servidor em lidar com os pacotes na rede. printing pelo Linux. Indica qual o sistema de impresso padro utilizado Indica o arquivo para busca das definies Disponibiliza as impressoras para a rede.

printcap name das impressoras. load printers

hosts allow Indica quais mquinas tem acesso ao servidor SAMBA. Pode-se utilizar o endereo IP ou o nome da mquina. Para garantir acesso a toda uma rede por exemplo, escreva: "hosts allow = 192.168.1.". Este parmetro deve ser usado preferencialmente nas demais sees, mas tambm pode ser usado na seo Global. hosts deny Como em "hosts allow", mas para restringir o acesso ao servidor SAMBA.

B.1.2.

Seo [homes]

Define os parmetros para as pastas pessoais dos usurios na rede (home dir): comment comentrio para este compartilhamento. public tambm conhecido como "guest ok", permite ou no acesso de outros usurios. browseable Define se o compartilhamento ser ou no visvel para o Ambiente de Rede. Estaes Windows95 verso 4.00.950-C no aceitam esta opo, onde uma possvel soluo utilizar o nome do compartilhamento seguido de $ (teste$ por exemplo), como faz-se no Windows. writeable Indica se o usurio poder ou no escrever em sua pasta pessoal (home dir).

85

B.1.3.

Demais Sees [shares]

Correspondem aos compartilhamentos presentes na rede. Os parmetros abaixo so apenas alguns dos possveis que podem ser utilizados: comment Comentrio para o compartilhamento. path Caminho do diretrio compartilhado. valid users Este parmetro usado para destacar quem ter acesso ao compartilhamento na rede. importante destacar que estaes Win95/98/Me tm diferenas entre si que em muitas situaes representam um problema para acesso e segurana. Acontece algumas vezes de voc definir o "write list" e o "read list" corretamente mas mesmo assim usurios do "read list" conseguem escrever no compartilhamento (!). Para resolver este problema, inclua o "valid users" indicando os usurios que tm acesso e em seguida inclua o "write list" e o "read list" conforme sua necessidade. writeable Indica se ser ou no possvel criar ou excluir arquivos ou diretrios do compartilhamento. public / guest ok acesso de outros usurios. Indica se ser ou no permitido o

browseable Define se o compartilhamento ser ou no visvel para o Ambiente de Rede do Windows (apresentado na rede). write list Define os usurios e/ou grupos com acesso de escrita no compartilhamento. Para mais de um usurio, separe os nomes por vrgula(user1, user2, etc) e para grupos utilize @ antes do nome do grupo. read list Como em write list, mas define quem ter permisso de apenas leitura. force create mode Diz ao SAMBA para forar o tipo de permisso dos arquivos criados (o mesmo que usar o chmod). Esta permisso tem menor prioridade que os parmetros write list e read list. force directory mode O mesmo que force create mode, mas para os diretrios criados no compartilhamento. admin users Indica quais so os usurios com permisso completa para o compartilhamento (permisso de root). copy Permite copiar os parmetros de outra seo, como um template por exemplo, til se utiliza compartilhamentos semelhantes. Para alterar parmetros basta inform-los na seo atual. hosts allow Indica quais mquinas podem acessar o compartilhamento. Pode-se utilizar o endereo IP ou o nome da mquina. Para garantir acesso a toda uma rede classe C por exemplo, escreva: "hosts allow = 192.168.1.".

86

hosts deny Como em "hosts allow", mas para restringir o acesso ao compartilhamento. max connections Permite especificar o nmero mximo de conexes simultneas ao compartilhamento. max disk size Permite especificar qual o limite de espao em disco que o compartilhamento pode utilizar. Este valor definido em Mb (megabytes).

87

APNDICE C. VARIVEIS PR-DEFINIDAS


Abaixo temos variveis que podem ser usadas em parmetros: %S nome do Servio (compartilhamento) atual. %u nome do usurio. %g nome do grupo. %H nome do diretrio pessoal do usurio (home dir). %m nome da mquina cliente fornecido pelo NetBios. %L nome do servidor NetBios, permitindo que a configurao desejada seja alterada de acordo com o cliente que vai acessar o sistema. %M nome Internet da mquina cliente. %a sistema Operacional da mquina remota, onde os reconhecidos so WfW, Win95, Win2000. %I o endereo IP da mquina cliente. %T data e horrio. %v verso do Samba

88

You might also like