linux - samba (pt_br)

88
Samba: Integração Unix e Windows ® Alexandre Folle de Menezes Carlos E. Morimoto David Wood Elvis Pfützenreuter Victor F. F. Zucarino Tradução Oficial Alfamídia Alexandre Folle de Menezes Versão 1.3, setembro/2002.

Upload: alfredo-faria

Post on 05-Aug-2015

201 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Linux - Samba (Pt_BR)

Samba:Integração Unix e Windows®

Alexandre Folle de MenezesCarlos E. Morimoto

David WoodElvis Pfützenreuter

Victor F. F. Zucarino

Tradução Oficial AlfamídiaAlexandre Folle de Menezes

Versão 1.3, setembro/2002.

Page 2: Linux - Samba (Pt_BR)
Page 3: Linux - Samba (Pt_BR)

As marcas registradas utilizadas no decorrer deste livro são usadasunicamente para fins didáticos, sendo estas propriedade de suas respectivascompanhias.

A Alfamídia não assume qualquer responsabilidade por erros ou omissões, oupor danos resultantes do uso das informações contidas neste livro.

Parte dos capítulos 1 e 3, mais os capítulos 6 e 14, e o Apêndice A sãoadaptações do texto:

Manual de Configuração do SAMBACopyright © 2001 – Victor F. F. Zucarino <[email protected]>Fonte: http://geocities.yahoo.com.br/vffzbr/manual.html

Parte dos capítulos 1 e 3, mais os capítulos 4, 5, 7 e 9 são adaptações dotexto:

SMB-HOWTOCopyright © 1996-1999 – David Wood <[email protected]>.Fonte: http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/SMB-HOWTO.html

O capítulo 2 é uma adaptação do texto:

Samba: Servidor NetBIOS para UnixCopyright © 1999 – Elvis Pfützenreuter <[email protected]>Fonte: http://www.linux.trix.net/samba_intro.htm

O capítulo 13 é uma adaptação do texto:

Entendendo e utilizando o LinuxCopyright © 1999 – Carlos E. Morimoto <[email protected]>Fonte:http://www.guiadohardware.net/tutoriais/entendendo_e_utilizando_o_linux/26.asp

Parte do capítulo 1 e os capítulos 8, 9, 11 e 12 foram escritos por:

Copyright © 2002 por Alexandre Folle de Menezes <[email protected]>

Tradução para português - Brasil, 2002:

Alfamídia LtdaRua Félix da Cunha, 818Porto Alegre - RS - BrasilFone/Fax: +55 (51) 3346-7300E-mail: [email protected]: http://www.alfamidia.com.br

Esta apostila é uma coletânea de textos com licença GNU ou livres

Page 4: Linux - Samba (Pt_BR)

4

encontrados na Internet, conforme referências acima.

Este material foi totalmente montado com fins didáticos, sem objetivocomercial. Foram acrescentados exemplos e exercícios desenvolvidospela Alfamídia Ltda.

Page 5: Linux - Samba (Pt_BR)

CONTEÚDO

CONTEÚDO ................................................................................................................... 5

1 INTRODUÇÃO ........................................................................................................ 9

1.1 CONCEITOS INICIAIS............................................................................................. 101.2 HISTÓRICO DO SAMBA .......................................................................................... 101.3 CONHECENDO O SAMBA........................................................................................ 111.4 INFORMAÇÕES ADICIONAIS................................................................................... 12

2 O PROTOCOLO NETBIOS ................................................................................. 13

2.1 O QUE É O NETBIOS............................................................................................. 132.2 NAVEGADOR-MESTRE LOCAL (LOCAL MASTER BROWSER) ................................. 152.3 NAVEGADOR-MESTRE DO DOMÍNIO (DOMAIN MASTER BROWSER) ..................... 162.4 ULTRAPASSANDO AS FRONTEIRAS DA REDE LOCAL ............................................. 162.5 SERVIDOR WINS................................................................................................... 172.6 A DANÇA DA COMUNICAÇÃO INTER-REDES.......................................................... 182.7 AUTENTICAÇÃO DE USUÁRIOS .............................................................................. 202.8 SENHAS CRIPTOGRAFADAS ................................................................................... 21

3 INSTALAÇÃO ....................................................................................................... 22

3.1 PACOTES RPM...................................................................................................... 223.2 PACOTES TAR ........................................................................................................ 22

4 EXECUTANDO OS DAEMONS.......................................................................... 24

5 CONFIGURAÇÃO MÍNIMA ............................................................................... 27

5.1 TESTE DO ARQUIVO DE CONFIGURAÇÃO ............................................................. 28

6 ACESSANDO SERVIDORES ATRAVÉS DE ESTAÇÕES LINUX................ 30

6.1 O SMBCLIENT ........................................................................................................ 306.2 O SMBPASSWD .......................................................................................................... 316.3 O SMBSTATUS .......................................................................................................... 326.4 O TESTPRNS ............................................................................................................ 326.5 EXEMPLO DE LOGIN SCRIPT PARA ESTAÇÕES WINDOWS ................................... 34

7 COMPARTILHAMENTO DE DISCOS.............................................................. 35

7.1 COMPARTILHAMENTO DE DISCO LINUX COM MÁQUINAS WINDOWS.................. 357.1.1 CONFIGURAR O SAMBA PARA USAR SENHAS CRIPTOGRAFADAS........................... 367.1.2 CONFIGURAR O WINDOWS PARA NÃO USAR SENHAS CRIPTOGRAFADAS .............. 377.2 COMPARTILHAMENTO DE DISCO WINDOWS COM MÁQUINAS LINUX.................. 387.2.1 O PACOTE SMBFS.................................................................................................. 40

Page 6: Linux - Samba (Pt_BR)

6

8 DIFERENÇAS ENTRE SISTEMAS DE ARQUIVOS ....................................... 42

8.1 OCULTANDO E VETANDO ARQUIVOS.................................................................... 428.1.1 OPÇÃO HIDE DOT FILES ..................................................................................... 428.1.2 OPÇÃO HIDE FILES ............................................................................................. 428.1.3 OPÇÃO VETO FILES ............................................................................................. 428.1.4 OPÇÃO DELETE VETO FILES = YES|NO ............................................................. 438.1.5 OPÇÃO DONT DESCEND ......................................................................................... 438.1.6 OPÇÃO UNIX REALNAME = YES|NO..................................................................... 438.2 LINKS..................................................................................................................... 438.3 PERMISSÕES E ATRIBUTOS ................................................................................... 44

9 COMPARTILHAMENTO DE IMPRESSORAS................................................ 45

9.1 COMPARTILHAMENTO DE IMPRESSORA LINUX COM MÁQUINAS WINDOWS....... 459.2 COMPARTILHAMENTO DE IMPRESSORA WINDOWS COM MÁQUINAS LINUX....... 48

10 O WINS NO SAMBA............................................................................................. 59

10.1 O DAEMON NMBD................................................................................................... 5910.2 O SAMBA COMO CLIENTE WINS ....................................................................... 5910.3 O SAMBA COMO SERVIDOR WINS ..................................................................... 60

11 O SAMBA ATUANDO COMO PDC ................................................................... 61

11.1 DOMÍNIOS DO WINDOWS .................................................................................... 6111.2 CONFIGURANDO O SERVIDOR SAMBA ................................................................ 6111.2.1 CLIENTES WINDOWS 9X .................................................................................... 6111.2.2 CLIENTES WINDOWS NT ................................................................................... 6211.2.2.1 Criando contas confiáveis (trusted accounts) ................................................ 6311.3 LIMITAÇÕES DO SAMBA NA INTEGRAÇÃO COM WINDOWS NT......................... 64

12 ARQUIVOS DE LOG DO SAMBA...................................................................... 65

12.1 OPÇÃO LOG FILE ................................................................................................. 6612.2 OPÇÃO MAX LOG SIZE ......................................................................................... 66

13 CONFIGURANDO O SAMBA REMOTAMENTE ........................................... 67

13.1 UTILIZANDO O SWAT ........................................................................................ 6713.2 ACESSANDO COMPARTILHAMENTOS DE MÁQUINAS WINDOWS......................... 7113.3 CONFIGURANDO MANUALMENTE ....................................................................... 73

14 CONSIDERAÇÕES ............................................................................................... 75

APÊNDICE A. LICENÇA DE PUBLICAÇÃO LIVRE........................................ 77

APÊNDICE B. CONFIGURAÇÃO GERAL.......................................................... 80

B.1. CONHECENDO OS PARÂMETROS.......................................................................... 82

Page 7: Linux - Samba (Pt_BR)

7

B.1.1. SEÇÃO [GLOBAL]............................................................................................... 82B.1.2. SEÇÃO [HOMES]................................................................................................. 85B.1.3. DEMAIS SEÇÕES [SHARES]................................................................................ 86

APÊNDICE C. VARIÁVEIS PRÉ-DEFINIDAS.................................................... 88

Page 8: Linux - Samba (Pt_BR)
Page 9: Linux - Samba (Pt_BR)

9

1 INTRODUÇÃO

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 máquina Linux atue como servidorou estação de trabalho em redes heterogêneas. Ainda que este documentoseja voltado para Linux, o Samba roda na maioria dos sistemas Unix ecompatíveis.

Antes de começar vamos entender o que é o Samba. Em uma rede énecessário compartilhar dados, por isso temos que pensar em obter o máximoem qualidade do Sistema/Aplicação que será o responsável por esta tarefa.

Com o SAMBA é possível compartilhar diretórios, impressoras, acessararquivos na rede exatamente como em redes Microsoft. Mas neste caso, seuservidor é um Linux rodando uma aplicação específica. O Windows NT e o2000 (assim como o NetWare 5 e outros presentes no mercado) sãoreconhecidos mundialmente por sua segurança e escalabilidade, mas oSAMBA possui muitas vantagens que podem se transformar em soluções eeconomia para sua empresa. Confira:

• Permite compatibilidade com estações Windows (de WfW a 2000)e servidores WinNT 4.0 e 2000. Entre servidores e estaçõesLinux (com Interface Gráfica por exemplo) a compatibilidade étotal.

• O SAMBA é 100% configurável, com a grande vantagem decentralizar esta configuração em um único arquivo, o smb.conf.Sem dúvida é muito interessante ter a possibilidade de restaurartoda a configuração que disponibiliza seu Servidor de Arquivos(inclusive as permissões de acesso) através do backup de apenas1 arquivo, em casos de desastre. Porém isso não quer dizer quenão seja necessário o backup de outros arquivos deconfiguração...

• Todo o SAMBA pode ser configurado remotamente através deacesso seguro, além do recebimento por email de informações doestado do servidor (bastando utilizar um script específico quebusca informações nos arquivos de log e cria um arquivo quepode ser enviado por email).

• Em se falando de economia não há o que discutir: o Linux e oSAMBA estão disponíveis para download na Internet sem ônusalgum para qualquer usuário comum ou empresa que se interesseem utilizá-lo, sem custos com licenças ou atualizações.

• As mais recentes distribuições já trazem o SAMBA como padrão,mas seu download e atualizações estão disponíveis emhttp://www.samba.org/

• O suporte está disponível 24h por dia, o ano todo: além do própriosite do SAMBA existem milhares de sites e listas de discussãodedicadas ao assunto, entre outras documentações e artigos emsites de renome por Administradores e Engenheiros de Redes

Page 10: Linux - Samba (Pt_BR)

10

Linux. Muita coisa já está em nosso idioma facilitando osiniciantes e interessados em leitura. Muitos sites nacionais sãoespecializados em Linux e Segurança para Linux.

O Samba vem substituindo vários servidores Windows, OS/2, Netware eUnix. Se for necessária uma solução estável e segura para Servidor deArquivos da rede, o SAMBA é uma grande opção. Há também a vantagem deser licensiado pela GPL, com livre distribuição, sem limite de usuários oucustos por licença.

1.1 Conceitos IniciaisO protocolo SMB é usado pelo Microsoft Windows 3.11, Windows NT e

Windows 95/98 para compartilhar discos e impressoras. Usando o conjunto deferramentas do Samba de Andrew Tridgell ([email protected]),máquinas UNIX (incluindo Linux) podem compartilhar discos e impressorascom máquinas Windows. As ferramentas smbfs de Paal-Kr. Engstad([email protected]) e Volker Lendecke ([email protected])habilitam máquinas Unix a montar compartilhamentos SMB de hospedeirosWindows ou SAMBA.

1.2 Histórico do SambaOs sistemas operacionais da série Windows seguem a tradição iniciada

ainda nos tempos do DOS de compartilhar seus recursos, como arquivos,impressoras e outros, em rede através de um conjunto de protocolosatualmente conhecido pela sigla CIFS (Common Internet File System), mas queoriginalmente recebia o nome de Server Message Block (SMB) - de fato, oSMB continua vivo, incluído nas especificações do CIFS.

O conjunto SMB/CIFS pode ter uma série de desvantagens técnicas,mas tem a seu favor uma circunstância especial: a quantidade de usuários, jáque todos os computadores com Windows, desde a versão 3.11, podem serfacilmente convertidos em clientes ou servidores CIFS, e cujo número éimenso.

Entretanto, o SMB não tinha suporte nativo no Unix, o que dava margema todo tipo de problemas para os administradores de redes mistas, pois tinhamque instalar clientes Unix de protocolos "tradicionais" como NFS, LPD, nasmáquinas Windows ou moviam os serviços para os servidores NT, que, naépoca, ainda eram uma novidade, abrindo mão da robustez e das demaisvantagens.

É neste ponto que surge em nosso cenário o estudante australianoAndrew Tridgell, que na busca por razões para adiar o início de sua tese,resolveu entender como funcionava o Pathworks, um servidor de arquivos daDigital. A conseqüência direta foi o surgimento de um sistema capaz deexportar sistemas de arquivos de máquinas Unix, de forma que pudessem seracessados a partir de máquinas DOS rodando o cliente do Pathworks. EmboraTridgell não soubesse, o Pathworks utilizava justamente o mesmo protocolo do

Page 11: Linux - Samba (Pt_BR)

11

Windows, o SMB, e logo outros usuários descobriram que podiam usar omesmo software para se comunicarem com máquinas Windows de suas redes.Eles avisaram Tridgell, mas por estranho que pareça, ele não acreditou!

Meses mais tarde, Tridgell instalou uma rede em sua própria casa, comcomputadores rodando Linux e Windows, e resolveu experimentar o que elepróprio julgava impossível. Como podemos imaginar, ele ficou bastantesurpreso ao ver que estava errado. Aliás, a documentação do Samba diz queaté hoje a esposa dele imprime documentos, a partir do Windows, naimpressora conec-tada à máquina Linux de Andrew.

A partir daí, o projeto se desenvolveu rapidamente. Surgiu o nomeSamba, que inclui as 3 letras do protocolo SMB, e outros integrantes, comdestaque para Jeremy Allison, se juntaram à equipe de desenvolvimento enovas funcionalidades foram adicionadas. O software se desenvolveu a pontode realizar todas as tarefas que veremos a seguir, com qualidade eestabilidade superiores a algumas das alternativas. De fato, já em 1998 a SGIchegou a afirmar publicamente que seus servidores Origin rodando Sambaapresentam performance superior à de um servidor Windows - o que equivale adizer que o servidor de arquivos Windows mais rápido do mundo não rodavaWindows...

O Samba não é usado apenas nos servidores Linux. De fato, empresascomo a SGI, Veritas, HP, Cobalt e Whistle comercializam produtos que incluemsuporte a compartilha-mentos baseados no Samba. Mas ele sempre esteveintimamente ligado ao Linux, desde a rede doméstica do seu criador, passandopela escolha da licença GPL de sua distribuição e pela existência de suporteexclusivo para o Linux, e não para outros tipos de Unix, em algunscomponentes do sistema, como o smbfs. O que poucos sabem é que AndrewTridgell teve participação muito importante em um momento histórico dosistema: foi ele quem levou Linus Torvalds a um zoológico em Canberra, dandoa ele a oportunidade de ser bicado por um pingüim - fato que teve papel vital,anos mais tarde, na escolha desta ave como símbolo do Linux.

1.3 Conhecendo o SambaO Samba oferece a maior parte das funcionalidades dos servidores

Windows, sem a necessidade de adquirir suas dispendiosas licenças e, melhordo que isso, sem expor sua rede às famosas telas azuis da morte, nem ànecessidade de reinicializações a cada mudança de configuração. O Samba éum produto maduro, flexível e muito bem documentado.

Pode parecer difícil de acreditar a princípio, mas as máquinas Windowsde sua rede irão "ver" o seu servidor Linux com Samba como se fosse outramáquina Windows - incluindo ícones na janela Ambiente de Rede, apossibilidade de mapear drives remotos, imprimir nas impressoras do servidor,e muito mais.

O seu servidor Linux com Samba pode até atuar como o controladorprimário do domínio (PDC), tarefa normalmente exclusiva do Windows NT 4Server. Encontramos na literatura relatos de domínios com PDCs baseadosem Samba, nos quais conviviam simultânea e pacificamente máquinas rodando

Page 12: Linux - Samba (Pt_BR)

12

NT Workstation 4.0, com o service pack 6a; Windows 2000 Professional, com oservice pack 1; Win-dows 2000 Server, com o service pack 1; e até o Windows95. A inclusão de cada uma destas máquinas no domínio pode ser feita comas próprias ferramentas de rede do Windows, desde que o Samba esteja con-figurado para aceitar este recurso.

O Samba também inclui ferramentas que permitem que o Linux atuecomo cliente em uma rede com servidores Windows. Assim, você podeimprimir a partir do Linux naquela impressora a jato de tinta conectada a ummicro rodando Win-dows 98, ou montar, "mapear", um diretório disponibilizadopelas máquinas Windows. Técnicos experientes no projeto de redes comservidores Windows NT irão querer saber mais detalhes técnicos e adocumentação é pródiga nisso. Alguns, porém, podem ser antecipados aqui:

É importante notar que, ao menos até a versão 2.2, quando atua co-moPDC, o Samba não suporta a presença de um BDC nem relações de confiançaentre domínios ("trust relationships"), o que impede o recurso de Single Signonpara usuários de múltiplos domínios.

O Samba também inclui um servidor de nomes NetBIOS (WINS), quealém de facilitar as conexões em redes roteadas, dá suporte ao recurso de"browsing" - a ação de localizar e exibir todos os computadores e recursoscompartilhados de sua rede ou domínio. Você pode até mesmo configurar oSamba como o Master Browser de sua rede, se desejar.

1.4 Informações adicionaisMais documentação sobre o Samba está disponível no Samba Web site,

localizado em http://www.samba.org/. Você também pode tentar o newsgroupcomp.protocols.smb.

Para mais informações, favor veja os seguintes documentos:

• The Samba documentation, disponível como parte da distribuiçãoSamba. A distribuição está disponível em: ftp://ftp.samba.org/

• The Linux Printing HOWTO.

• The Print2Win Mini-HOWTO.

• Protocol Standard For A NetBIOS Service On A TCP/UDPTransport.

• As RFCs que definem os protocolos:o RFC 1001 Concepts and Methods.o RFC 1002 Detailed Specifications.

Page 13: Linux - Samba (Pt_BR)

13

2 O PROTOCOLO NETBIOS

O protocolo NetBIOS foi concebido para ser simples de configurar e usarem redes pequenas. Porém, essa aparente simplicidade desaparece emqualquer instalação que contém duas ou mais redes Ethernet. É o que euchamo de "curva de aprendizado exponencial", característica que o NetBIOScompartilha com o Windows, Visual Basic e assim por diante. Outros procolos(TCP/IP) e softwares (Linux) obrigam seus usuários a ter um conhecimentorelativamente profundo por mais simples que seja a tarefa; porém nãoreservam "surpresas" para instalações de complexidade crescente. Portanto,desenham uma curva de aprendizado logarítmica, de que tanto gostam osLinuxers.

Erro! Argumento de opção desconhecido.Não obstante, o NetBios -assim como o DHCP, para quem o conhece - tem o seu valor, e, uma vezdominados seus conceitos, pode ser útil e muito adequado até mesmo emredes sem máquinas Windows.

2.1 O que é o NetBIOSErro! Argumento de opção desconhecido.NetBIOS é um protocolo de

transporte e de sessão, de uso geral, mas primariamente destinado a serviçosde arquivo e impressão. Nesse último aspecto, é semelhante ao protocoloNCP da Novell. Porém o NCP é um protocolo de sessão; o transporte é feitopelo protocolo subjacente IPX (embora será muito difícil encontrar umainstalação onde IPX e NCP não estejam "empilhados").

Erro! Argumento de opção desconhecido.Para quem não sabe,protocolo de transporte é aquele que leva UM pacote de rede da origem até odestino. Protocolo de sessão encarrega-se de dividir seqüênciasarbitrariamente longas de dados em pacotes (então transportados peloprotocolo de transporte) e remontá-las no destino, possivelmente ordenando aretransmissão de pacotes perdidos etc. No protocolo TCP/IP, o IP éencarregado do transporte e o TCP, da sessão.

Erro! Argumento de opção desconhecido.Como o protocolo NetBios écapaz de cuidar do transporte, não precisa ser "carregado" por nenhum outroprotocolo; pode ser constituído como pacote de rede e transmitido. É isso queo protocolo NetBEUI da Microsoft faz - pega os pacotes NetBIOS in natura etransmite-os rede afora. Porém, o NetBIOS não é nativamente capaz de serroteado; portanto, fica "preso" à rede local.

Erro! Argumento de opção desconhecido.Uma possível solução éprogramar os roteadores para que retransmitam pacotes NetBIOS às outrasredes; assim, o pacote NetBIOS/NetBEUI acabará atingindo o seu destino, poisé recebido e analisado por absolutamente todos os computadores daorganização. Essa solução tem o inconveniente de gerar um tráfego de redeinfernal, e ainda mais infernal de a comunicação inter-redes for feita através delinks de baixa velocidade.

Page 14: Linux - Samba (Pt_BR)

14

Erro! Argumento de opção desconhecido.Outra solução é encapsularo NetBIOS em um protocolo de transporte que seja roteável, como o IPX ou oTCP/IP. De fato, a forma mais comum de se usar serviços NetBIOS hoje éatravés de TCP/IP - e é a única forma suportada pelo Samba. Como oNetBIOS não é nativamente roteável e não aceita o conceito de endereço IP ouIPX, várias extensões foram criadas para torná-lo mais adequado a umainstalação com diversas redes locais. Veremo-nas todas ao longo deste texto.

Erro! Argumento de opção desconhecido.Como o Samba suportaapenas NetBIOS encapsulado em TCP/IP, daqui por diante não falaremos maissobre outras encapsulaçòes. Apenas vale lembrar que, ao configurar suasmáquinas Windows, procure não misturar encapsulamentos diferentes. i.e.usar NetBIOS encapsulado em IPX, TCP/IP e NetBEUI todos ao mesmotempo. Isso pode ser fonte de inúmeros problemas intermitentes e dores decabeça. Tire o NetBEUI da lista de protocolos suportados e, se precisar usarIPX, certifique-se de que não está habilitado o transporte de NetBIOS sobreIPX.

Erro! Argumento de opção desconhecido.Como o NetBIOS se obrigaa cuidar do transporte, e ao mesmo tempo não suporta números IP, eletrabalha com técnicas de broadcasting. Uma vez lançado um pacote na redelocal, todas as máquinas receberão e analisarão esse pacote; apenas aquelaque for a máquina-destino deverá assimilar o pacote. Obviamente existe umaidentificação da máquina de destino, que é um NOME de até 15 caracteres(doravante chamado de "nome NetBIOS da máquina") e não um endereçonúmérico. Isso é muito diferente de uma comunicação TCP/IP "normal", ondeas próprias placas de rede determinam se o pacote lhes pertence ou não, semenvolver processamento de software.

Erro! Argumento de opção desconhecido.O TCP/IP permite fazerbroadcasting de uma forma muito simples: supondo uma rede local10.30.0.0/16, o endereço de broadcasting é 10.30.255.255. Um pacote IPemitido com esse endereço será analisado a nível de software por todas asmáquinas daquela rede local. É exatamente esse expediente que o NetBIOSutiliza para forçar broadcasting mesmo quando encapsulado em TCP/IP.

Erro! Argumento de opção desconhecido.O uso massivo debroadcasting torna o NetBIOS muito simples de usar em redes isoladas, poisnão é necessário saber muito sobre endereços IP para que as máquinasenxerguem umas às outras. É claro que existe o custo (relativamentepequeno) de processamento, pois todas as máquinas tem de analisar todos ospacotes NetBIOS a nível de software.

Erro! Argumento de opção desconhecido.Como já foi dito, obroadcasting não combina muito bem com instalações onde há várias redeslocais interligadas por roteadores. Os pacotes de broadcast não conseguemultrapassar a fronteira do roteador. O contorno dessa limitação está descrito notópico 4.

Page 15: Linux - Samba (Pt_BR)

15

2.2 Navegador-mestre local (local master browser)Erro! Argumento de opção desconhecido.Um dos aspectos mais

interessantes e desconhecidos do NetBIOS está na "eleição" do navegador-mestre local, descrito na documentação do Samba como local master browser,e doravante aqui chamado de "mestre". Periodicamente, os computadores deuma rede local trocam pacotes para determinar quem tem o maior OS level. OOS level (doravante chamado de "nível") é nada mais que um número de 0 a255. Se não me falha a memória, o nível do Windows 95 é 001 (decimal!), o doWindows NT é 032, e o nível padrão (porém alterável) do Samba é 033.

Erro! Argumento de opção desconhecido.O computador com maiornível vencerá a eleição. Se houver mais de um computador com o mesmonível, haverá um desempate por critérios aleatórios. Mesmo que a rede tenhaapenas computadores Windows 95, todos com um número de nível muitobaixo, um deles acabará sendo o escolhido.

Erro! Argumento de opção desconhecido.O computador vencedorficará responsável em compilar uma lista das máquinas presentes na redelocal. Não surpreendentemente, ele usará técnicas de broadcasting para essefim. Os demais computadores obterão essa lista junto ao mestre. Éjustamente essa lista que aparece na janela "Ambiente de Rede" do Windows.

Erro! Argumento de opção 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 desbravaa rede por conta própria, mas NÃO é isso que acontece.

Erro! Argumento de opção desconhecido.Agora a primeira "pedra"onde alguém pode tropeçar. O Windows NT não gosta de perder a eleiçãopara o Samba se ambos tiverem o mesmo OS level. Portanto, nunca configureo Samba com o mesmo OS level que o Windows NT. Configurar o Samba paraque ele nunca vença a eleição para mestre, ou então use o maior nível possível(255).

Erro! Argumento de opção desconhecido.Note que todo esseprocesso ocorre dentro de uma rede local. O fato de um computador ser omestre de uma rede (ainda) não lhe dá o poder de enxergar as demais redesda instalação. Isso é assunto para o tópico 4.

Erro! Argumento de opção desconhecido.Um detalheimportantíssimo: mesmo dentro de uma única rede local, haverá um mestrepara cada grupo de trabalho (workgroup). Portanto, se você quer que todas asmáquinas se enxerguem, tome o cuidado de configurá-las todas com o mesmogrupo de trabalho. Ou, se deseja isolar grupos de máquinas dentro de umarede isolada, configure deliberadamente com grupos diferentes.

Erro! Argumento de opção desconhecido.O sintoma mais aparentede um computador com grupo de trabalho configurado incorretamente é o fatode ele não enxergar nenhum computador na janela Ambiente de Rede; quandomuito, enxerga apenas o grupo de trabalho. Exemplo: o grupo de trabalho éVITARA e um computador está configurado para o grupo VITARE. Esse últimocomputador está num grupo isolado e tornar-se-á o mestre daquele grupo.Obviamente, a lista que ele mesmo compilou só contém um computador, pois

Page 16: Linux - Samba (Pt_BR)

16

as demais máquinas da rede estão em outro grupo de trabalho e elegeramoutro mestre.

Erro! Argumento de opção desconhecido.Se o computador-mestre fordesligado, alguma outra máquina procurará pelo mestre, e não o achará.Nesse caso, uma nova eleição é efetuada. Esse é um ponto interessante doNetBIOS: redundância automática.

2.3 Navegador-mestre do domínio (domain master browser)Erro! Argumento de opção desconhecido.Forçando um pouco os

conceitos, pode-se dizer que um domínio é um grupo de trabalho onde hajapelo menos um computador "responsável" por ele - é o mestre do domínio.(Temos aqui um conceito recursivo, eu acho.)

Erro! Argumento de opção desconhecido.No mundo Windows NT, omestre do domínio é o próprio PDC - primary domain controller. Já o Samba,que ainda não suporta completamente todas as funções de um controlador dedomínio NT1, pode ser explicitamente configurado para ser apenas onavegador-mestre do domínio.

Erro! Argumento de opção desconhecido.O mestre do domíniocompilará a lista de TODAS as máquinas do grupo de trabalho, mesmo queestejam em outras redes locais. Além disso, por ser uma máquina privilegiada,vencerá sempre as eleições para mestre da rede local, pois não faria sentidohaver um mestre local e um mestre de domínio separados.

Erro! Argumento de opção desconhecido.Deve haver APENAS UMmestre de domínio por domínio. Tenha em mente que o NT costuma serconfigurado em tempo de instalação para ser o mestre do domínio. Tomecuidado com isso ao instalar outras máquinas NT, e principalmente, nãoconfigure o Samba para ser mestre de domínio sem antes verificar asconfigurações dos servidores NT. Como não existe eleição para mestre dedomínio, a presença de mais de um mestre é fonte certa de problemas,principalmente se um dos pretensos mestres de domínio for NT.

Erro! Argumento de opção desconhecido.Agora, resta saber como omestre do domínio consegue descobrir os nomes das máquinas de fora darede local. As bases estão nos tópicos 4 e 5, e o mecanismo prático estádescrito no tópico 6.

2.4 Ultrapassando as fronteiras da rede localErro! Argumento de opção desconhecido.Como o NetBIOS utiliza-se

de broadcasting, fica restrito à rede local, pelo menos nas instalações "sérias".

1 Uma versão futura do Samba deve trazer suporte completo a controle

de domínio e BDCs.

Page 17: Linux - Samba (Pt_BR)

17

Para que o NetBIOS possa ultrapassar as fronteiras da rede local, trêsmecanismos são necessários:

Erro! Argumento de opção desconhecido.- capacidade de comunicar-se diretamente com outros computadores pelo número IP, pois só assim osroteadores aceitarão transportar os pacotes;

Erro! Argumento de opção desconhecido.- capacidade de traduzirnomes NetBIOS para números IP, para que o usuário não perca a comodidadede usar nomes NetBIOS;

Erro! Argumento de opção desconhecido.- capacidade de compilarlistas que contenham todos os computadores de todas as redes da instalação.

Erro! Argumento de opção desconhecido.A implementação daMicrosoft para o protocolo NetBIOS foi estendida de modo a cumprir o primeiroquesito, e uma extensão "externa" ao NetBIOS, denominada WINS, cumpre osdemais quesitos.

Erro! Argumento de opção desconhecido.Assim, modernamente oNetBIOS não depende mais exclusivamente do broadcasting para fazer otransporte. Se houver um mecanismo qualquer que identifique o número IP damáquina de destino, o pacote NetBIOS encapsulado em TCP/IP será mandadodiretamente ao IP do computador-destino, mesmo que esse IP esteja fora darede local, pois os roteadores serão capazes de transportá-lo. É possívelinclusive trafegar NetBIOS pela Internet pública !

Erro! Argumento de opção desconhecido.O mecanismo maisprimitivo de tradução de nomes NetBIOS para endereços IP é o arquivoc:\windows\lmhosts ou /etc/lmhosts. É uma lista pura e simples dos nomesNetBIOS com os endereços IP ao lado. Logo descobre-se as desvantagensdesse mecanismo: cada computador tem de ter a sua lista, as atualizaçõestambém precisam ser feitas em todas as máquinas, e os computadores dessearquivo não aparecem na janela Ambiente de Rede. O ideal seria que atradução funcionasse de modo análogo ao DNS.

2.5 Servidor WINSErro! Argumento de opção desconhecido.Entra o serviço WINS, que

opera de modo análogo ao DNS. Note que eu disse análogo, e nãosemelhante, nem paralelo, nem igual. O WINS é contactado diretamente pelonúmero IP - nada de broadcasting para localizar o servidor WINS, até porqueele não faz parte do NetBIOS em si.

Erro! Argumento de opção desconhecido.O WINS não tem umcadastro estático de computadores. Ele recebe informações de todos oscomputadores da instalação e, dinamicamente, vai formando uma lista de todosos computadores da rede: nomes NetBIOS, grupos de trabalho e osrespectivos endereços IP. O servidor WINS mantém cadastros de todas asmáquinas da instalação, independentemente do grupo de trabalho. Por issomesmo, deve haver apenas um servidor WINS na instalação inteira, mesmoque haja vários grupos de trabalho e/ou mestres de domínio.

Page 18: Linux - Samba (Pt_BR)

18

Erro! Argumento de opção desconhecido.NÃO confunda o servidorWINS com o mestre do domínio. Embora é comum rodar o WINS na própriamáquina que foi designada como mestre do domínio, é perfeitamente possívelque os dois residam em computadores separados!

Erro! Argumento de opção desconhecido.Também lembre-se quenão existe nenhuma integração automática entre DNS e WINS, mesmo queambos rodem no mesmo servidor. O fato de cadastrar o nome DNS de umcomputador não significa que o servidor WINS vá passar a conhecer oendereço IP do mesmo.

Erro! Argumento de opção desconhecido.Existem algunsmecanismos de fallback onde o nome NetBIOS é consultado junto ao servidorDNS se o servidor WINS não responder à consulta, mas a própriadocumentação do Samba desaconselha seu uso. Em grandes instalações commuitas estações de trabalho, é muito comum (e aconselhável) o uso de DHCP,o que torna o DNS completamente inútil para acesso inter-estações.

2.6 A dança da comunicação inter-redesErro! Argumento de opção desconhecido.O documento BROWSING-

Config.txt contém uma excelente descrição de como o mestre de domínioconsegue compilar a lista de todos os computadores de uma instalação.Considere a descrição a seguir uma cópia pálida e "mastigada".

Erro! Argumento de opção desconhecido.Suponha que haja trêsredes locais interligadas por roteadores: A, B e C. Suponha também que emcada rede haja cinco computadores, e que todos, independentemente dosistema operacional, ofereçam serviços NetBIOS. Suponha também que:

Erro! Argumento de opção desconhecido.- O nome do grupo detrabalho/domínio seja ACME;

Erro! Argumento de opção desconhecido.- O computador A2 seja omestre de domínio;

Erro! Argumento de opção desconhecido.- O computador A3 seja oservidor WINS e seu IP é 10.30.14.56;

Erro! Argumento de opção desconhecido.- Todos os computadoresestejam configurados corretamente e "saibam" que o endereço IP do servidorWINS é 10.30.14.56;

Erro! Argumento de opção desconhecido.- Os computadores A1, B1e C1 estejam rodando o Samba e, exceto por A1, estejam programados paravencer as eleições para mestre local.

Erro! Argumento de opção desconhecido.Tão logo os computadoressejam ligados, haverá eleições para mestre em cada uma das redes locais.Nas redes B e C, os computadores B1 e C1 vencerão. Na rede A, ocomputador A2 vencerá a eleição pois é o mestre do domínio e isso lhe dápreponderância sobre todas as outras máquinas da rede.

Page 19: Linux - Samba (Pt_BR)

19

Erro! Argumento de opção desconhecido.O mestre do domínio (A2)registrará o domínio junto ao servidor WINS (A3). Da mesma forma, todas asoutras máquinas registrarão seus nomes NetBIOS, grupos de trabalho enúmeros IP junto ao servidor WINS.

Erro! Argumento de opção desconhecido.Os computadorescomeçarão a anunciar a si mesmos por pacotes de broadcast. Atentos, osmestres locais compilarão uma lista das máquinas de cada rede. Nesseinstante, os mestres de cada rede local conterão as seguintes listas decomputadores:

Erro! Argumento de opção desconhecido.A2: -> A1, A2, A3, A4, A5Erro! Argumento de opção desconhecido.B1: -> B1, B2, B3, B4, B5Erro! Argumento de opção desconhecido.C1: -> C1, C2, C3, C4, C5Erro! Argumento de opção desconhecido.Até agora, nenhuma rede

tem conhecimento da existência das demais redes.Erro! Argumento de opção desconhecido.Cada um dos

computadores de todas as redes vai contactar o servidor WINS (A3) e registrar-se junto a ele. Nesse ponto, o servidor WINS conhece os nomes NetBios,grupos de trabalho e endereços IP de todas as máquinas. Como o WINSfunciona independente do mestre de domínio A2, este último continua com sualista incompleta.

Erro! Argumento de opção desconhecido.Cada mestre local (B1 eC1) contacta o servidor WINS e descobre o endereço IP do mestre de domínio(A2.). A seguir, o mestre local contacta o mestre do domínio e transmite a ele alista de todas as máquinas do grupo de trabalho. Em troca, o mestre dedomínio transmite ao mestre local a lista geral dos computadores do domínio.Supondo que os mestres locais B1 e C1 contactem o mestre de domínio A2 emordem, as listas em cada servidor ficarão assim:

Erro! Argumento de opção desconhecido.A2: -> A1, A2, A3, A4, A5,B1, B2, B3, B4, B5, C1, C2, C3, C4, C5

Erro! Argumento de opção desconhecido.B1: -> B1, B2, B3, B4, B5,A1, A2, A3, A4, A5

Erro! Argumento de opção desconhecido.C1: -> C1, C2, C3, C4, C5,A1, A2, A3, A4, A5, B1, B2, B3, B4, B5

Erro! Argumento de opção desconhecido.O servidor B1 contactou A2antes de C1. Naquele instante, A2 ainda não sabia que a rede C existia. Porisso, a lista do servidor B1 ficou prejudicada. Já o servidor C1 contactou omestre de domínio A2 quando este último já tinha recebido a lista da rede B.(Está claro que a lista da rede "A" tinha sido compilada pelo próprio mestre dodomínio A2.)

Erro! Argumento de opção desconhecido.Dentro de 15 minutos, osmestres locais contactarão novamente o mestre de domínio para retransmitir eatualizar as listas. Nesse momento, o mestre de domínio A2 já conhece a redeinteira, e o mestre local B1 poderá completar sua lista:

Erro! Argumento de opção desconhecido.A2: -> A1, A2, A3, A4, A5,B1, B2, B3, B4, B5, C1, C2, C3, C4, C5

Page 20: Linux - Samba (Pt_BR)

20

Erro! Argumento de opção desconhecido.B1: -> B1, B2, B3, B4, B5,A1, A2, A3, A4, A5, C1, C2, C3, C4, C5

Erro! Argumento de opção desconhecido.C1: -> C1, C2, C3, C4, C5,A1, A2, A3, A4, A5, B1, B2, B3, B4, B5

Erro! Argumento de opção desconhecido.Agora, todos oscomputadores da rede aparecerão na janela "Ambiente de Rede" de qualquerdas estações.

Erro! Argumento de opção desconhecido.Lembre-se sempre disto: alista de máquinas NÃO 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 fordesconectada, haverá um lapso de tempo durante o qual a máquina continuaráaparecendo nas listas (36 minutos), até que o mestre local da rede desligadafinalmente retire-a da lista e informe o fato ao mestre do domínio.

Erro! Argumento de opção desconhecido.Supondo agora que ocomputador C4 quer comunicar-se com o computador A5. Pela lista, ele sabeque o computador A5 existe, mas não sabe qual é seu endereço IP. Então, C4consulta o servidor WINS, obtém o endereço IP e contacta A5 diretamente,sem usar broadcast. Note bem aqui como o trabalho de compilação de listas éindependente do servidor WINS.

2.7 Autenticação de usuáriosErro! Argumento de opção desconhecido.O Samba suporta quatro

formas de autenticação de usuários, reguladas pela linha security = ...do arquivo /etc/smb.conf. Assuma, até segunda ordem, que estamosfalando de senhas não criptografadas.

Erro! Argumento de opção desconhecido.SHARE: Sem segurança.Todo e qualquer usuário será aceito. As operações de arquivo e impressãoserão executadas com as permissões do usuário UNIX associado ao hóspede(guest account = ...). Se você escolher essa modalidade, verifique se ousuário UNIX terá permissões suficientes para acessar arquivos e, se for ocaso, imprimir.

Erro! Argumento de opção desconhecido.USER: Segurança porusuário, local. A senha do usuário é reduzida a letras minúsculas econfrontada com a senha UNIX. Essa modalidade de segurança obriga que osusuários sejam cadastrados no Linux, e suas senhas sejam atribuídascorretamente. As operações sobre arquivos e de impressão serão feitas com apermissão do respectivo usuário UNIX. Todavia, pode-se abrir aos hóspedes oacesso a determinados volumes ou impressoras - para esses objetos, asegurança operará no estilo SHARE.

Erro! Argumento de opção desconhecido.SERVER: Segurança porusuário, remota. O Samba pega o nome de usuário e a senha, e autenticajunto a outro servidor, que poderá ser outro Linux rodando Samba, ou umWindows NT. Apesar da autenticação ser remota, ainda é necessário criar os

Page 21: Linux - Samba (Pt_BR)

21

usuários UNIX localmente em determinados casos. (Consulte a linha map toguest = Bad User do arquivo de configuração comentado.) DOMAIN:Segurança por usuário, remota. Praticamente idêntica à modalidade SERVER,porém convive com instalações mais complexas onde existem computadoresNT operando como PDCs (primary domain controllers) e BDCs (backup domaincontrollers). Nesse modo, mais de um servidor de autenticação pode serespecificado na linha password server do arquivo de configuração. Énecessário criar uma conta no servidor de domínio para que o Sambaidentifique a si mesmo junto ao NT.

2.8 Senhas criptografadasErro! Argumento de opção desconhecido.O Windows 98, bem como

versões mais recentes do Windows NT Workstation, transmitem senhascriptografadas no processo de autenticação. Isso torna a configuração doSamba bem mais complicada, especialmente na modalidade USER, pois eletem de armazenar as senhas num arquivo separado (/etc/smbpasswd),mantida por um utilitário não padrão do Unix (smbpasswd). O esquema deencriptação do NetBIOS é completamente diferente do Unix, portanto não hápossibilidade de usar as senhas armazenadas em /etc/passwd.

Erro! Argumento de opção desconhecido.A verdade é que as senhascriptografadas não adicionam quase nenhuma segurança ao NetBIOS, porrazões diversas. (Portanto, NÃO pense que trafegar NetBIOS na Internetpública é seguro, mesmo usando senhas criptografadas !!!) Sendo assim, poramor à comodidade, o melhor a fazer é configurar o Windows 98/NT para usarsenhas não criptografadas.

Erro! Argumento de opção desconhecido.Para fazer isso, você deveadicionar um item no Registro do Windows. Consulte o diretório/usr/samba*/docs. Lá você encontrará uns arquivos *.reg que, emconjunção ao REGEDIT do Windows, criam esses itens automaticamente nosdiversos "sabores" de Windows.

Page 22: Linux - Samba (Pt_BR)

22

3 INSTALAÇÃO

Para usar o Samba, suas máquinas devem estar num único segmentode rede ethernet usando o protocolo TCP/IP. O Samba não funcionará usandooutros protocolos de rede. Isto é geralmente fácil já que o Linux e o Windows95/98/NT vem com suporte TCP/IP de fábrica. No entanto, se você estiverusando máquinas Windows 3.x, elas devem ter um pilha TCP/IP e as DLLs doWin32s. Ambos estão disponíveis no site Web da Microsoft(http://www.microsoft.com).

Note também que serviços SMB não podem ser utilizados através deroteadores. Se você quer alguma coisa desse tipo, você terá que configurarum túnel IP, o que está além do escopo deste documento.

Se a distribuição utilizada já traz o SAMBA (como o Conectiva, RedHat,Mandrake, Debian, TechLinux, Suse, praticamente todas hoje em dia!), ainstalação não é necessária. Se deseja atualizá-lo ou iniciar a instalação, sigaos passos a seguir.

Para pegar a última versão do Samba, vá nesta URL e escolha o siteespelho mais próximo de você: ftp://ftp.samba.org/.

Para instalar o SAMBA é necessário antes saber se o pacote obtido estáno formato RPM ou .tar (.tgz ou .tar.gz).

3.1 Pacotes RPMSe o pacote for um RPM, execute o comando abaixo:

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

Atualmente grande parte das distribuições instalam o conjunto depacotes samba-common, samba-client e samba-doc juntamente com o pacotesamba, criando uma dependência entre estes pacotes.

Substitua o "x" pelo número relativo a versão do pacote ou o nomecorreto do pacote dependendo da sua distribuição. Para atualizar o SAMBAatual, substitua a sintaxe -ivh por -Uvh.

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

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

Um diretório será criado com o nome samba-2.0.x. Entre neste diretórioe em seguida no subdiretório source. Para iniciar a instalação digite:

Page 23: Linux - Samba (Pt_BR)

23

#./configure

Em seguida digite:

#make

Os binários do SAMBA serão criados. Quando terminar digite:

#make install

Agora os binários e páginas do man serão instalados. Aguarde oprocesso e quando terminar confira o diretório /usr/doc/samba-2.2.x/docs parainformações sobre o SAMBA.

Page 24: Linux - Samba (Pt_BR)

24

4 EXECUTANDO OS DAEMONS

Os seguintes daemons são exigidos pelo pacote Samba. Eles sãoinstalados tipicamente em /usr/sbin e podem ser executados tanto no bootatravés de scripts de partida do sistema quanto pelo inetd.

smbd daemon SMB

nmbd serviço de nomes NetBIOS aos clientes

Note que o serviço de nomes provido pelo nmbd é diferente daqueleprovido pelo serviço de nomes de domínio (DNS). O serviço de nomes doNetBIOS é um serviço de nomes "estilo Windows" usado para SMB. Em outraspalavras, ter serviço de nomes de domínio DNS não diz nada sobre ahabilidade do Samba de resolver nomes de hosts.

Você pode rodar os daemons do Samba do inetd ou como processosindependentes (stand-alone). O Samba irá responder ligeiramente mais rápidocomo 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 137/tcp nbnsnetbios-ns 137/udp nbnsnetbios-dgm 138/tcp nbdgmnetbios-dgm 138/udp nbdgmnetbios-ssn 139/tcp nbssn

Certifique-se de que todas estão sem as marcas de comentários.Dependendo da sua distribuição, você pode até mesmo ter que adicioná-las. OSamba não será capaz de fazer a ligação (bind) às portas apropriadasenquanto o arquivo /etc/service não contenha estas entradas.

Para rodar os daemons do inetd, coloque as seguintes linhas noarquivo de configuração do inetd, /etc/inetd.conf:

# SAMBA NetBIOS services (for PC file and print sharing)netbios-ssn stream tcp nowait root /usr/sbin/smbd smbdnetbios-ns dgram udp wait root /usr/sbin/nmbd nmbd

Então, reinicie o daemon do inetd com o segunite comando:

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

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

Page 25: Linux - Samba (Pt_BR)

25

(para uma distribuição RedHat) e faça um link simbólico para os arquivosespecificados nos comentários abaixo:

#!/bin/sh

## /etc/rc.d/init.d/smb - starts and stops SMB services.## Os arquivos abaixo devem ser links simbólicos para estearquivo:# symlinks: /etc/rc.d/rc1.d/K35smb (Mata os serviços SMB noshutdown)# /etc/rc.d/rc3.d/S91smb (Inicia os serviços SMB nomodo multiusuário)# /etc/rc.d/rc6.d/K35smb (Mata os serviços SMB noreboot)#

# 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

Page 26: Linux - Samba (Pt_BR)

26

esac

Se você obtiver um erro durante a inicialização, que diz alguma coisasobre o daemon não conseguir fazer ligação (bind) com a porta 139, entãovocê provavelmente possui outro processo Samba rodando e que ainda não foiderrubado. Verifique a lista de processos (com 'ps auxww | grep mbd')para determinar se há outro serviço Samba rodando.

Page 27: Linux - Samba (Pt_BR)

27

5 CONFIGURAÇÃO MÍNIMA

A configuração do Samba no Linux (ou numa outra máquina UNIX) écontrolada por um único arquivo, /etc/smb.conf. Este arquivo determinaque recursos do sistema você quer compartilhar com o mundo exterior e querestrições você deseja que sejam aplicadas a eles.

Já que as seções seguintes irão tratar do compartilhamento de discos eimpressoras Linux com máquinas Windows, o arquivo smb.conf mostrado nestaseção é o mais simples possível, somente para fins de introdução.

Não se preocupe ainda com os detalhes. As seções seguintesintroduzirão os conceitos principais.

Cada seção do arquivo começa com um cabeçalho de seção como[global], [homes], [printers], etc.

A seção [global] define algumas variáveis que o Samba utilizará paradefinir o compartilhamento de todos os recursos.

A seção [homes] permite a usuários remotos acessar seus próprios (esomente os seus) diretórios home na máquina local. Isto é, usuários tentandose conectar a este compartilhamento de máquinas Windows, serão conectadosao seus diretórios home pessoais. Note que para fazer isso, eles devem teruma conta na máquina Linux.

O arquivo smb.conf de exemplo abaixo, permite que usuários remotosacessessem seus diretórios home na máquina local e que escreva em umdiretório temporário. Para que um usuário Windows veja estescompartilhamentos, a máquina Linux deve estar na rede local. Então o usuáriosimplesmente conecta um drive de rede no Gerenciador de Arquivos ou noWindows Explorer.

Note que nas seções seguintes, entradas adicionais a este arquivo serãodadas 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]

Page 28: Linux - Samba (Pt_BR)

28

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 sehá erros. Você pode testar um arquivo smb.conf, usando o utilitário'testparm' (para mais detalhes, man testparm); se testparm não reportarnenhum problema, o smbd poderá carregar o arquivo de configuraçãocorretamente.

Aqui temos um bom truque: se seu servidor Samba tem mais de umainterface ethernet, o smbd pode se ligar (bind) a interface errada. Se for ocaso, você pode determinar a qual porta ele devera se ligar pela adição de umalinha parecidada como esta na sação [global] do /etc/smb.conf:

interfaces = 192.168.1.1/24

Onde você deverá trocar o endereço IP acima pelo que você atribuiu ainterface ethernet correta. O "24" é correto para um rede classe C, mas deveser calculado se você tiver feito sub-redes. O número se refere a máscara derede. Números para outras classes de redes são fornecidos no IP-Masquerademini-HOWTO.

5.1 Teste do Arquivo de ConfiguraçãoAgora que o smb.conf está configurado faça 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 ecaso exista alguma mensagem de erro (ERROR...) volte a corrija o problema.

Acertadas as configurações, deve-se ativar o SAMBA:

# /etc/rc.d/init.d/smb start

Page 29: Linux - Samba (Pt_BR)

29

Se quiser conferir se o SAMBA está realmente no ar, execute ocomando acima mas substitua o "start" por "status".

Para que o SAMBA seja iniciado sempre após a inicialização doservidor, execute o ntsysv e marque o SMB. Se preferir, você também podeescrever a linha de "start" do smb no arquivo /etc/rc.d/rc.local, daseguinte 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 estação Linux, é necessário dar um "start" exatamente como

no servidor, onde o smbclient deve ser utilizado para acessar oscompartilhamentos disponíveis no servidor.

Ainda na estação Linux, é necessário que cada uma contenha umsmb.conf se diretórios locais precisarem ser compartilhados.

Estações Windows devem estar com o TCP/IP configurado corretamente(IP, Máscara de SubRede, Wins se existir, etc).

Page 30: Linux - Samba (Pt_BR)

30

6 ACESSANDO SERVIDORES ATRAVÉS DEESTAÇÕES LINUX

6.1 O smbclientDa mesma forma que o SAMBA permite que o Linux atue como servidor

para estações Linux e redes Microsoft, ele também permite atuar como estaçãode trabalho para acessar servidores de ambos sistemas, sem que nenhumaconfiguração seja necessária no servidor.

Com o smbclient é possível acessar dados em um servidor Windows(lembra o comando net, mas a sintaxe utilizada é similar aos de FTP). Elepode ser usado para receber e enviar arquivos, listar diretórios, navegar pelosdiretórios, renomear e apagar arquivos, entre outros. Diretórios compartilhadospor um servidor SAMBA são acessados da mesma forma.

Para verificar quais compartilhamentos estão disponíveis em umdeterminado Host, execute:

$smbclient -L host_desejado

A resposta será uma lista de serviços, ou seja, nomes de dispositivos ouimpressoras que podem ser compartilhados com os usuários na rede. Amenos que o servidor SMB não tenha itens de segurança configurados, serásolicitada uma senha antes de mostrar as informações. Exemplo:

$smbclient -L servidor1

A resposta será semelhante a:

Server time is Fri Dec 22 15:58:02 2000Timezone is UTC+10.0Password:

Domain=[EMPRESA] OS=[Windows NT 4.0]Server=[NT LAN Manager 4.0]Server=[servidor1] User=[] Workgroup=[EMPRESA] Domain=[]Sharename Type CommentADMIN$ Disk Remote AdministrationPublic Disk PublicC$ Disk Default SharePrint$ Disk Printer Control

Page 31: Linux - Samba (Pt_BR)

31

Para acessar uma pasta compartilhada, basta especificar o caminho narede, conforme abaixo:

$smbclient //maquina/pasta1 senha O smbtar

Também é possível fazer backup (cópias de segurança) para o formato.tar de arquivos que estão em compartilhamentos na rede. Esta operação émuito útil para garantir backup de arquivos em estações com pastascompartilhadas mas que não pertencem ao Domínio da rede (por exemplo) ouem estações 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á obackup 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 doarquivo e seu tamanho. Para que o backup seja guardado em fita deve-semudar a sintaxe do comando, substituindo o nome do arquivo pela unidade defita instalada (geralmente /dev/st0).

6.2 O smbpasswdO SAMBA permite também que as estações troquem suas senhas de

logon, utilizando o smbpasswd. Ele age de forma similar ao comando passwd,mas as senhas são armazenadas no arquivo smbpasswd. É possível aindaalterar a senha dos usuários em um servidor Primário de um Domínio NT(PDC).

Utilizado pelo superusuário, ele permite que contas sejam adicionadosou removidos e atributos sejam alterados.

Mantenha o "localhost" especificado no parâmetro "allow hosts" para seuperfeito funcionamento.

O smbpasswd é um arquivo em formato ASCII e contém o nome dousuário, identificação junto ao Linux, a senha encriptada, o indicador de comoestá a conta e a data de última alteração da senha do usuário.

Page 32: Linux - Samba (Pt_BR)

32

Vale destacar que o smbpasswd somente é útil quando o SAMBA estáconfigurado para utilizar senhas criptografadas (veja detalhes emConsiderações).

6.3 O smbstatusPara saber a situação atual das conexões SAMBA, utilizamos o

smbstatus.

• $smbstatus –p Lista os processos smbd e finaliza emseguida. Útil quando utilizado em programas.

• $smbstatus –S Lista todos os compartilhamentos definidos.

• $smbstatus –s Permite utilizar outro arquivo de conffiguração(smb.conf2 por exemplo), que deve ser especificado após a opção.

• $smbstatus –u Lista as informações rellevantes sobre ousuário, que deve ser especificado após a opção.

6.4 O testprnsO testprns verifica o nome da impressora junto ao smbd, a fim de

determinar se há um nome válido (entrada encontrada em printcap para aimpressora) sendo informado para uso pelo serviço de impressão. Pode serativado da seguinte forma:

#testprns ftp://ftp.samba.org/pub/samba/pwdump/pwdump.exe

Efetue logon como usuário Administrator no servidor NT (quedisponibiliza a autenticação). Em seguida, abra um Command Prompt e vá atéo diretório que você colocou o pwdump. Rode o comando pwdump da seguintemaneira:

#pwdump smbpasswd

Será gerado um arquivo smbpasswd com as informações deautenticação (logon e senha) do Windows NT no formato criptografado utilizadopelo SAMBA. Agora copie o arquivo smbpasswd gerado para o servidor Linux(através de diskete ou diretório compartilhado, por exemplo). No Linux, jogue oarquivo smbpasswd criado para o diretório /etc e defina as permissões para600:

#chmod 600 /etc/smbpasswd

Para que funcione corretamente, é importante destacar que o ID dosusuários seja o mesmo tanto no smbpasswd quanto no passwd do Linux. Abra

Page 33: Linux - Samba (Pt_BR)

33

o smbpasswd e exporte os dados de autenticação (nome do usuário, ID, etc)mas não é possível fazer o mesmo com as senhas. Se você quiser exportar assenhas vai ter que quebrá-las com algum password cracker :) Na verdade nãoé necessário ter a senha no passwd, apenas o login, ID e home.

Para rodar o SAMBA e ele autenticar os usuários, não é preciso ter asenha no passwd do Unix, apenas o login, ID e home se você quiser exportá-los. Vão ser utilizadas as senhas do smbpasswd.

Luciano Linhares Martins [email protected] criou um scriptbaseado no mksmbpasswd para converter as senhas em formato smbpasswdpara o passwd. Funciona bem e pode ser modificado conforme a necessidadede cada um. É um script bem simples e pode ser alterado de acordo com asua necessidade. Crie o arquivo mkpasswd.sh com o conteúdo abaixo:

#!/bin/shawk '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 emoutro local, configure de acordo com a sua necessidade. Após isso, é geradoum arquivo chamado passwd-smb com os logins, id's, home, etc no formato dopasswd do seu sistema.

Normalmente, os ID's do smbpasswd vão começar a partir de 1000 evocê não vai ter problemas para junta-lo com o seu passwd do Unix semnenhum conflito. Eu recomendo que você confira antes de juntar as bases.Procure por logins com o mesmo ID, mesmo username e username comespaços.

Se você utiliza shadow é importante desabilitá-lo antes de juntar osarquivos. Desabilite o shadow através do comando pwunconv. Em seguidapara passar o arquivo passwd-smb para o passwd do sistema entre no diretórioonde esta o arquivo passwd-smb que você gerou e digite:

#cat passwd-smb /etc/passwd

Se você utiliza o shadow, pode reativá-lo agora através do comandopwconv. Reinicie o Linux para que as alterações entrem em vigor.

Page 34: Linux - Samba (Pt_BR)

34

6.5 Exemplo de Login Script para estações WindowsO login script (ou logon script) é uma ferramenta muito útil para

disponibilizar recursos na rede. O script abaixo é um exemplo que pode usadoem redes com estações Windows.

Lembre-se de que deve ser criado com o notepad (por exemplo) em umaestação Windows para que funcione corretamente! (Confira a seção [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 padrão para a rede.net time \\servidor1 /set /yes@echo offif %OS%.==Windows_NT. goto WinNT:Win95net use X: \\servidor1\pasta_01net use Z: /HOMEgoto end:WinNTnet use X: \\servidor1\pasta_01 /persistent:nonet use Z: /HOME /persistent:no:end

Page 35: Linux - Samba (Pt_BR)

35

7 COMPARTILHAMENTO DE DISCOS

7.1 Compartilhamento de disco Linux com máquinasWindowsComo mostrado no exemplo de smb.conf acima, compartilhar drives

Linux com usuários Windows é fácil. Contudo, como tudo no Samba, vocêpode controlar coisas em um alto grau. Aqui são alguns exemplos:

Para compartilhar um diretório com o público, crie uma cópia da seção[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 diretório acima possa ser lido pelo público (todos),mas somente gravável pelos membros do grupo staff, modifique as entradascomo abaixo:

[public] comment = Public Stuff path = /home/public public = yes writable = yes printable = no write list = @staff

Normalmente é fácil assim; você agora deve estar habilitado a iniciar oSamba e visualizar os compartilhamentos de um PC com Windows. Contudo,a Microsoft recentemente tornou a vida um pouco mais difícil para quem usaSamba. O Windows 98, Windows NT (service pack 3 ou posterior) e as últimasversões do Windows 95 agora usam senhas criptografadas como padrão. OSamba usa senhas não criptografadas por padrão. Você não pode visualizarservidores quando o cliente ou o servidor estão usando senhas criptografadas,porque a conexão não pode ser feita anonimamente.

Você pode dizer se tem uma diferença de tipo de senhas entre o clientee o servidor, se quando você tentar se conectar a um compartilhamento vocêvir uma caixa de diálogo que mostra algo como "Você não tem permissão paraacessar esta conta nesta máquina.

Page 36: Linux - Samba (Pt_BR)

36

Por padrão o SAMBA não utiliza autenticação encriptada na rede, massim "clear text". Versões mais atuais do Windows95/98/Me não utilizam omodo "clear text". Para resolver este problema temos duas soluções:

7.1.1 Configurar o Samba para usar senhas criptografadasNa seção [global] do /etc/smb.conf, adicione as seguintes linhas:

encrypt passwords = yessmb passwd file = /etc/smbpasswd

Certificar-se de que todas as estações na rede utilizam autenticaçãoencriptada no logon. Para fazer o Windows trabalhar com senhascriptografadas, use o regedit e crie a seguinte chave:

• Windows 95/98HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUPAdicione um novo valor DWORD: Value Name:EnablePlainTextPassword e Data: 0x00

• Windows NT 4.0HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rdr\ParametersAdicione um novo valor DWORD: Value Name:EnablePlainTextPassword e Data: 0x00

• Windows 2000HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\ParametersAdicione um novo valor DWORD: Value Name:EnablePlainTextPassword e Data: 0x00

Uma vez que as alterações no registro tenham sido feitas, reinicie amáquina Windows. Para maiores detalhes, leia os arquivosENCRYPTION.txt, Win95.txt e WinNT.txt na documentação do Samba.Se seus clientes e seu servidor estão usando senhas criptografadas, você nãoserá capaz de visualizar compartilhamentos no servidor até que uma conexãoinicial tenha sido feita com a autenticação apropriada. Para conseguir aconexão inicial, entre o nome do compartilhamento manualmente noGerenciador de Arquivos ou na caixa de diálogo do Explorer, na forma '\\'.Registre-se no servidor com um nome de usuário e senha que lhe são válidos.

Se seus clientes e seu servidor estão usando senhas criptografadas,você não será capaz de visualizar compartilhamentos no servidor até que umaconexão inicial tenha sido feita com a autenticação apropriada. Para conseguira conexão inicial, entre o nome do compartilhamento manualmente noGerenciador de Arquivos ou na caixa de diálogo do Explorer, na forma'\\<hostname>\<nomedocompartilhamento>'. Registre-se no servidorcom um nome de usuário e senha que lhe são válidos.

Page 37: Linux - Samba (Pt_BR)

37

Se você suspeita que seu serviço de nomes NetBIOS não estácorretamente configurado (talvés porque você tenha obtido erros 'host notfound' ao tentar se conectar), tente usar somente o endereço IP do servidor:'\\<endereçoIPdoservidor>\<nomedocompatilhamento>'. Para que onome dos arquivos apareçam corretamente, você pode precisar configuraralgumas opções na seção de compartilhamento apropriada. Estas funcionampara 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 arquivocorretos para Win95/98/NTmangle case = yes; Se o samba deve diferenciar maiúsculas e minúsculas quandoprocurando por arquivoscase sensitive = no

; Padrão de letras maiúsculas ou minúsculas para quando osarquivos são criadosdefault case = lower

; Preservar maiúsculas e minúsculas para todos os nomes dearquivopreserve case = yes

; Preservar maiúsculas e minúsculas para nomes DOS (8.3)short preserve case = no

7.1.2 Configurar o Windows para não usar senhas criptografadasNão utilizar encriptação no logon, alterando uma chave no registro do

Windows. O SAMBA trás o arquivo .reg para cada versão do Windows com achave modificada. Execute o arquivo correspondente para validar a mudança(eles estão em /usr/doc/samba-2.0.x/docs).

Se você não possui estes arquivos, abaixo estão as chaves que devemser modificadas nas estações Windows para não utilizar o "clear text":

• Windows 95/98[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]"EnablePlainTextPassword"=dword:00000001

• WindowsNT 4.0[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters]"EnablePlainTextPassword"=dword:00000001

• Windows 2000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic

Page 38: Linux - Samba (Pt_BR)

38

es\LanmanWorkStation\Parameters]"EnablePlainTextPassword"=dword:00000001

É claro que se sua rede for "sniffada", os passwords que não estiveremencriptados serão descobertos. Em alguns casos vale a pena tirar acriptografia de login e monitorar a rede com um anti-sniffer. Mas lembre-se queo Windows NT e o 2000 só conseguem se autenticar no servidor SAMBAatravés de senha encriptada. Mais ainda: o Windows 2000 vem com algumasdificuldades para entrar no Domínio de um PDC Samba versão 2.1.x. Utilize aversão 2.2.2 ou superior do Samba para evitar problemas.

7.2 Compartilhamento de disco Windows com máquinasLinuxUm programa cliente SMB para máquinas UNIX é incluido na

distribuição. Ele provê uma interface tipo ftp com linha de comando. Vocêpode usar este utilitário para transferir arquivos entre um 'servidor' Windows eum cliente Linux.

Para ver quais compartilhamentos estão disponíveis num determinadohost, execute:

/usr/sbin/smbclient -L host

Onde 'host' é o nome da máquina que você deseja ver. Isto irá retornaruma lista de nomes de serviço, isto é, nomes de drives ou impressoras que oservidor pode compartilhar com você. A menos que o servidor SMB nãopossua nenhuma medida de segunça configurada, ele irá lhe perguntar umasenha. Dê-lhe a senha para a conta 'guest' ou para a sua senha pessoalnaquela máquina.

Por exemplo:

smbclient -L zimmerman

A saída do comando deve parecer com esta:

Server time is Sat Aug 10 15:58:27 1996Timezone is UTC+10.0Password:Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager3.51]

Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]

Sharename Type Comment --------- ---- -------

Page 39: Linux - Samba (Pt_BR)

39

ADMIN$ Disk Remote Admin public Disk Public C$ Disk Default share IPC$ IPC Remote IPC OReilly Printer OReilly print$ Disk Printer Drivers

This machine has a browse list:

Server Comment --------- ------- HOPPER Samba 1.9.15p8 KERNIGAN Samba 1.9.15p8 LOVELACE Samba 1.9.15p8 RITCHIE Samba 1.9.15p8 ZIMMERMAN

A lista de visualização mostra outros servidores SMB com recursos acompartilhar na rede.

Para usar o cliente, execute:

/usr/sbin/smbclient service <password>

onde 'serviço' é a máquina e o nome do compartilhamento. Porexemplo, se você está tentando alcançar um diretório que foi compartilhadocomo 'public' numa máquina chamada zimmerman, o serviço deveria sechamar \\zimmerman\public. No entanto, devido a limitações 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 1996Timezone is UTC+10.0Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager3.51]smb: \>

Digite 'h' para obter ajuda usando o smbclient:

smb: \> h

Page 40: Linux - Samba (Pt_BR)

40

ls dir lcd cd pwdget mget put mputrenamemore mask del rmmkdirmd rmdir rd promptrecursetranslate lowercase print printmodequeuecancel stat quit q exitnewer archive tar blocksizetarmodesetmode help ? !smb: \>

Se você sabe utilizar o ftp, você não precisará das páginas de ajudapara o smbclient.

7.2.1 O pacote smbfsMesmo pondedo usar o smbclient para testes, você logo estará

saturado dele para trabalhos de verdade. Para estes você provavelmenteusará o pacote smbfs. O pacote smbfs já é incluido na maioria dasdistribuições Linux. Uma coisa importante a observar: Você deve possuirsuporte a smbfs compilado no kernel para utilizar estes utilitários.

O smbfs vem com dois utilitários simples: smbmount e smbumount.Eles funcionam de forma muito similar a mount e umount, só que paracompartilhamentos SMB.

O processo deve ser feito através da linha de comando. Imaginandoque você queira montar o disco C: da máquina estacao1, que foicompartilhado com o nome C, em seu diretório Conectiva Linux/mnt/estacao1:

# smbmount //estacao1/c /mnt/estacao1

Observe que em alguns casos (você está montando um volume de umservidor Windows® NT, por exemplo) será necessário que você informe umusuário e uma senha para poder utilizar o comando smbmount.

# smbmount //estacao1/c /mnt/estacao1 -o \username=usuario,password=minhasenha

Isso funcionará se o usuário usuario estiver cadastrado na máquinaestacao1 com a senha minhasenha.

Em versões mais recentes, é possível usar o próprio comando mount doGNU/Linix:

Page 41: Linux - Samba (Pt_BR)

41

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

Page 42: Linux - Samba (Pt_BR)

42

8 DIFERENÇAS ENTRE SISTEMAS DE ARQUIVOS

Neste capítulo serão estudadas as diferenças entre os sistemas dearquivos Unix e não-Unix.

Uma das maiores dificuldades que o Samba tem que enfrentar é adiferença entre os sistemas dearquivos Unix e não-Unix. Isso incluisingularidades como links simbólicos e arquivos ocultos.

8.1 Ocultando e Vetando arquivosEm sistemas Unix, arquivos ocultos começam com “.”, em sistemas

DOS/Windows, os arquivos têm um atributo específico para esta função. Oservidor Samba precisa de meios para esconder os arquivos quando esteatributo estiver habilitado em um cliente Windows.

Existem casos em que é necessário assegurar que um usuário nãopossa ver ou acessar um arquivo. Em outros casos não se que apenasesconde-lo quando se está visualizando um diretório.

8.1.1 Opção hide dot filesEsta opção faz exatamente o que diz: quando está configurada como

yes, esconde arquivos que começam com “.”. E se estiver configurada comono, estes arquivos são sempre exibidos. Não se deve esquecer que osarquivos serão apenas ocultos: se o cliente Windows estiver configurado paramostrar arquivos ocultos, ele poderá vê-los de qualquer maneira.

8.1.2 Opção hide filesAo invés de esconder apenas os arquivos que começam com “.”, é

possível especificar uma string ao Samba, informando quais arquivos ocultar,através da opção hide files. Por exemplo, para esconder todos osarquivos .conf e todos os começados por lib-:

hide files = /*.conf/lib-*/

Cada entrada deve iniciar e acabar com “/”, mesmo que haja apenasuma entrada. Podem ser colocados espaços nas regras.

8.1.3 Opção veto filesCaso seja necessário prevenir que os usuários vejam arquivos, usa-se a

opção veto files, que usa a mesma sintaxe da opção hide files:

veto files = /*.conf/lib-*/

Page 43: Linux - Samba (Pt_BR)

43

Com esta opção, todos os arquivos .conf e todos os começados porlib- desaparecerão do diretório, e será impossível para um cliente SMBenxergá-los.

8.1.4 Opção delete veto files = yes|noO que acontecerá se um usuário tentar apagar um diretório que contém

arquivos vetados? Depende da opção booleana delete veto files: se estiversetada para yes, o diretório será removido mesmo assim. Se estiver em no,será impossível para um cliente SMB apagar um diretório com arquivosvetados.

8.1.5 Opção dont descendEsta opção especifica uma lista de diretórios que não devem ter seu

conteúdo mostrado pelo Samba. Apenas o conteúdo será escondido, e não opróprio diretório.

dont descend = bin lib

Os clientes SMB que tentarem acessar os diretórios bin e lib verãoapenas listas vazias. Além disso, nenhum usuário remoto poderá gravararquivos nestes diretórios.

Note que essa é uma opção administrativa e não de segurança, e nãosubstitui as permissões de acesso aos arquivos.

8.1.6 Opção unix realname = yes|noAlguns programas precisam de um nome de usuário completo para

funcionar. Se o arquivo /etc/passwd tiver os nomes reais dos usuários nocampo GCOS, a opção unix realname fará com que o Samba forneça estainformação para os clientes. Sem isto, o nome do usuário será o seu ID delogin.

8.2 LinksNão existem links simbólicos em sistemas de arquivos FAT e NTFS. Os

sistemas Windows possuem uma característica parecida, que é chamada deatalho. Quando um cliente tenta abrir um link simbólico em umcompartilhamento em um servidor Samba, o Samba tentará seguir o linksimbólico para encontrar o arquivo real, como se o usuário estivesse namáquina Linux. Para desabilitar isto será necessário inserir a seguinte linhadentro do compartilhamento:

Page 44: Linux - Samba (Pt_BR)

44

follow symlinks = no

Existe também a opção wide links, que se for configurada como yes,permite que o usuário cliente siga os links simbólicos que apontam para fora daárvore de diretório compartilhada, incluindo arquivos e diretório na outra pontado link.

8.3 Permissões e AtributosO DOS nunca teve a intenção de ser um sistema operacional de rede

multiusuário, ao contrário do Unix, que foi desenvolvido desta maneira desde oinício. Devido a isso, existem inconsistências e lacunas de cobertura entre osdois sistemas de arquivo, que o Samba deve resolver. Uma das principaislacunas é o manuseamento de permissões entre os dois sistemas.

Todos os arquivos do Linux possuem bits de leitura, escrita e execuçãopara dono, grupo e outros. Já o Windows tem 4 bits de permissão: apenasleitura, sistema, oculto e arquivo. Não há um bit específico para defenir umarquivo executável, pois o DOS identifica arquivos executáveis pela extensão.EXE, .COM, .CMD ou .BAT.

Devido a isto, não há utilidade para os bits executáveis do Linux queestão presentes em um disco compartilhado pelo Samba. Já os arquivos DOSpossuem seus próprios atributos, que precisam ser preservados quando sãoarmazenados no ambiente Linux: arquivo, sistema e oculto. O Samba podepreservar estes bits “reutilizando” os bits de permissão de execução do arquivono lado do Linux, desde que devidamente configurado. Existe um efeitocolateral: se no lado Unix for executado um ls –l, alguns bits de permissão vãoter um significado diferente do esperado.

Existem três opções do Samba que decidem se os bits são mapeados:map archive (arquivo), map system (sistema) e map hidden (oculto).Estas opções mapeiam os atributos para o dono, grupo e outros,respectivamente. Veja um exemplo abaixo, com os valores padrão dasopções:

map archive = yesmap system = nomap hidden = no

O atributo apenas leitura é mapedo no atributo de permissão de escritado dono do arquivo, obviamente invertido.

Page 45: Linux - Samba (Pt_BR)

45

9 COMPARTILHAMENTO DE IMPRESSORAS

9.1 Compartilhamento de impressora Linux com máquinasWindowsPara compartilhar uma impressora Linux com máquinas 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 máquina

Windows NT (há muito tempo atrás - antes de converter nossa rede ao Linux,quase em sua totalidade), esta seção não deve ser vista como definitiva, masmeramente uma sugestão.

Adicionando configurações de impressão 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

Page 46: Linux - Samba (Pt_BR)

46

Tenha certeza que a o caminho da impressora (neste caso abaixo de[ljet]) casa com o diretório de spool em /etc/printcap!

As linhas:

printcap name = /etc/printcap load printers = yes

controlam quando todas as impressoras em /etc/printcap devem sercerregadas por padrão ou não. Se você fizer isso, não há razão paraconfigurar impressoras individualmente. A seção [printers] escifica opçõespara as impressoras que você quer definir explicitamente. Se o subsistema deimpressão que você está usando não funciona deste modo (BSD), você teráque configurar um arquivo printcap falso (ou usar a técnica do 'comando deimpressão', veja abaixo). Para mais informações sobre o sistema printcap vejao Printing HOWTO.

Uma técnica útil de testar a conexão de rede é trocar o camando deimpressão para:

print command = cp %S /tmp/print.%P.%S

O arquivo resultante pode então ser analisado.Observação: Há alguns problemas ao se compartilhar impressoras em

máquinas UNIX com máquinas NT usando Samba. Um dos problemas é o NTver a impressora compartilhada corretamente. Para solucionar, use asobservações contidas na documentação do Samba no arquivo docs/WinNT.txt.Outro problema ocorre com as senhas. Veja os comentários no mesmoarquivo sobre uma forma irritante de compreensão e falha para solucionar oproblema.

Oleg L. Machulskiy ([email protected]) sugere que um comandode impressão melhor para o exemplo acima seria:

print command = smb2ps %s | lpr -r -h -P %p

onde 'smb2ps' é um script que transforma os arquivos de spoolrecebidos do Windows em usáveis e comuns arquivos Postscript. Ele devecortar as primeiras três e as últimas duas linhas, porque estas linhas contémcódigo PJL ou PCL.

Este método só é necessário se sua máquina Windows está imprimindoPCL e não Postscript realmente. Eu tenho visto que no Windows 95/98/NT nãotem um driver genérico para Postscript, mas o driver da "Digital turboPrintserver 20" funciona como um bom driver genérico de Postscript para amaioria das configurações. Eu também tenho ouvido que o driver da "AppleLaserWriter II NTX" também funciona para este fim.

Jeff Stern ([email protected]) reporta o seguinte, o que podeajudar alguns de vocês:

Page 47: Linux - Samba (Pt_BR)

47

--------------------------%<---------------------------------- O problema que euestava tendo, era que eu podia imprimir via lpd/lpr na minha impressora doLinux. Mas, eu não conseguia imprimir de uma máquina Win95 remota. Entãoeu tentei:

smbclient \\eclectic\belen -Pe então:print myfileEu obtive erros como acesso negado. Então, eu configurei as

permissões em meu diretório /var/spool/lpd/lp1 para 777. Me desculpe, mas foiisso que eu tive que fazer. Eu acho que alternativamente, eu poderia ter postotodos os usuários no grupo 'lp', ou feito dado a posse do diretório ao grupo'users', etc... Mas por enquanto, este método está funcionando (compropriedade root:lp).

Finalmente, uma outra coisa que os administradores devem saber é queo nome da conta na máquina Windows (na qual eu estava tentando usar aimpressora Linux via Samba) deve ter equivalente no Linux. Assim, se há umusuário chamado 'joe' na máquina Windows 'mywinbox' tentando imprimir naimpressora 'belen' da máquina Linux 'eclectic' (\\eclecticz\belen, deverá haverum usuário chamado 'joe' na máquina Linux. Então o login e a senha dousuário 'joe' serão a senha para acesar a impressora belen da máquinaeclectic. Esta senha será solicitada na máquina Windows quando você estiverconfigurando a impressora com Impressoras | Adicionar Nova.

Eu pensei que este tipo de problema não seria bem o caso, mas euconfigurei minha impressora com acesso público no smb.conf. Masaparentemente, ela continua a pedir senha. (A máquina Windows,infelizmente, não lhe dá a oportunidade de informar um nome de usuáriodiferente para a impressora remota (Linux). Ela simplesmente usa o nome dousuário atual que você informou quando iniciou o Win95. --------------------------%<----------------------------------

O Dr. Michael Langner [email protected] mostra que problemasde permissão de escrita na árvore de /var/spool/lpd/ podem ser evitados poralguma coisa como "path = /tmp" e "print command = lpr -r -P%p %s".

Algumas vezes, um error de interpretação do Postscript irá ocorrerquando você estiver imprimindo de máquinas Windows, o que causa aimpressão de uma página extra no fim de cada trabalho de impressão. A útimapágina sempre conterá "%%[ Lastpage ]%%" em seu topo. Aparentemente istoacontece apenas com o Windows 95 e 98 e é devido a um defeito no Postscriptgerado.

Uma maneira de lidar com isso é usar um script que remove a pequenaparte ruim desde Postscript dos trabalhos da fila de impressão. Outra maneiraé tentar encontrar um driver Postscript melhor para Windows. Provavelmente amelhor maneira é usarmos LPRng invés de Postscript para imprimir numservidor Samba.

Erik Ratcliffe ([email protected]) da Caldera contou-me que usandoLPRng significa que qualquer driver de impressão pode ser usado na máquina

Page 48: Linux - Samba (Pt_BR)

48

Windows. No servidor Samba, ele usou uma entrada no /etc/printcap que separece com esta:

raw:\ :rw:sh: :lp=/dev/lp1 :sd=/var/spool/lpd/raw :fx=flp

LPRng não requer :\ no final de cada linha. Uma linha de impressoraainda precisa ser adicionada ao /etc/smb.conf para a impressora física. Ocomando de impressão precisa usar a entrada "raw" do /etc/printcap e osdados precisam ser enviados para a impressora em formato binário. Tente umcomando de impressão como este:

print command = lpr -b -Praw %s

Você também pode precisar configurar o spooling no Windows 95 paraimprimir diretamente para a impressora, ao invés de fazer spool.

9.2 Compartilhamento de impressora Windows commáquinas LinuxPara compartilhar uma impressora de uma máquina Windows, você

deve fazer o seguinte:

1. Você deve possuir as entradas apropriadas no /etc/printcap e elasdevem corresponder a estrutura local de diretórios (para o diretório despool, etc).

2. Você deve ter o script /usr/bin/smbprint. Ele vem junto dos fontesdo Samba, mas não em todas as distribuições binárias. Uma cópialevemente modificada será discutida abaixo.

3. Se você quer converter arquivos ASCII para Postscript, você deve ter onenscript, ou um equivalente. nescript é um conversor para Postscript eé geralmente instalado em /usr/bin.

4. Você pode querer fazer a impressão do Samba ficar mais fácil tendo umprograma interface que torne-a simples de usar. Um script em Perlsimples para manipular ASCII, Postscript ou Postscript criado é dadoabaixo.

5. Você pode também usar o MagicFilter para fazer o item acima. Detalhessobre como configurar o MagicFilter são fornecidos depois do script perl.O MagicFilter tem vantegens porque ele sabe como converterautomaticamente muitos formatos de arquivo.

Page 49: Linux - Samba (Pt_BR)

49

6.

1. A entrada no arquivo /etc/printcap abaixo é para umimpressora HP 5MP numa máquina Windows NT. As entradassão como as que seguem abaixo:

cm - comentário lp - dispositivo a abrir para saída sd - o diretório de spool da impressora (na máquina local). af - o arquivo de registro (contabilidade) mx - o tamanho máximo de arquivo (zero é ilimitado) if - o nome do filtro de entrada.

Para mais informações, veja o Printing HOWTO ou apágina 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 diretórios de spool e registro(contabilidade) existem e são graváveis. Assegure-se que a linhaque tem o 'if' contenha o caminho correto para o script smbprint(dado abaixo) e tenha certeza que o dispositivo apropriado tenhasido indicado (o arquivo especial /dev). Depois vem o próprioscript smbprint. Ele normalmente é colocado em /usr/bin e éatribuído a Andrew Tridgell, a pessoa que criou o Samba, atéonde eu sei. Ele vem junto da distribuição dos fontes do Samba,mas não vem em algumas distribuições binárias, assim sendo euo reproduzi aqui. Você pode quer dar uma olhada cuidadosanele. Há algumas pequenas alterações que se mostraram muitoúteis.

#!/bin/sh -x

# This script is an input filter for printcap printing on a unixmachine. It

Page 50: Linux - Samba (Pt_BR)

50

# uses the smbclient program to print the file to the specifiedsmb-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/smbprint## which would create a unix printer called "smb" that will printvia 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 aprinter# exported called "printer" with no password.

## Script further altered by [email protected] (MichaelHamilton)# 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 includean# 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=""

Page 51: Linux - Samba (Pt_BR)

51

## 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/lpconfig_file=$spool_dir/.config

# Should read the following variables set in the config file:# server# service# password# usereval `cat $config_file`

## Some debugging help, change the >> to > if you want to samespace.#echo "server $server, service $service" >> $logfile

(# NOTE You may wish to add the line `echo translate' if you wantautomatic# CR/LF translation when printing. echo translate echo "print -" cat) | /usr/bin/smbclient "\\\\$server\\$service" $password -U$user -N -P >> $logfile

A maioria das distribuições Linux vem com o nenscript paraconverter documentos ASCII em Postscript. O script perl abaixofacilita a nossa vida fornecendo uma interface simples ao Linuxpara impressão 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

Page 52: Linux - Samba (Pt_BR)

52

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

Usando o smbprint para imprimir arquivos ASCII tende acortar linhas grandes. Este script quebra linhas grandes comespaços em branco (ao invés de no meio das palavras), sepossível. A formatação do código fonte é feita com o nescript.Ele pega um arquivo ASCII e o formata em duas colunas com umcabeçalho legal (data, nome do arquivo, etc). Ele tambémnumera as linhas. Usando isto como exemplo, outros tipos deformatação podem ser obtidos. Documentos Postscript já estãoformatados adequadamente, então 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 viaSamba.# Finalidade: Pega arquivos de vários tipos e arqumentos e osprocessa# apropriadamente para um canal(pipe) do script de impressão doSamba.## Currently supported file types:## ASCII - assegura-se que as linhas maiores que$line_length caracteres# sejam quebradas nos espaçoes em branco.# Postscript - Não faz nada.# Code - Formata em Postscript (usando nenscript) paraaparecer# adequadamente(landscape, font, etc).#

# Determina o maior comprimento de linha permitido em textosASCII$line_length = 76;

# Determina o nome e o caminho do script de impressão do samba$print_prog = "/usr/bin/smbprint";

# Determina o nome e o caminho para o nescript (o conversorASCII-->Postscript)

Page 53: Linux - Samba (Pt_BR)

53

$nenscript = "/usr/bin/nenscript";

unless (-f $print_prog ) { die "Não pude encontrar $print_prog!";}unless (-f $nenscript ) { die "Não pude encontrar $nenscript!";}

&ParseCmdLine(@ARGV);

# DBGprint "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 smbprintopen(PRINTER, "|$print_prog") || die "Não pude abrir$print_prog: $!\n";foreach $line (@newlines) { print PRINTER $line;}# Envia um linefeed extra no caso do arquivo ter uma últimalinha incompleta.print PRINTER "\n";close(PRINTER);print "Completed\n";exit 0;

# --------------------------------------------------- ## Tudo daqui para baixo são sub-rotinas ## --------------------------------------------------- #

sub ParseCmdLine { # Parses the command line, finding out what file typethe file is

Page 54: Linux - Samba (Pt_BR)

54

# Gets $arg and $file to be the arguments (if theexists) # 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"

Page 55: Linux - Samba (Pt_BR)

55

} }}

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 onwhitespace

# 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);

Page 56: Linux - Samba (Pt_BR)

56

# DBG #print "The partial line is:\n$part\n";

# Check to see if the last character isa space. $last_char = substr($part,-1, 1); if (" " eq $last_char ) { # If it is, print the rest.

# DBG #print "The last character was aspace\n";

substr($line,0,$limit + 1) = ""; substr($part,-1,1) = ""; push(@newlines,"$part\n"); } else { # If it is not, find the last spacein the # sub-line and print up to there.

# DBG #print "The last character was not aspace\n";

# Remove the character past $limit substr($part,-1,1) = ""; # Reverse the line to make it easyto find # the last space. $revpart = reverse($part); $index = index($revpart," "); if ($index > 0 ) { substr($line,0,$limit-$index) ="";

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");

Page 57: Linux - Samba (Pt_BR)

57

} } } push(@newlines,$line); } close(FILE);}

sub codeformat { # Call subroutine wrap then filter through nenscript &wrap($line_length);

# Pipe the results through nenscript to create aPostscript # 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 canbe # 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);}

Page 58: Linux - Samba (Pt_BR)

58

Agora, via MagicFilter. Obrigado a Alberto Menegazzi([email protected]) por esta informação. Alberto disse: --------------------------%<---------------------------------- 1) Instale o MagicFilter como filtro de impressoras que você precisa em /usr/bin/local mas nãopreencha o /etc/printcap com a sugestão dada na documentaçãodo MagicFilter. 2) Escreva o /etc/printcap desta forma (está feitopara 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/main-filter: Você pode perceber que o lp=/dev/... está aberto para fazero locking de tais dispositivos "virtuais", deve ser usado um paracada impressora remota. Exemplo criando com: touch /dev/ljet4lEscreva o filtro /usr/local/bin/main-filter, o mesmo que vocêsugeriu usando o filtro ljet4l-filter ao invés do cat. Aqui está omeu: #! /bin/sh logfile=/var/log/smb-print.logspool_dir=/var/spool/lpd/ljet4l (echo "print -" /usr/local/bin/ljet4l-filter ) | /usr/bin/smbclient "\\\\SHIR\\HPLJ4" -N -P >> $logfile P.S.: aqui vai uma citação do Print2Win mini-Howto sobre locking eporque criar impressoras virtuais Starts here--> ---Começa aquiDica de Rick Bressler : Boa dica. Eu uso algo muito parecido.Uma dica útil é que isso não é uma boa idéia: :lp=/dev/null:\ lprabre em modo exclusivo o arquivo que você especifica em lp=.Ele o faz para evitar que vários processos tentem imprimir namesma impressora ao mesmo tempo. O efeito colateral disto noseu caso, eng e colour não podem imprimir ao mesmo tempo,(normalmente mais ou menos transparente, já que provavelmenteelas imprimem rapidamente e já que elas enfileram, vocêprovavelmente não percebe) mas qualquer outro processo quetenta escrever em /dev/null será quebrado! Em um sistemamonousuário, provavelmente não é um grande problema. Eutenho um sistema com mais de 50 impressoras. Haveria umproblema aqui. A solução é criar uma impressora burra paracada. Exemplo: touch /dev/eng. Eu modifiquei as entradas lp noarquivo printcap acima para levar em conta as sugestões do Rick.Eu fiz o seguinte: #touch /dev/eng #touch /dev/colour Ends here--> ---Termina aqui --------------------------%<----------------------------------

Page 59: Linux - Samba (Pt_BR)

59

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 nmbdO daemon nmbd é um servidor que entende e pode responder

solicitações NetBIOS sobre resolução de nomes IP, iguais àquelas produzidaspelos clientes SMBD/CIFS, como Windows 9x, Windows NT e clientesLanManager. Também pode ser configurado para atuar como um servidorWINS, que nada mais é do que uma extensão do protocolo de resolução denomes do NetBIOS.

A configuração do nmbd é definida no arquivo de configuração doSamba. Algumas opções que têm relação com a execução do WINS são:

wins support = yes|no informa ao nmbd se ele deve funcionarcomo servidor WINS.

dns proxy = yes|no informa ao nmbd se ele deve utilizar o DNSpara resolver as solicitações feitas ao WINS que não puderam ser resolvidas.Só tem sentido se o nmbd estiver rodando como um servidor WINS. O padrãoé yes.

wins server = 0.0.0.0 informa ao nmbd que ele devefuncionar como um cliente WINS. Note que o nmbd não pode ser ao mesmotempo servidor e cliente WINS.

wins proxy = yes|no informa ao nmbd para respondersolicitações de resolução de nomes a favor de um cliente que não possaatender ao WINS. Para isso deve haver pelo menos um servidor de WINS narede. O padrão é no.

10.2 O Samba como Cliente WINSPara 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 endereço IP do servidor WINS. A opçãoname resolve order é usada pelos programas do pacote Samba paradeterminar quais serviços de nomes e em qual ordem tentar resolver os nomesde máquina para endereços IP. Neste caso, irá tentar resolver primeiro usando

Page 60: Linux - Samba (Pt_BR)

60

o servidor WINS (setado na opção anterior), depois procurará o endereço IP noarquivo /etc/lmhosts do Samba, e por último executará um broadcast.

10.3 O Samba como servidor WINSA configuração do Samba para funcionar como um servidor WINS é bem

simples. Será necessário apenas configurar as seguintes opções:

[global] wins support = yes name resolve order = wins lmhosts bcast

A opção wins support é que efetivamente configura o Samba parafuncionar como servidor WINS.

Page 61: Linux - Samba (Pt_BR)

61

11 O SAMBA ATUANDO COMO PDC

11.1 Domínios do WindowsCom os tradicionais “grupos de trabalho”, o Windows 9x aceitam cada

usuário e senha que forem fornecidos na hora do logon (não existem usuáriosnão autorizados). O sistema operacional simplesmente solicita uma novasenha qe autentica o usuário com a senha que possui. A única vez que oWindows 9x tenta usar uma senha que foi fornecida é quando se está tentandoconectar a outro compartilhamento.

Entretanto, os logons de domínio são similares ao sistema Unix. Paralogar em um domínio, um usuário válido e uma senha devem ser fornecidos nainicialização e serão autenticados no banco de dados de senhas do PDC. Se asenha não for válida, o usuário será automaticamente notificado e não efetuaráum logon no domínio.

Outra vantagem é que depois de feita a autenticação de um usuário,este pode acessar qualquer um dos recursos compartilhados do domínio semter que se reautenticar.

11.2 Configurando o Servidor Samba

11.2.1 Clientes Windows 9xPara configurar o servidor Samba para que atue como PDC de um

cliente Windows 9x, existem alguns pré-requisitos:

• O Samba seja o único controlador primário de domínio do grupo detrabalho atual;

• Exista um servidor WINS disponível na rede, que pode ser umamáquina Samba ou Windows NT;

• O Samba esteja configurado com nível de segurança de usuário.Para isso, é necessária a inclusão das seguintes opções no arquivo de

configuração do Samba:

[global] workgroup = DESIGN domain logons = yes security = user os level = 254 local master = yes preferred master = yes domain master = yes

Page 62: Linux - Samba (Pt_BR)

62

A opção domain logons configura o Samba para aceitar logons comoum controlador primário de domínio. Quando um cliente faz um logon nodomínio, o Samba retorna um token especial para os clientes que permite queeles acessem compartilhamentos de domínio, sem consultar o PDC novamentepara autenticação.

Já a opção os level determina a preferência deste servidor na“eleição” sobre qualquer outro sistema. Para garantir que o Samba ganhe aeleição configure o os level como 254. Para maiores informações, veja oarquivo BROWSING.txt no diretório de documentação do Samba. Jamaispromova o Samba a mestre de domínio ou coloque um OS level muito alto se oPDC for outro computador – em particular se for o Windows NT. Do contráriohaverá uma guerra pela função: nenhum dos servidores aceitará perder aeleição, convocando novas votações em seqüencia, e aumentando o tráfego narede.

A opção local master determina se o samba pode vir a se tornar omaster browser local em uma sub-rede.

A opção preferred master força o Samba a uma eleição de browserlocal na inicialização e dá a ele uma chance um pouco maior de vencer aeleição e tornar-se master browser.

A opção domain master = yes determina que o Samba seja o masterbrowser do domínio, permitindo que o Samba “confira” listas de máquinas entreredes.

Após a configuração das opções será necessário criar umcompartilhamento de disco chamado [netlogon], não importando para ondeele apontará, desde que cada cliente Windows consiga conectar-se a ele.

[netlogon]comment = Serviço de logon de domíniopath = /home/samba/netlogonpublic = nowriteable = nobrowseable = no

O compartilhamento não pode ser public, writeable oubrowseable. Ele será usado pelos scripts de logon.

11.2.2 Clientes Windows NTA configuração para clientes Windows NT exige alguns passos a mais.

Além das verificações anteriores, é preciso assegurar-se de que o Sambaesteja usando senhas criptografadas. Ou seja, será necessário incluir a opçãoencript password = yes:

[global]

Page 63: Linux - Samba (Pt_BR)

63

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 confiáveis (trusted accounts)Após a inclusão da opção sobre senhas, é preciso criar um conta

confiável. Todos os clientes Windows NT usam-nas para conectar a umcontrolador primário de domínio. Estas contas permitem a uma máquinaefetuar um logon no PDC ( não em seus compartilhamentos), o que significaque o PDC pode confiar em quaisquer conexões posteriores de usuáriosnaquele cliente. Para todos os objetivos e propósitos, uma conta confiável éidêntica a uma conta de usuário. Serão usadas contas de usuário padrão doLinux para emular usuários confiáveis no servidor Samba.

O nome de login da conta confiável de uma máquina é o seu nome comum sinal de “$” no final, por exemplo alfa$. A senha inicial da conta ésimplesmente o nome da máquina em letras maiúsculas. Para produzir estaconta será necessário criar uma nova conta no Unix com o nome apropriado damáquina, assim como uma senha criptografada no banco de dadossmbpasswd.

Em primeiro lugar é preciso adicionar um usuário ao sistema, para queseja suportada a conta confiável. Esta conta não precisa ter um diretório homeou um shell válido, pois sua única parte que interessa é se o login é permitido.Assim, será necessário, por exemplo, inserir a seguinte entrada no arquivo/etc/passwd:

bart$:x:200:1000:Maquina Homer:/dev/null:bin/false

Além disso, não é necessário designar uma senha válida para esteusuário (no arquivo /etc/shadow), pois o Samba irá usar o arquivo smbpasswdpara manter a senha. Não se deseja que alguém execute um telnet namáquina usando aquela conta. Na verdade o único valor usado diferente donome da conta é o UID da conta para o banco de dados de senhascriptografadas (200). Este número deve mapear para um ID de um únicorecurso no servidor NT e não pode conflitar com outros IDs. Portanto, nenhumusuário ou brupo NT deve mapear para este número, ou um erro ocorrerá.

Após a criação da conta, é necessário adicionar a senha criptografada;para isto será usado o comando smbpasswd.

# smbpasswd –am omega

Page 64: Linux - Samba (Pt_BR)

64

A opção “a” significa que uma conta está sendo adicionada e a opção“m“ que esta é uma conta de máquina. Não será necessário fornecer umasenha, pois o smbpasswd irá automaticamente configurar a senha inicialcriptografada como o NetBIOS da máquina em letras minúsculas. Não énecessário adicionar $ ao final do nome da máquina, isto é automático.

O Samba está agora pronto para aceitar conexões de clientes WindowsNT.

11.3 Limitações do Samba na integração com Windows NTA grande limitação do Samba é não poder se filiar como servidor a um

domínio, pois tal capacidade depende do protocolo SAM, cujo modus operandinão é divulgado pela Microsoft. Especificamente, o Samba não pode:

• Ser BDC de um domínio NT, pois não tem acesso ao SAM do PDC;

• Possuir BDCs;

• Ser um servidor “agregado”, cujos recursos e permissões sãogerenciados de forma centralizada no PDC;

• Ser um servidor de backup WINS;

• Ter servidores de de backup WINS;Por outro lado, o Samba pode, entre outras coisas:

• Ser um PDC, com clientes Windows 9x, NT e 2000;

• Ser um servidor WINS, desde que não tenha que interagir com outrosservidores WINS;

• Dar suporte a logons ao domínio (9x/NT);

• Dar suporte a roaming profiles (9x/NT);

• Autenticar a senha de um usuário junto a outro servidor Samba ouNT, seja ou não um PDC

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 nãooferece interoperabilidade com esses protocolos.

Page 65: Linux - Samba (Pt_BR)

65

12 ARQUIVOS DE LOG DO SAMBA

As vezes é necessário saber o que o samba pode fazer, principalmentequando ele não está se comportando conforme o esperado. Este tipo deinformação pode ser encontrado nos arquivos de log do Samba, onde épossível ver o motivo de suas ações.

O Samba disponibiliza várias opções que permitem aos usuáriosdescrever como e onde as informações de logging devem ser escritas. Estassão opções globais e não podem aparecer dentro das definições doscompartilhamentos.

Veja um arquivo de configuração 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 quereporta informação até o nível 2, que é relativamente baixo. Os níveis delogging podem variar de 0 a 10, sendo que o 10 é o que fornece maiorquantidade de informação. O nível 2 irá fornecer informação de depuraçãosem desprdiçar espaço no servidor. Os níveis acima de 3 são usados apenaspara desenvolvimento.

Os arquivos de log estão normalmente localizados no diretório/var/log. Mas é possível usar variáveis de substituição para criar arquivosde log específicos para usuários ou clientes:log file = /usr/local/logs/samba.log.%m

O isolamento das mensagens de log facilita a procura por erros, poissabe-se especificamente qual é a máquina ou usuários que estão causandoproblemas.

Page 66: Linux - Samba (Pt_BR)

66

Aconselha-se que cada arquivo de log não exceda o tamanho de 50K,conforme especificado na opção max log size. Se o arquivo exceder estetamanho, terá acrescentado o sufixo .old, e um novo será criado. Caso jáexista um arquivo .old, será destruído. Isto previne que o um disco fiquelotado pelos arquivos de log durante a execução dos daemons.

12.1 Opção log fileEsta opção determina onde os arquivos de log do Samba deverão ser

gravados. Por exemplo, para configurar o nome e a localização do arquivo delog para /var/log/samba/samba.log, será necessário:

[global] log file = /var/log/samba/samba.log

Como já foi visto antes, podem ser usadas variáveis para criar logsespecíficos para cada usuário.

12.2 Opção max log sizeEsta opção configura o tamanho máximo 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, oSamba irá criar um arquivo novo e salvar o antigo com a extensão .old.

É recomendado configurar esta opção, pois estas informações de logpodem ocupar muito espaço em disco e evita-se desta maneira queadministradores descuidados descubram de repente que o disco do servidor foitotalmente ocupado por um único arquivo de log do Samba.

Page 67: Linux - Samba (Pt_BR)

67

13 CONFIGURANDO O SAMBA REMOTAMENTE

Além de ser um software de uso livre e compatível com redes existentes,o SAMBA ainda possui outra característica: permite ser administradoremotamente. Para isso deve utilizar um programa específico que geralmentetrabalha via http. É possível monitorar através de sua rede interna ou mesmoatravés da Internet.

Os principais programas são o SWAT, Webmin e o LinuxConf. Existemoutros mas não vou entrar em detalhes de como instalar estes programas ouutilizá-los, mas abaixo está o link para downloads, inclusive de programas paraadministrar o SAMBA através da Interface Gráfica do Linux:http://us4.samba.org/samba/GUI

13.1 Utilizando o SWATAlém do Linuxconf, é possível configurar o SAMBA através de uma outra

interface amigável: o SWAT. O SWAT é uma interface web para aconfiguração. Uma grande vantagem do SWAT é que ele permite aconfiguração remota de um servidor SAMBA, já que só é necessário acessar amáquina pela Internet.

Para habilitar o SWAT a partir de seu servidor é necessário editar oarquivo /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ê não encontreuma linha semelhante, pode-se adicionar a linha acima.

Se você possui o xinetd instalado ao invés do inetd, procure adocumentação do xinetd para habilitar o SWAT. Basicamente, você devecriar um arquivo em /etc/xinetd.d com a configuração do SWAT e reiniciaro xinetd.

Após feita a edição, o serviço inetd deve ser reiniciado, e você poderáfazer isso através do Linuxconf ou digitando o seguinte comando em umterminal:

# service inetd restart

A partir do momento em que o inetd for reiniciado, o SWAT seráacessível através da porta 901 de seu servidor , através de qualquernavegador.

O Samba pode ser configurado através do Swat, um utilitário deconfiguração via Web, semelhante ao encontrado em alguns roteadores. Paraacessa-lo basta abrir o Konqueror ou outro Browser disponível e acessar oendereço http://localhost:901 basta fornecer a senha de root paraacessar.

Page 68: Linux - Samba (Pt_BR)

68

Antes de mais nada você deverá criar logins para todos os usuários queforem acessar o servidor. Você pode fazer isso através do Iniciar >Configuration > Other > UserDrake. Os logins e senhas devem ser os mesmosque os usuários irão utilizar para se logar no Windows. Um detalhe importanteé que na configuração de rede das máquinas Windows (Painel de controle >Redes) você deve marcar a opção de login como “Login do Windows” e nãocomo “Cliente para redes Microsoft” que é o default.

Falta agora apenas configurar o Samba para se integrar à rede ecompartilhar as pastas desejadas.

Ao abrir o Swat você verá um menu como o do screenshot abaixo, comvários links para a documentação disponível sobre o Samba, que você podeconsultar para se aprofundar no sistema. Na parte de cima estão os links paraas sessões da configuração, que é o que nos interessa:

Erro! Argumento de opção desconhecido.

Acesse primeiro a seção Password, onde você deverá cadastrar todosos usuários que terão acesso às pastas compartilhadas através do Samba, osmesmos que anteriormente cadastrou no UserDrake. Não apenas o Samba,mas vários outros programas servidores exigem que os usuários tambémestejam cadastrados no sistema, uma questão de segurança. Basta escrever onome e senha do usuário e clicar no botão add new user.

Erro! Argumento de opção desconhecido.

Em seguida, acesse a seção “Globals”, que engloba todas asconfigurações de rede e de acesso:

Erro! Argumento de opção desconhecido.

Nas opções Workgroup e NetBios name você deve colocar o nome docomputador e o grupo de trabalho a que ele pertence, como faria numamáquina Windows.

Na seção security coloque a opção Security como “User”, o quepermitirá definir quais usuários terão acesso ao sistema. A opção EncryptPassword também é importantíssima e deve ser configurada de acordo com aversão do Windows que rodar nas máquinas clientes. O Windows 95 originalnão suporta encriptação de senhas, por isso só poderá se conectar ao servidorcaso a opção seja configurada com o valor “No”. Porém, o Windows 95OSR/2, Windows 98/SE/ME, Windows NT, Windows 2000 e Windows XPutilizam senhas encriptadas, por isso ao utilizar máquinas com qualquer umdestes sistemas, que é o mais provável, a opção deve ser configurada como“Yes”.

A opção Hosts Allow deve incluir os endereços IP todos oscomputadores que terão permissão para acessar o servidor. Se quiser quetodos os PCs da rede tenham acesso, basta escrever apenas a primeira partedo endereço IP, como em 192.168.0., onde todos os endereços dentro doescopo serão permitidos.

Page 69: Linux - Samba (Pt_BR)

69

A opção Hosts Deny por sua vez permite especificar máquinas dentrodo escopo configurados na opção Hosts Allow que não terão permissão paraacessar o servidor, as exceções à regra. Por exemplo, se você configurou aopção acima como 192.168.0., mas deseja bloquear o acesso do PC192.168.0.7, basta incluí-lo aqui. Se quiser incluir várias máquinas bastaseparar os endereços por espaços.

Na seção Browse Options, a opção OS Level permite especificar qualchance o servidor Linux terá de ser o master browser do domínio. No nossocaso é desejável que ele seja o master browser pois ele está concentrandotodos os recursos acessados pelas estações. Sendo assim configure estaopção com um valor alto, 100 por exemplo, para que ele sempre ganhe aseleições. O default dessa opção é 20, que faz com que ele perca paraqualquer máquina Windows NT, Windows 2000 ou Windows XP. Paracompletar, deixe a opção Local Master como “Yes” e as opções PreferredMaster e Domain Master como “Auto”.

Abaixo, deixe a opção Wins Support ativada (Yes). A opção WinsServer deve ser deixada em branco, a menos que exista na rede algumservidor Wins. Como no seu caso o único servidor é a máquina Linux, vocêpode configurar as máquinas Windows para utilizá-la como servidor Wins, paraisto basta colocar o seu endereço IP no campo “Servidor Wins” na configuraçãode rede das estações.

Terminando, pressione o botão Commit Changes no topo da tela paraque as alterações entrem em vigor.

Finalmente, você deve configurar as pastas a serem compartilhadas comas estações, através da seção Shares:

Erro! Argumento de opção desconhecido.

Cada usuário que cadastrou no sistema já possui um diretório homecriado. Estas pastas ficam dentro do diretório /home e podem ser usadas paraguardar arquivos pessoais, já que a menos que seja estabelecido o contrário,um usuário não terá acesso à pasta pessoal do outro. Além dos diretórioshome você pode compartilhar mais pastas de uso geral.

Para criar um compartilhamento basta escrever seu nome no campo notopo da tela e clicar no botão Create Share:

Erro! Argumento de opção desconhecido.

Depois de criado um compartilhamento, escolha-o na lista e clique nobotão Choose Share para configura-la. Você verá uma lista de opções como aabaixo:

Erro! Argumento de opção desconhecido.

O campo Path é o mais importante, pois diz justamente qual pasta serácompartilhada. O nome do compartilhamento diz apenas com que novo ele

Page 70: Linux - Samba (Pt_BR)

70

aparecerá no ambiente de redes. No caso do compartilhamento do screenshota pasta compartilhada é /arquivos/programas.

A opção Read Only determina se a pasta ficará disponível apenas paraleitura (opção Yes) ou se os usuários poderão também gravar arquivos (opçãoNo). Você também pode determinar quais máquinas terão acesso aocompartilhamento através das opções Hosts Allow e Hosts Deny. Asconfigurações feitas aqui subscrevem as feitas na seção global. Se porexemplo a máquina 192.168.0.5 possui permissão para acessar o sistema, masfoi incluída na campo Hosts Deny do compartilhamento programas, ela poderáacessar outros compartilhamentos do sistema, mas não o compartilhamentoprogramas.

A opção Browseable permite configurar se o compartilhamentoaparecerá entre os outros compartilhamentos do servidor no ambiente deredes, ou se será um compartilhamento oculto, que poderá ser acessadoapenas por quem souber que ele existe. Isso tem uma função semelhante acolocar um “$” numa pasta compartilhada no Windows 98. Ela ficacompartilhada, mas não aparece no ambiente de redes.

Finalmente, a opção Available especifica se o compartilhamento estáativado ou não. Você desativar temporariamente um compartilhamentoconfigurando esta opção como “No”. Fazendo isso ele continuará no sistema evocê poderá torna-lo disponível quando quiser, alterando a opção para “Yes”.

Um detalhe importante é que os usuários só terão permissão paraacessar pastas que o login permite acessar. Por exemplo, no Linux o únicousuário que pode acessar a pasta /root é o próprio root, ou outro autorizado porele. Mesmo que você compartilhe a pasta root através do Samba, os demaisusuários não poderão acessá-la.

Para editar as permissões de uma pasta, basta abrir o gerenciador dearquivos e nas propriedades da pasta acessar a guia Permissions. Aspermissões podem ser dadas apenas ao usuário, para todos os usuáriospertencentes ao grupo do usuário dono da pasta, ou para todos os usuários. Aopção Apply changes to all subdirectories e their contents deve ficar marcadapara que as permissões sejam aplicadas também às subpastas:

Erro! Argumento de opção desconhecido.

Terminadas as configurações, o servidor já irá aparecer no ambiente deredes, como se fosse um servidor Windows. Os compartilhamentos podem seracessados de acordo com as permissões que tiverem sido configuradas epodem 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 não é muitoprático, pois além de trocar o CD-ROM, é necessário montar e desmontar aunidade apartir do servidor.

Para compartilhar uma impressora já instalada na máquina Linux oprocedimento é o mesmo. Acesse a seção printers, escolha a impressora aser compartilhada (a lista mostrará todas as instaladas no sistema), configure aopção available como yes e configure as permissões de acesso como

Page 71: Linux - Samba (Pt_BR)

71

vimos anteriormente. No Mandrake você pode instalar impressoras através doMandrake Control Center. Caso você esteja usando outra distribuição e outilitário não esteja disponível, tente o linuxconf.

13.2 Acessando compartilhamentos de máquinas WindowsO Samba também inclui um módulo cliente, o smbclient que pode ser

usado para fazer inverso, ou seja, acessar compartilhamentos de máquinasWindows 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 deusuário e em seguida mostrará uma lista dos compartilhamentos disponíveis namáquina que solicitou:

Erro! Argumento de opção desconhecido.

Lembre-se as máquinas Windows 95/98/ME aceitam conexões de redepor parte de qualquer usuário. A única opção de segurança é colocar senhasnos compartilhamentos. Mas, as máquinas rodando Windows NT ou Windows2000 precisam ser configuradas para dar acesso ao login que você estáutilizando na máquina Linux. Para isso basta acessar o painel de controle >usuários e senhas (no Windows 2000) e adicionar o login e senha.

Voltando à configuração do smbclient, depois de decidir qualcompartilhamento 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” disponível na máquinaascot no diretório /mnt/windows da máquina 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 diretório qualquer dentro de outro diretório do sistemapara que este possa ser acessado. A opção -t serve para especificar osistema de arquivos, já que não estamos utilizando um sistema de arquivosnativo do Linux. O smbfs indica o sistema de arquivos que será utilizado, estesistema que permite mapear unidades de rede compartilhadas pelo Windows.

Em seguida, especificamos o compartilhamento e o diretório onde eleserá montado seguido pelo “-o”. Este é só um exemplo. Se você for montar ocompartilhamento arquivos dentro da máquina ricardo no diretório/home/maria/ricardo da máquina Linux, o comando seria:mount -t smbfs //ricardo/arquivos /home/maria/ricardo -opassword=xxxxx

E assim por diante.

Page 72: Linux - Samba (Pt_BR)

72

No password=xxxxx você deve informar a senha do compartilhamentoque está sendo acessado. Se ele não tiver senha, basta deixar este últimocampo em branco.

Depois do comando você pode dar um ls no diretório onde ocompartilhamento foi montado só para checar se os arquivos realmente estãolá:

Erro! Argumento de opção desconhecido.

Depois de montado, o compartilhamento pode ser acessado pelogerenciador de arquivos da sua interface (Konqueror no KDE, Nautilus noGnome, etc.):

Erro! Argumento de opção desconhecido.

No Mandrake 8.1 e outras distribuições que trazem a ferramentaDiskDrake, como por exemplo o TechLinux, você pode montar as partiçõesWindows de um jeito mais prático.

O DiskDrake pode ser encontrado dentro do Mandrake Control Centerna seção Hardware > Pontos de Montagem. A parte que nos interessa está naaba “Samba”:

Erro! Argumento de opção desconhecido.

O funcionamento é muito simples. Clique em “novo” e aponte ocompartilhamento a ser montado na janela que será aberta. Serão mostradostodos os compartilhamentos disponíveis na rede, inclusive os de outrasmáquinas Linux rodando o Samba.

Erro! Argumento de opção desconhecido.

Em seguida, basta fornecer o ponto de montagem desejado. Note quedentro do diskdrake você tem privilégios de root e pode montar oscompartilhamentos onde quiser. Mas, tenha o cuidado de não montar numapasta onde seu login de usuário (ou de quem for usar a máquina) não tenhapermissão de acesso.

Erro! Argumento de opção desconhecido.

Para finalizar, basta montar o sistema de arquivos para ter acesso. Pordefault, ele passará a ser montado a cada inicialização do sistema, até quevocê volte aqui e desmonte-o. Mas, você pode alterar isso na seção “opções”.

Erro! Argumento de opção desconhecido.

Page 73: Linux - Samba (Pt_BR)

73

13.3 Configurando manualmenteSe por qualquer motivo o Swat não estiver instalado no seu sistema, ou

você preferir configurar tudo manualmente, basta abrir o arquivo smb.conf,que concentra as configurações do Samba, num formato semelhante ao dasopções do Swat, mantendo as mesmas seções: global, homes, printers, etc.Ao instalar o Samba é criado um smb.conf com configurações default, vocêprecisará apenas alterar as mesmas opções que alteraria no Swat.

O smb.conf pode ser encontrado em /etc/samba (no caso doMandrake e RedHat 7) ou em /etc (no caso de algumas distros). Para abri-lo,com privilégios de root, você pode digitar simplesmente kdesu kedit/etc/samba/smb.conf num terminal.# Global parameters[global]workgroup = HOMEnetbios name = BETA-2server string = Samba Server %vinterfaces = eth0encrypt passwords = Yeslog file = /var/log/samba/log.%mmax log size = 50socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192printcap name = lpstatos level = 100dns proxy = Nohosts allow = 192.168.0.printing = cups

[homes]comment = Home Directoriesread only = Nobrowseable = No

[printers]comment = All Printerspath = /var/spool/sambacreate mask = 0700guest ok = Yesprintable = Yesprint command = lpr-cups -P %p -o raw %s -r # using client sideprinter drivers.lpq command = lpstat -o %plprm command = cancel %p-%jbrowseable = No

[morimoto]

Page 74: Linux - Samba (Pt_BR)

74

path = /home/morimotoread only = No

[cd]path = /mnt/cdrom

[HP]path = /var/spool/sambaread only = Nocreate mask = 0700guest ok = Yesprintable = Yesprint command = lpr-cups -P %p -o raw %s -r # using client sideprinter drivers.lpq command = lpstat -o %plprm command = cancel %p-%jprinter name = HPoplocks = Noshare modes = No

O Swat serve apenas como uma interface para a edição deste arquivo.Seja qual for o modo de configuração escolhido, basta fazer backups regularesdeste arquivo para restaurar as configurações do servidor em caso deproblemas.

Sempre que alterar manualmente smb.conf, ou mesmo alterar algumasopções pelo Swat e quiser verificar se as configurações estão corretas, rode otestparm (basta chama-lo num terminal). Ele funciona como uma espécie dedebug, indicando erros grosseiros no arquivo.

Se por acaso você estiver utilizando uma distro que não venha com oSamba, basta baixar o RPM adequando à sua distribuição aqui:http://us1.samba.org/samba/ftp/Binary_Packages

Para instalar, basta clicar sobre o arquivo ou usar o comando rpm -ivhnome_do_arquivo no terminal.

Depois de instalar o arquivo e configurar o smb.conf, use os comandosabaixo para inicializar, parar e verificar o status do serviço 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 também é muito útil, pois permite verificar quaisestações estão conectadas ao servidor e quais recursos estão sendoacessados no momento.

Page 75: Linux - Samba (Pt_BR)

75

14 CONSIDERAÇÕES

O SAMBA permite ainda muitas outras configurações que podem serconsultadas através do man do smb.conf. Uma documentação importante estáem /usr/doc/samba-2.2.x/ com dicas e referencias a segurança,navegação, compatibilidades, etc.

Uma característica das versões mais recentes do SAMBA é apossibilidade de um cliente NT/2000 usar sua interface nativa de configuraçãopara ver e modificar permissões no Linux. O parâmetro "nt acl support =yes" deve ser adicionado na seção [global] do smb.conf.

A aplicação smbmount vem inclusa no pacote do SAMBA (samba-client)com a função de possibilitar a montagem de um compartilhamento de outramáquina localmente. É uma ótima ferramenta mas pode apresentarproblemas, onde os mais conhecidos são quando compartilhamos unidades deCD via rede. O comando mount é mais seguro e pode fazer exatamente amesma tarefa, com a seguinte sintaxe:

mount -t smbfs -o username=usuario,password=senha//estacao/pasta /local

O diretório /local deve ser criado antecipadamente. Vale a penaescrever uma linha no /etc/fstab para facilitar o processo.

Não é aconselhável reiniciar o SAMBA a cada modificação nosmb.conf. Com exceção a parâmetros como "path", "logon master", eoutros que definem acesso ou segurança, a criação de compartilhamentos epermissões de acesso são automaticamente validadas pelo Samba. Muitosprogramas ficam "salvando" arquivos constantemente enquanto estão abertos,e se neste momento você reiniciar o SAMBA será um risco de se perder oarquivo.

Se o SAMBA deve diferenciar maiúsculas e minúsculas quandoprocurando por arquivos, adicione "case sensitive = yes". Para utilizarcomo padrão letras maiúsculas ou minúsculas quando os arquivos são criados,adicione "default case = lower (ou upper)". Para preservarmaiúsculas e minúsculas para todos os nomes de arquivo, adicione "preservecase = yes". Para preservar maiúsculas e minúsculas para nomes DOS(8.3), adicione "short preserve case = yes".

Se o servidor possui mais de uma placa de rede, o smb.conf deveconter uma especificação para qual placa será utilizada pelo Samba. Adicioneo seguinte parâmetro: "interfaces = 192.168.1.1/24", onde o númerodepois da / é uma referencia à máscara de sub-rede. "24" é o valor a usar parauma rede Classe C não segmentada. Para mais informações sobre cálculo desub-redes visite: http://www.ziplink.net/~ralphb/IPSubnet/index.html

O SAMBA atualmente não pode ser utilizado como BDC (Backup Server)em conjunto com um PDC Windows NT ou 2000. Tanto as versões 2.0.xquanto as 2.2.x ainda não estão prontas para tal tarefa (pelo menos por

Page 76: Linux - Samba (Pt_BR)

76

enquanto). O Samba de modo geral não permite "trust relationship" entreservidores Windows (NT e 2000). Quem sabe após ler estas linhas esterecurso já tenha sido disponível? :)

Todos os parâmetros de configuração apresentados neste manual sãoválidos para as versões 2.0.x e 2.2.x do Samba. Caso alguém encontrealguma incompatibilidade, peço que entre em contato ok!

Lembre-se que a documentação do SAMBA (do protocolo SMB emgeral) é extensa. Consulte os docs criados após a sua instalação. Você podetambém obter referencias em documentações do LDP (Linux DocumentationProject), que no Brasil está em http://br.tldp.org/.

Page 77: Linux - Samba (Pt_BR)

77

APÊNDICE A. LICENÇA DE PUBLICAÇÃO LIVRE

Esta é uma tradução não-oficial da Open Publication License versão 1.0,de 8 de junho de 1999, e não é substituto legal para a Licença original,disponível em http://www.opencontent.org/openpub. Entretanto, esta traduçãopoderá auxiliar pessoas que falem Português a entender melhor a licença. Épermitido a qualquer pessoa copiar e distribuir cópias desse documento delicença, desde que sem a implementação de qualquer mudança.

OPEN PUBLIC LICENSEDraft v1.0, 8 june 1999

I. Requisitos comuns às versões modificadas e nãomodificadas

Os trabalhos protegidos pela Licença de Livre Publicação (OpenPublication License) podem ser reproduzidos e distribuídos no todo ou emparte, em qualquer meio físico ou eletrônico, desde que os termos destalicença estejam incluídos, e que esta licença ou uma incorporação dela porreferência (com quaisquer das opções escolhidas pelo autor ou editor) estejampresentes na reprodução.

A forma apropriada para uma incorporação por referência deste livro é:

Copyright© 2002 Alfamídia Ltda. Este material somente poderá serdistribuído se sujeito aos termos e condições firmados na Licençade Livre Publicação (Open Publication License), versão 1.0 ousuperior (a versão mais atual encontra-se disponível emhttp://www.opencontent.org/openpub/).

Esta referência, devidamente preenchida com os dados da publicação,deve ser seguida imediatamente com quaisquer opções escolhidas pelosautores ou editor do documento (consultar a seção Termos opcionais).

É permitida a redistribuição comercial de material licenciado pelaLicença de Livre Publicação (Open Publication License).

Qualquer publicação no formato livro padrão (papel) requerobrigatoriamente a citação dos autores e editor originais. Os nomes dosautores e do editor devem aparecer em todas as superfícies externas do livro.Em todas as faces externas do livro, o nome do editor original deve estarimpresso em tamanho tão grande quanto o título do trabalho, e citado comoproprietário em relação àquele título.

II. CopyrightO copyright de todo trabalho protegido pela Licença de Livre Publicação

(Open Publication License) pertence aos autores ou proprietários.

Page 78: Linux - Samba (Pt_BR)

78

III. Escopo da licençaOs termos de licença a seguir aplicam-se a todos os trabalhos

protegidos pela Licença de Livre Publicação (Open Publication License), a nãoser que explicitamente indicado no trabalho.

A mera adição de trabalhos protegidos pela Licença de Livre Publicação(Open Publication License) ou partes de trabalhos protegidos pela Licença deLivre Publicação (Open Publication License) em uma mesma mídia quecontenha outros trabalhos ou programas não protegidos por essa licença nãodecorre em aplicação da Licença de Livre Publicação (Open PublicationLicense) para esses outros trabalhos. O trabalho resultante deve explicitamenteconter uma nota especificando a inclusão do material protegido pela Licença deLivre Publicação (Open Publication License) e o aviso de copyright apropriado.

APLICABILIDADE. Se alguma parte desta licença não puder seraplicada em alguma jurisdição, as partes restantes deste documento continuamsendo aplicadas.

AUSÊNCIA DE GARANTIA. Os trabalhos protegidos pela Licença deLivre Publicação (Open Publication License) são fornecidos "como estão", semgarantias de qualquer tipo, explícita ou implícita, incluindo, mas não limitado a,as garantias implícitas de comercialização e conveniência para um propósitoparticular, ou garantia de não-infração.

IV. Requisitos para trabalhos modificadosTodas as versões modificadas de documentos cobertos por esta licença,

incluindo traduções, antologias, compilações e documentação parcial, deveseguir os requisitos abaixo:

A versão modificada deve ser indicada como tal.As pessoas que fizerem as modificações e as datas de modificação

devem ser identificadas.O reconhecimento dos autores e editor originais (se aplicável) deve ser

mantido de acordo com as práticas acadêmicas usuais de citação.O local da versão não-modificada do documento deve ser indicado.Os nomes originais dos autores não devem ser utilizados para indicar ou

garantir seu endosso ao documento resultante sem a autorização expressa dosautores.

V. Práticas recomendadasEm adição aos requisitos desta licença, é solicitado e extremamente

recomendado aos redistribuidores que:Se os trabalhos protegidos pela Licença de Livre Publicação (Open

Publication License) estiverem sendo distribuídos em impressos ou CD-ROM,os autores sejam informados por email, ao menos trinta dias antes, para que osautores tenham tempo de providenciar documentação atualizada. Estanotificação deve descrever as modificaçoes introduzidas no documento, seexistirem.

Page 79: Linux - Samba (Pt_BR)

79

Todas as modificações substanciais (incluindo exclusões) devem sermarcadas claramente no documento, ou então descritas em um anexo aodocumento.

Finalmente, mesmo não sendo obrigatório sob esta licença, éconsiderado de bom tom oferecer uma cópia sem ônus de todo o materialmodificado (impresso e CD-ROM) para os autores originais.

VI. Termos opcionaisOs autores e editores de documentos protegidos pela Licença de Livre

Publicação (Open Publication License) podem escolher certas opções delicença simplesmente incluindo alguns parágrafos após a cópia da licença ousua referência. Estas opções são consideradas parte da licença e devem serincluídas com ela (ou com a referência a ela) nos trabalhos derivados.

As opções que se aplicam a este trabalho são:A:É vedada a distribuição de versões com modificações substanciais

deste documento sem a expressa permissão dos proprietários do direitoautoral.

B:É vedada a distribuição deste trabalho ou qualquer derivado seu emqualquer formato de livro padrão (papel) sem a prévia autorização dosproprietários do direito autoral.

Políticas de Publicação Livre(O texto a seguir não é considerado parte da licença.)Os trabalhos protegidos pela Licença de Livre Publicação (Open

Publication License) estão disponíveis e podem ser acessados na home pageda Open Publication http://works.opencontent.org/ .

Os autores de trabalhos protegidos pela Licença de Livre Publicação(Open Publication License) podem incluir suas próprias licenças nessestrabalhos, desde que os termos dessa licença não sejam mais restritrivos queos da Licença de Livre Publicação (Open Publication License).

Em caso de dúvidas sobre a Licença de Livre Publicação (OpenPublication License), contactar David Wiley <[email protected]> ou a lista deautores de publicações <[email protected]> via email.

Para se inscrever na lista de autores de publicações livres (OpenPublication Author's List), mande um email para <[email protected]>com a palavra subscribe no corpo da mensagem.

Para enviar mensagens para a lista de autores de publicações livres(Open Publication Author's List), mande um email [email protected] ou simplesmente responda a uma mensagempostada.

Para se desinscrever na lista de autores de publicações livres (OpenPublication Author's List), mande um email para [email protected] com a palavra unsubscribe no corpo damensagem.

Page 80: Linux - Samba (Pt_BR)

80

APÊNDICE B. CONFIGURAÇÃO GERAL

Toda a configuração do SAMBA é centralizada no arquivo smb.conf,que deve ser guardado no diretório /etc ou /etc/samba, dependendo dadistribuição.

Nele é que são descritos os compartilhamentos, permissões de acesso,impressoras, dentre outras configurações disponíveis. Quando instalado, oSAMBA disponibiliza os seguintes componentes:

• smbd O servidor SAMBA.

• nmbd O Servidor de nomes NetBios

• smbclient Cliente SMB para sistemas Unix.

• smbmount Ver final do documento, em Configurações.

• smbpasswd Alterar senhas (encriptadas) de usuários smb.

• smbprint Cliente para envio de impressão a sistemas Linux.

• smbstatus Apresenta o estado atual das conexões SMB noHost.

• testparm Verifica a validade do arquivo smb.conf.

• testprns Verifica a comunicação via rede com asimpressoras.

O smb.conf é dividido basicamente em três partes: a configuração doservidor SAMBA (parâmetros na seção [global], [printers] e[netlogon]), a configuração dos diretórios/pastas pessoais dos usuários(parâmetros na seção [homes]) e as demais seções que correspondem aosdiretórios compartilhados.

Cada seção é representada entre colchetes [seção], e os parâmetrossão seguidos do sinal de igual (=) e o valor ou termo correspondente.

Confira abaixo um exemplo do smb.conf para um servidor Samba comoPDC da rede:

[global]comment = Servidor SAMBAworkgroup = EMPRESAsecurity = useros level = 100announce as = NT Serverdomain logons = yeslogon script = %U.batlogon path = //%L/Profiles/%Udomain master = yeslocal master = yes

Page 81: Linux - Samba (Pt_BR)

81

preferred master = yesguest account = nobodyencrypt passwords = yes# wins server = 192.168.0.2wins support = yeskeep alive = 20debug level = 3winpopup command = /bin/csh -c 'xedit %s; rm %s' &log file = /var/log/samba_log.%unull passwords = nounix password sync = yessocket options = IPTOS_LOWDELAY TCP_NODELAYprinting = bsdprintcap name = /etc/printcapload printers = yeshosts allow = 192.168.0. 127.hosts deny = 192.168.0.3 192.168.0.4

[homes]comment = Pastas dos Usuariospublic = nobrowseable = yeswriteable = yeshosts deny = 192.168.0.250

[printers]comment = Impressoras Linuxpublic = nobrowseable = yesprintable = yesread only = yescreate mode = 0700path = /var/spool/sambaadmin users = admin, usuario1

[netlogon]comment = Compartilhamento de Scriptspath = /etc/scriptspublic = nobrowseable = yeswriteable = no

[diretoria]comment = Grupo Diretoriapath = /home/diretoria

Page 82: Linux - Samba (Pt_BR)

82

public = nobrowseable = yesvalid users = @diretoriawriteable = yeswrite list = @diretoriaforce create mode = 0777force directory mode = 0777

[comercial]comment = Grupo Comercialpath = /home/comercialpublic = yesbrowseable = yeswriteable = yeswrite list = @comercialread list = @marketingforce create mode = 0777force directory mode = 0777

[transf]comment = Area de Transferenciapath = /home/transfpublic = yesbrowseable = yeswriteable = yeswrite list = @todosforce create mode = 0777force directory mode = 0775max disk size = 200

[oculto$]comment = Especifico do Adminpath = /home/admin/ocultocopy = homesmax connections = 1

B.1. Conhecendo os parâmetros

B.1.1. Seção [global]Define as configurações globais do SAMBA. A relação abaixo apresenta

a explicação dos parâmetros do exemplo:

Page 83: Linux - Samba (Pt_BR)

83

• commentComentário para este Host na Rede.

• workgroup Especifica o Domínio ou Workgroup a que o Hostpertence na Rede.

• security Por padrão o SAMBA utiliza a segurança a nível deusuário (security = user), com opções:

o security = share senhas de acesso serão solicitadas porcada recurso compartilhado e não por usuário, ou seja, cadadiretório ou impressora poderá ter uma senha única conhecidapelos usuários autorizados. Esta opção é geralmente usada p/estações de trabalho Linux, onde em diversos casos simplificao acesso a dados locais quando necessário.

o security = user as permissões são dadas de acordocom o login do usuário, ou através dos grupos (@grupo).

o security = server o SAMBA tentará validara senhado usuário enviando os dados para outro servidor SMB, comooutro servidor SAMBA ou um servidor Windows. Deve-seincluir o parâmetro .password server = x.x.x.x. na seção[global] do smb.conf.

o security = domain usado se o Host for adicionado aum Domínio Windows através do comando smbpasswd.Neste caso as informações de usuário e senha serão enviadaspara o PDC da rede, exatamente como o servidor NT faria.Note que é necessário que a conta do usuário exista tanto noLinux quanto no servidor primário (mais adiante isso seráexplicado de forma detalhada).

• os level este parâmetro não é obrigatório se você não possuium servidor Linux ou Windows na rede, mas deve ser usado casotenha um ou mais. A variável é um número de 1 a 255, onde 65 é amesma variável utilizada pelo servidor Windows. Especifique umnúmero maior que este (como 100 por exemplo) para garantir que oservidor SAMBA seja eleito na escolha de validação do login dasestações.

• announce as permite especificar o tipo de servidor NetBios (nmbd)que será divulgado na rede. As opções aceitas pelo SAMBA: "NTServer", "NT Workstation", "Win95" ou "WfW".

• domain logons usado para validar o login na rede, apenaspara estações Windows.

• logon script indica qual arquivo de logon script seráexecutado para os usuários. A variável %u corresponde ao usuáriona rede. Deve também ser criado um compartilhamento de nome[netlogon] apontando para o diretório dos scripts.

• logon path indica o caminho do perfil remoto do usuário. Avariável %L corresponde ao nome do servidor NetBios (que pode sero próprio SAMBA). O logon path é útil quando usuários costumam

Page 84: Linux - Samba (Pt_BR)

84

efetuar logon em mais de um Host na rede, pois seu perfil é trazidocom o logon. No caso do exemplo, o diretório "Profiles" deve conteros scripts (em formato Microsoft usando NET USE e etc) e os scriptsdevem ser criados com o notepad do Windows por exemplo, a fim deconservar o formato do arquivo.

• domain master indica se o Host será o Domain MasterBrowser da rede inteira (WAN).

• local master indica se o Host será o Master Browser da redelocal. preferred master. Este parâmetro força a eleição do SAMBAcomo Master Browser para o workgroup. É recomendável utilizareste parâmetro em conjunto com o "domain master = yes" paragarantir a eleição. Mas tome cuidado: se você possui uma rede comservidores Windows e SAMBA e já possui um servidor como DomainMaster, não use esta opção e deixe o parâmetro "os level = 65" parahaver equilíbrio.

• guest account o SAMBA trabalha melhor em redes Microsoftcom a existência de uma conta guest (visitante em inglês). Porpadrão a conta usada é nobody (a mesma utilizada pelo Apache).

• wins server indica qual o servidor de Wins da rede. Se o próprioHost for o servidor de Wins então não utilize este parâmetro, poishaverá um loop e o sistema travará!

• wins supportpermite ao SAMBA ser o servidor de Wins na rede.Isto significa que o SAMBA terá uma tabela com o ambientecompleto da rede, garantindo que as estações tenham acesso aestas informações e ganho em velocidade para encontrar e acessaros compartilhamentos e impressoras. O Wins Server deve serespecificado na configuração de rede (TCP/IP) das estações,indicando o endereço IP do servidor.

• keep alive Como máquinas rodando Windows tendem a travarcom o passar do tempo, este parâmetro é usado para verificar oestado da conexão, evitando tráfego desnecessário na rede.Também pode ser usado para estações Linux.

• debug level Parâmetro usado para dar flexibilidade aconfiguração do sistema. Permite ao SAMBA trabalhar corretamentecom algumas situações de erro, por exemplo.

• winpopup command Especifica qual comando será executadoquando o servidor receber mensagens Winpopup. Aqui, muitasopções podem ser usadas de acordo com a preferência doAdministrador. Se sua rede utiliza mensagens deste tipo, éinteressante definir um comando para o parâmetro, evitando assimpossíveis mensagens de erro para quem enviou a mensagem aoservidor.

• log file Indica o arquivo de log do SAMBA. A variável %ucorresponde ao nome de logon do usuário. O samba por padrãogera arquivos de log em /var/log/samba que indicam por exemplo os

Page 85: Linux - Samba (Pt_BR)

85

horários de logon dos usuários, quem acessou determinado arquivo,etc. Esteja atento para estas informações para consultas quandonecessário.

• null passwords Indica se será ou não possível que usuáriostenham senha nula de logon (logon sem senha).

• unix password sync Se este parâmetro for ativado (= yes)então clientes SMB (como estações Windows) poderão trocar suasenha de login.

• socket options Este parâmetro permite configurações extraspara o protocolo, possibilitando uma melhor performance do servidorem lidar com os pacotes na rede.

• printing Indica qual o sistema de impressão padrão utilizadopelo Linux.

• printcap name Indica o arquivo para busca das definiçõesdas impressoras.

• load printers Disponibiliza as impressoras para a rede.

• hosts allow Indica quais máquinas tem acesso ao servidorSAMBA. Pode-se utilizar o endereço IP ou o nome da máquina.Para garantir acesso a toda uma rede por exemplo, escreva: "hostsallow = 192.168.1.". Este parâmetro deve ser usadopreferencialmente nas demais seções, mas também pode ser usadona seção Global.

• hosts deny Como em "hosts allow", mas para restringir o acessoao servidor SAMBA.

B.1.2. Seção [homes]Define os parâmetros para as pastas pessoais dos usuários na rede

(home dir):

• comment comentário para este compartilhamento.

• public também conhecido como "guest ok", permite ou nãoacesso de outros usuários.

• browseable Define se o compartilhamento será ou não visívelpara o Ambiente de Rede. Estações Windows95 versão 4.00.950-Cnão aceitam esta opção, onde uma possível solução é utilizar o nomedo compartilhamento seguido de $ (teste$ por exemplo), como faz-seno Windows.

• writeable Indica se o usuário poderá ou não escrever em suapasta pessoal (home dir).

Page 86: Linux - Samba (Pt_BR)

86

B.1.3. Demais Seções [shares]Correspondem aos compartilhamentos presentes na rede. Os

parâmetros abaixo são apenas alguns dos possíveis que podem ser utilizados:

• commentComentário para o compartilhamento.

• path Caminho do diretório compartilhado.

• valid users Este parâmetro é usado para destacar quem teráacesso ao compartilhamento na rede. É importante destacar queestações Win95/98/Me têm diferenças entre si que em muitassituações representam um problema para acesso e segurança.Acontece algumas vezes de você definir o "write list" e o "read list"corretamente mas mesmo assim usuários do "read list" conseguemescrever no compartilhamento (!). Para resolver este problema,inclua o "valid users" indicando os usuários que têm acesso e emseguida inclua o "write list" e o "read list" conforme sua necessidade.

• writeable Indica se será ou não possível criar ou excluirarquivos ou diretórios do compartilhamento.

• public / guest ok Indica se será ou não permitido oacesso de outros usuários.

• browseable Define se o compartilhamento será ou não visívelpara o Ambiente de Rede do Windows (apresentado na rede).

• write list Define os usuários e/ou grupos com acesso deescrita no compartilhamento. Para mais de um usuário, separe osnomes por vírgula(user1, user2, etc) e para grupos utilize @ antes donome do grupo.

• read list Como em write list, mas define quem terápermissão de apenas leitura.

• force create mode Diz ao SAMBA para forçar o tipo depermissão dos arquivos criados (o mesmo que usar o chmod). Estapermissão tem menor prioridade que os parâmetros write list e readlist.

• force directory mode O mesmo que force create mode, maspara os diretórios criados no compartilhamento.

• admin users Indica quais são os usuários com permissãocompleta para o compartilhamento (permissão de root).

• copy Permite copiar os parâmetros de outra seção, como umtemplate por exemplo, útil se utiliza compartilhamentos semelhantes.Para alterar parâmetros basta informá-los na seção atual.

• hosts allow Indica quais máquinas podem acessar ocompartilhamento. Pode-se utilizar o endereço IP ou o nome damáquina. Para garantir acesso a toda uma rede classe C porexemplo, escreva: "hosts allow = 192.168.1.".

Page 87: Linux - Samba (Pt_BR)

87

• hosts deny Como em "hosts allow", mas para restringir o acessoao compartilhamento.

• max connections Permite especificar o número máximo deconexões simultâneas ao compartilhamento.

• max disk size Permite especificar qual o limite de espaçoem disco que o compartilhamento pode utilizar. Este valor é definidoem Mb (megabytes).

Page 88: Linux - Samba (Pt_BR)

88

APÊNDICE C. VARIÁVEIS PRÉ-DEFINIDAS

Abaixo temos variáveis que podem ser usadas em parâmetros:

• %S nome do Serviço (compartilhamento) atual.

• %u nome do usuário.

• %g nome do grupo.

• %H nome do diretório pessoal do usuário (home dir).

• %m nome da máquina cliente fornecido pelo NetBios.

• %L nome do servidor NetBios, permitindo que a configuraçãodesejada seja alterada de acordo com o cliente que vai acessar osistema.

• %M nome Internet da máquina cliente.

• %a sistema Operacional da máquina remota, onde os reconhecidossão WfW, Win95, Win2000.

• %I o endereço IP da máquina cliente.

• %T data e horário.

• %v versão do Samba