Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

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.
As marcas registradas utilizadas no decorrer deste livro são usadas
unicamente para fins didáticos, sendo estas propriedade de suas respectivas
companhias.
A Alfamídia não assume qualquer responsabilidade por erros ou omissões, ou
por 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ão
adaptações do texto:
Manual de Configuração do SAMBA
Copyright © 2001 – Victor F. F. Zucarino <vffzbr@yahoo.com.br>
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 do
texto:
SMB-HOWTO
Copyright © 1996-1999 – David Wood <dwood@plugged.net.au>.
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 Unix
Copyright © 1999 – Elvis Pfützenreuter <info@rootshell.com.br>
Fonte: http://www.linux.trix.net/samba_intro.htm
O capítulo 13 é uma adaptação do texto:
Entendendo e utilizando o Linux
Copyright © 1999 – Carlos E. Morimoto <morimoto@guiadohardware.net>
Fonte:
http://www.guiadohardware.net/tutoriais/entendendo_e_utilizando_o_linu
x/26.asp
Parte do capítulo 1 e os capítulos 8, 9, 11 e 12 foram escritos por:
Copyright © 2002 por Alexandre Folle de Menezes <menezes@alfamidia.com.br>
Tradução para português - Brasil, 2002:
Alfamídia Ltda
Rua Félix da Cunha, 818
Porto Alegre - RS - Brasil
Fone/Fax: +55 (51) 3346-7300
E-mail: alfamidia@alfamidia.com.br
URL: http://www.alfamidia.com.br
Esta apostila é uma coletânea de textos com licença GNU ou livres
4
encontrados na Internet, conforme referências acima.
Este material foi totalmente montado com fins didáticos, sem objetivo
comercial. Foram acrescentados exemplos e exercícios desenvolvidos
pela Alfamídia Ltda.
CONTEÚDO
CONTEÚDO ................................................................................................................... 5
1 INTRODUÇÃO ........................................................................................................ 9
1.1 CONCEITOS INICIAIS............................................................................................. 10
1.2 HISTÓRICO DO SAMBA .......................................................................................... 10
1.3 CONHECENDO O SAMBA........................................................................................ 11
1.4 INFORMAÇÕES ADICIONAIS................................................................................... 12
2 O PROTOCOLO NETBIOS ................................................................................. 13
2.1 O QUE É O NETBIOS............................................................................................. 13
2.2 NAVEGADOR-MESTRE LOCAL (LOCAL MASTER BROWSER) ................................. 15
2.3 NAVEGADOR-MESTRE DO DOMÍNIO (DOMAIN MASTER BROWSER) ..................... 16
2.4 ULTRAPASSANDO AS FRONTEIRAS DA REDE LOCAL ............................................. 16
2.5 SERVIDOR WINS................................................................................................... 17
2.6 A DANÇA DA COMUNICAÇÃO INTER-REDES.......................................................... 18
2.7 AUTENTICAÇÃO DE USUÁRIOS .............................................................................. 20
2.8 SENHAS CRIPTOGRAFADAS ................................................................................... 21
3 INSTALAÇÃO ....................................................................................................... 22
3.1 PACOTES RPM...................................................................................................... 22
3.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 ........................................................................................................ 30
6.2 O SMBPASSWD .......................................................................................................... 31
6.3 O SMBSTATUS .......................................................................................................... 32
6.4 O TESTPRNS ............................................................................................................ 32
6.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.................. 35
7.1.1 CONFIGURAR O SAMBA PARA USAR SENHAS CRIPTOGRAFADAS........................... 36
7.1.2 CONFIGURAR O WINDOWS PARA NÃO USAR SENHAS CRIPTOGRAFADAS .............. 37
7.2 COMPARTILHAMENTO DE DISCO WINDOWS COM MÁQUINAS LINUX.................. 38
7.2.1 O PACOTE SMBFS.................................................................................................. 40
6
8 DIFERENÇAS ENTRE SISTEMAS DE ARQUIVOS ....................................... 42
8.1 OCULTANDO E VETANDO ARQUIVOS.................................................................... 42
8.1.1 OPÇÃO HIDE DOT FILES ..................................................................................... 42
8.1.2 OPÇÃO HIDE FILES ............................................................................................. 42
8.1.3 OPÇÃO VETO FILES ............................................................................................. 42
8.1.4 OPÇÃO DELETE VETO FILES = YES|NO ............................................................. 43
8.1.5 OPÇÃO DONT DESCEND ......................................................................................... 43
8.1.6 OPÇÃO UNIX REALNAME = YES|NO..................................................................... 43
8.2 LINKS..................................................................................................................... 43
8.3 PERMISSÕES E ATRIBUTOS ................................................................................... 44
9 COMPARTILHAMENTO DE IMPRESSORAS................................................ 45
9.1 COMPARTILHAMENTO DE IMPRESSORA LINUX COM MÁQUINAS WINDOWS....... 45
9.2 COMPARTILHAMENTO DE IMPRESSORA WINDOWS COM MÁQUINAS LINUX....... 48
10 O WINS NO SAMBA............................................................................................. 59
10.1 O DAEMON NMBD................................................................................................... 59
10.2 O SAMBA COMO CLIENTE WINS ....................................................................... 59
10.3 O SAMBA COMO SERVIDOR WINS ..................................................................... 60
11 O SAMBA ATUANDO COMO PDC ................................................................... 61
11.1 DOMÍNIOS DO WINDOWS .................................................................................... 61
11.2 CONFIGURANDO O SERVIDOR SAMBA ................................................................ 61
11.2.1 CLIENTES WINDOWS 9X .................................................................................... 61
11.2.2 CLIENTES WINDOWS NT ................................................................................... 62
11.2.2.1 Criando contas confiáveis (trusted accounts) ................................................63
11.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 ................................................................................................. 66
12.2 OPÇÃO MAX LOG SIZE ......................................................................................... 66
13 CONFIGURANDO O SAMBA REMOTAMENTE ........................................... 67
13.1 UTILIZANDO O SWAT ........................................................................................ 67
13.2 ACESSANDO COMPARTILHAMENTOS DE MÁQUINAS WINDOWS......................... 71
13.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
7
B.1.1. SEÇÃO [GLOBAL]............................................................................................... 82
B.1.2. SEÇÃO [HOMES]................................................................................................. 85
B.1.3. DEMAIS SEÇÕES [SHARES]................................................................................ 86
APÊNDICE C. VARIÁVEIS PRÉ-DEFINIDAS.................................................... 88
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 servidor
ou estação de trabalho em redes heterogêneas. Ainda que este documento
seja voltado para Linux, o Samba roda na maioria dos sistemas Unix e
compatí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áximo
em qualidade do Sistema/Aplicação que será o responsável por esta tarefa.
Com o SAMBA é possível compartilhar diretórios, impressoras, acessar
arquivos na rede exatamente como em redes Microsoft. Mas neste caso, seu
servidor é um Linux rodando uma aplicação específica. O Windows NT e o
2000 (assim como o NetWare 5 e outros presentes no mercado) são
reconhecidos mundialmente por sua segurança e escalabilidade, mas o
SAMBA possui muitas vantagens que podem se transformar em soluções e
economia 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ções
Linux (com Interface Gráfica por exemplo) a compatibilidade é
total.
• O SAMBA é 100% configurável, com a grande vantagem de
centralizar esta configuração em um único arquivo, o smb.conf.
Sem dúvida é muito interessante ter a possibilidade de restaurar
toda a configuração que disponibiliza seu Servidor de Arquivos
(inclusive as permissões de acesso) através do backup de apenas
1 arquivo, em casos de desastre. Porém isso não quer dizer que
não seja necessário o backup de outros arquivos de
configuração...
• Todo o SAMBA pode ser configurado remotamente através de
acesso seguro, além do recebimento por email de informações do
estado do servidor (bastando utilizar um script específico que
busca informações nos arquivos de log e cria um arquivo que
pode ser enviado por email).
• Em se falando de economia não há o que discutir: o Linux e o
SAMBA estão disponíveis para download na Internet sem ônus
algum para qualquer usuário comum ou empresa que se interesse
em 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 em
http://www.samba.org/
• O suporte está disponível 24h por dia, o ano todo: além do próprio
site do SAMBA existem milhares de sites e listas de discussão
dedicadas ao assunto, entre outras documentações e artigos em
sites de renome por Administradores e Engenheiros de Redes
10
Linux. Muita coisa já está em nosso idioma facilitando os
iniciantes e interessados em leitura. Muitos sites nacionais são
especializados em Linux e Segurança para Linux.
O Samba vem substituindo vários servidores Windows, OS/2, Netware e
Unix. Se for necessária uma solução estável e segura para Servidor de
Arquivos da rede, o SAMBA é uma grande opção. Há também a vantagem de
ser licensiado pela GPL, com livre distribuição, sem limite de usuários ou
custos por licença.
1.1 Conceitos Iniciais
O protocolo SMB é usado pelo Microsoft Windows 3.11, Windows NT e
Windows 95/98 para compartilhar discos e impressoras. Usando o conjunto de
ferramentas do Samba de Andrew Tridgell (Andrew.Tridgell@anu.edu.au),
máquinas UNIX (incluindo Linux) podem compartilhar discos e impressoras
com máquinas Windows. As ferramentas smbfs de Paal-Kr. Engstad
(engstad@intermetrics.com) e Volker Lendecke (lendecke@namu01.gwdg.de)
habilitam máquinas Unix a montar compartilhamentos SMB de hospedeiros
Windows ou SAMBA.
1.2 Histórico do Samba
Os 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 protocolos
atualmente conhecido pela sigla CIFS (Common Internet File System), mas que
originalmente recebia o nome de Server Message Block (SMB) - de fato, o
SMB continua vivo, 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 ser
facilmente convertidos em clientes ou servidores CIFS, e cujo número é
imenso.
Entretanto, o SMB não tinha suporte nativo no Unix, o que dava margem
a todo tipo de problemas para os administradores de redes mistas, pois tinham
que instalar clientes Unix de protocolos "tradicionais" como NFS, LPD, nas
má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 demais
vantagens.
É neste ponto que surge em nosso cenário o estudante australiano
Andrew 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 da
Digital. A conseqüência direta foi o surgimento de um sistema capaz de
exportar sistemas de arquivos de máquinas Unix, de forma que pudessem ser
acessados a partir de máquinas DOS rodando o cliente do Pathworks. Embora
Tridgell não soubesse, o Pathworks utilizava justamente o mesmo protocolo do
11
Windows, o SMB, e logo outros usuários descobriram que podiam usar o
mesmo 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, com
computadores rodando Linux e Windows, e resolveu experimentar o que ele
próprio julgava impossível. Como podemos imaginar, ele ficou bastante
surpreso ao ver que estava errado. Aliás, a documentação do Samba diz que
até hoje a esposa dele imprime documentos, a partir do Windows, na
impressora conec-tada à máquina Linux de Andrew.
A partir daí, o projeto se desenvolveu rapidamente. Surgiu o nome
Samba, que inclui as 3 letras do protocolo SMB, e outros integrantes, com
destaque para Jeremy Allison, se juntaram à equipe de desenvolvimento e
novas funcionalidades foram adicionadas. O software se desenvolveu a ponto
de realizar todas as tarefas que veremos a seguir, com qualidade e
estabilidade superiores a algumas das alternativas. De fato, já em 1998 a SGI
chegou a afirmar publicamente que seus servidores Origin rodando Samba
apresentam performancesuperior à de um servidor Windows - o que equivale a
dizer que o servidor de arquivos Windows mais rápido do mundo não rodava
Windows...
O Samba não é usado apenas nos servidores Linux. De fato, empresas
como a SGI, Veritas, HP, Cobalt e Whistle comercializam produtos que incluem
suporte a compartilha-mentos baseados no Samba. Mas ele sempre esteve
intimamente ligado ao Linux, desde a rede doméstica do seu criador, passando
pela escolha da licença GPL de sua distribuição e pela existência de suporte
exclusivo para o Linux, e não para outros tipos de Unix, em alguns
componentes do sistema, como o smbfs. O que poucos sabem é que Andrew
Tridgell teve participação muito importante em um momento histórico do
sistema: foi ele quem levou Linus Torvalds a um zoológico em Canberra, dando
a 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 Samba
O Samba oferece a maior parte das funcionalidades dos servidores
Windows, sem a necessidade de adquirir suas dispendiosas licenças e, melhor
do 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 Windows
de sua rede irão "ver" o seu servidor Linux com Samba como se fosse outra
máquina Windows - incluindo ícones na janela Ambiente de Rede, a
possibilidade de mapear drives remotos, imprimir nas impressoras do servidor,
e muito mais.
O seu servidor Linux com Samba pode até atuar como o controlador
primário do domínio (PDC), tarefa normalmente exclusiva do Windows NT 4
Server. Encontramos na literatura relatos de domínios com PDCs baseados
em Samba, nos quais conviviam simultânea e pacificamente máquinas rodando
12
NT Workstation 4.0, com o service pack 6a; Windows 2000 Professional, com o
service pack 1; Win-dows 2000 Server, com o service pack 1; e até o Windows
95. A inclusão de cada uma destas máquinas no domínio pode ser feita com
as 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 atue
como cliente em uma rede com servidores Windows. Assim, você pode
imprimir a partir do Linux naquela impressora a jato de tinta conectada a um
micro rodando Win-dows 98, ou montar, "mapear", um diretório disponibilizado
pelas máquinas Windows. Técnicos experientes no projeto de redes com
servidores Windows NT irão querer saber mais detalhes técnicos e a
documentaçã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-mo
PDC, o Samba não suporta a presença de um BDC nem relações de confiança
entre domínios ("trust relationships"), o que impede o recurso de Single Signon
para usuários de múltiplos domínios.
O Samba também inclui um servidor de nomes NetBIOS (WINS), que
alé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 recursos
compartilhados de sua rede ou domínio. Você pode até mesmo configurar o
Samba como o Master Browser de sua rede, se desejar.
1.4 Informações adicionais
Mais documentação sobre o Samba está disponível no Samba Web site,
localizado em http://www.samba.org/. Você também pode tentar o newsgroup
comp.protocols.smb.
Para mais informações, favor veja os seguintes documentos:
• The Samba documentation, disponível como parte da distribuição
Samba. 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/UDP
Transport.
• As RFCs que definem os protocolos:
o RFC 1001 Concepts and Methods.
o RFC 1002 Detailed Specifications.
13
2 O PROTOCOLO NETBIOS
O protocolo NetBIOS foi concebido para ser simples de configurar e usar
em redes pequenas. Porém, essa aparente simplicidade desaparece em
qualquer instalação que contém duas ou mais redes Ethernet. É o que eu
chamo de "curva de aprendizado exponencial", característica que o NetBIOS
compartilha com o Windows, Visual Basic e assim por diante. Outros procolos
(TCP/IP) e softwares (Linux) obrigam seus usuários a ter um conhecimento
relativamente profundo por mais simples que seja a tarefa; porém não
reservam "surpresas" para instalações de complexidade crescente. Portanto,
desenham uma curva de aprendizado logarítmica, de que tanto gostam os
Linuxers.
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 vez
dominados seus conceitos, pode ser útil e muito adequado até mesmo em
redes sem máquinas Windows.
2.1 O que é o NetBIOS
Erro! Argumento de opção desconhecido.NetBIOS é um protocolo de
transporte e de sessão, de uso geral, mas primariamente destinado a serviços
de arquivo e impressão. Nesse último aspecto, é semelhante ao protocolo
NCP da Novell. Porém o NCP é um protocolo de sessão; o transporte é feito
pelo protocolo subjacente IPX (embora será muito difícil encontrar uma
instalaçã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é o
destino. Protocolo de sessão encarrega-se de dividir seqüências
arbitrariamente longas de dados em pacotes (então transportados pelo
protocolo de transporte) e remontá-las no destino, possivelmente ordenando a
retransmissã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 outro
protocolo; pode ser constituído como pacote de rede e transmitido. É isso que
o protocolo NetBEUI da Microsoft faz - pega os pacotes NetBIOS in natura e
transmite-os rede afora. Porém, o NetBIOS não é nativamente capaz de ser
roteado; 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 outras
redes; assim, o pacote NetBIOS/NetBEUI acabará atingindo o seu destino, pois
é recebido e analisado por absolutamente todos os computadores da
organização. Essa solução tem o inconveniente de gerar um tráfego de rede
infernal, e ainda mais infernal de a comunicação inter-redes for feita através de
links de baixa velocidade.
14
Erro! Argumento de opção desconhecido.Outra solução é encapsular
o NetBIOS em um protocolo de transporte que seja roteável, como o IPX ou o
TCP/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 o
NetBIOS não é nativamente roteável e não aceita o conceito de endereço IP ou
IPX, várias extensões foram criadas para torná-lo mais adequado a uma
instalação com diversas redes locais. Veremo-nas todas ao longo deste texto.
Erro! Argumento de opção desconhecido.Como o Samba suporta
apenas NetBIOS encapsulado em TCP/IP, daqui por diante não falaremos mais
sobre outras encapsulaçòes. Apenas vale lembrar que, ao configurar suas
máquinas Windows, procure não misturar encapsulamentos diferentes. i.e.
usar NetBIOS encapsulado em IPX, TCP/IP e NetBEUI todos ao mesmo
tempo. Isso pode ser fonte de inúmeros problemas intermitentes e dores de
cabeça. Tire o NetBEUI da lista de protocolos suportados e, se precisar usar
IPX, certifique-se de que não está habilitado o transporte de NetBIOS sobre
IPX.
Erro! Argumento de opção desconhecido.Como o NetBIOS se obriga
a cuidar do transporte, e ao mesmo tempo não suporta números IP, ele
trabalha com técnicas de broadcasting. Uma vez lançado um pacote na rede
local, todas as máquinas receberão e analisarão esse pacote; apenas aquela
que for a máquina-destino deverá assimilaro pacote. Obviamente existe uma
identificaçã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ço
númérico. Isso é muito diferente de uma comunicação TCP/IP "normal", onde
as próprias placas de rede determinam se o pacote lhes pertence ou não, sem
envolver processamento de software.
Erro! Argumento de opção desconhecido.O TCP/IP permite fazer
broadcasting de uma forma muito simples: supondo uma rede local
10.30.0.0/16, o endereço de broadcasting é 10.30.255.255. Um pacote IP
emitido com esse endereço será analisado a nível de software por todas as
máquinas daquela rede local. É exatamente esse expediente que o NetBIOS
utiliza para forçar broadcasting mesmo quando encapsulado em TCP/IP.
Erro! Argumento de opção desconhecido.O uso massivo de
broadcasting torna o NetBIOS muito simples de usar em redes isoladas, pois
não é necessário saber muito sobre endereços IP para que as máquinas
enxerguem umas às outras. É claro que existe o custo (relativamente
pequeno) de processamento, pois todas as máquinas tem de analisar todos os
pacotes NetBIOS a nível de software.
Erro! Argumento de opção desconhecido.Como já foi dito, o
broadcasting não combina muito bem com instalações onde há várias redes
locais interligadas por roteadores. Os pacotes de broadcast não conseguem
ultrapassar a fronteira do roteador. O contorno dessa limitação está descrito no
tópico 4.
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 de
uma rede local trocam pacotes para determinar quem tem o maior OS level. O
OS level (doravante chamado de "nível") é nada mais que um número de 0 a
255. Se não me falha a memória, o nível do Windows 95 é 001 (decimal!), o do
Windows NT é 032, e o nível padrão (porém alterável) do Samba é 033.
Erro! Argumento de opção desconhecido.O computador com maior
nível vencerá a eleição. Se houver mais de um computador com o mesmo
nível, haverá um desempate por critérios aleatórios. Mesmo que a rede tenha
apenas computadores Windows 95, todos com um número de nível muito
baixo, um deles acabará sendo o escolhido.
Erro! Argumento de opção desconhecido.O computador vencedor
ficará responsável em compilar uma lista das máquinas presentes na rede
local. Não surpreendentemente, ele usará técnicas de broadcasting para esse
fim. 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 desbrava
a 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ção
para o Samba se ambos tiverem o mesmo OS level. Portanto, nunca configure
o Samba com o mesmo OS level que o Windows NT. Configurar o Samba para
que ele nunca 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 esse
processo ocorre dentro de uma rede local. O fato de um computador ser o
mestre de uma rede (ainda) não lhe dá o poder de enxergar as demais redes
da instalação. Isso é assunto para o tópico 4.
Erro! Argumento de opção desconhecido.Um detalhe
importantíssimo: mesmo dentro de uma única rede local, haverá um mestre
para cada grupo de trabalho (workgroup). Portanto, se você quer que todas as
máquinas se enxerguem, tome o cuidado de configurá-las todas com o mesmo
grupo de trabalho. Ou, se deseja isolar grupos de máquinas dentro de uma
rede isolada, configure deliberadamente com grupos diferentes.
Erro! Argumento de opção desconhecido.O sintoma mais aparente
de um computador com grupo de trabalho configurado incorretamente é o fato
de ele não enxergar nenhum computador na janela Ambiente de Rede; quando
muito, enxerga apenas o grupo de trabalho. Exemplo: o grupo de trabalho é
VITARA e um computador está configurado para o grupo VITARE. Esse último
computador está num grupo isolado e tornar-se-á o mestre daquele grupo.
Obviamente, a lista que ele mesmo compilou só contém um computador, pois
16
as demais máquinas da rede estão em outro grupo de trabalho e elegeram
outro mestre.
Erro! Argumento de opção desconhecido.Se o computador-mestre for
desligado, alguma outra máquina procurará pelo mestre, e não o achará.
Nesse caso, uma nova eleição é efetuada. Esse é um ponto interessante do
NetBIOS: 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 haja
pelo 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, o
mestre 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 de
domínio NT1, pode ser explicitamente configurado para ser apenas o
navegador-mestre do domínio.
Erro! Argumento de opção desconhecido.O mestre do domínio
compilará a lista de TODAS as máquinas do grupo de trabalho, mesmo que
estejam 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 sentido
haver um mestre local e um mestre de domínio separados.
Erro! Argumento de opção desconhecido.Deve haver APENAS UM
mestre de domínio por domínio. Tenha em mente que o NT costuma ser
configurado em tempo de instalação para ser o mestre do domínio. Tome
cuidado com isso ao instalar outras máquinas NT, e principalmente, não
configure o Samba para ser mestre de domínio sem antes verificar as
configurações dos servidores NT. Como não existe eleição para mestre de
domí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 o
mestre do domínio consegue descobrir os nomes das máquinas de fora da
rede 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 local
Erro! 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.
17
Para que o NetBIOS possa ultrapassar as fronteiras da rede local, três
mecanismos 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 os
roteadores aceitarão transportar os pacotes;
Erro! Argumento de opção desconhecido.- capacidade de traduzir
nomes NetBIOS para números IP, para que o usuário não perca a comodidade
de usar nomes NetBIOS;
Erro! Argumento de opção desconhecido.- capacidade de compilar
listas que contenham todos os computadores de todas as redes da instalação.
Erro! Argumento de opção desconhecido.A implementação da
Microsoft para o protocolo NetBIOS foi estendida de modo a cumprir o primeiro
quesito, e uma extensão "externa" ao NetBIOS, denominada WINS, cumpre os
demais quesitos.
Erro! Argumento de opção desconhecido.Assim, modernamente o
NetBIOS não depende mais exclusivamente do broadcasting para fazer o
transporte. Se houver um mecanismo qualquer que identifique o número IP da
máquina de destino, o pacote NetBIOS encapsulado em TCP/IP será mandadodiretamente ao IP do computador-destino, mesmo que esse IP esteja fora da
rede local, pois os roteadores serão capazes de transportá-lo. É possível
inclusive trafegar NetBIOS pela Internet pública !
Erro! Argumento de opção desconhecido.O mecanismo mais
primitivo de tradução de nomes NetBIOS para endereços IP é o arquivo
c:\windows\lmhosts ou /etc/lmhosts. É uma lista pura e simples dos nomes
NetBIOS com os endereços IP ao lado. Logo descobre-se as desvantagens
desse mecanismo: cada computador tem de ter a sua lista, as atualizações
também precisam ser feitas em todas as máquinas, e os computadores desse
arquivo não aparecem na janela Ambiente de Rede. O ideal seria que a
tradução funcionasse de modo análogo ao DNS.
2.5 Servidor WINS
Erro! 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ão
semelhante, nem paralelo, nem igual. O WINS é contactado diretamente pelo
número IP - nada de broadcasting para localizar o servidor WINS, até porque
ele não faz parte do NetBIOS em si.
Erro! Argumento de opção desconhecido.O WINS não tem um
cadastro estático de computadores. Ele recebe informações de todos os
computadores da instalação e, dinamicamente, vai formando uma lista de todos
os computadores da rede: nomes NetBIOS, grupos de trabalho e os
respectivos endereços IP. O servidor WINS mantém cadastros de todas as
máquinas da instalação, independentemente do grupo de trabalho. Por isso
mesmo, deve haver apenas um servidor WINS na instalação inteira, mesmo
que haja vários grupos de trabalho e/ou mestres de domínio.
18
Erro! Argumento de opção desconhecido.NÃO confunda o servidor
WINS com o mestre do domínio. Embora é comum rodar o WINS na própria
máquina que foi designada como mestre do domínio, é perfeitamente possível
que os dois residam em computadores separados!
Erro! Argumento de opção desconhecido.Também lembre-se que
não existe nenhuma integração automática entre DNS e WINS, mesmo que
ambos rodem no mesmo servidor. O fato de cadastrar o nome DNS de um
computador não significa que o servidor WINS vá passar a conhecer o
endereço IP do mesmo.
Erro! Argumento de opção desconhecido.Existem alguns
mecanismos de fallback onde o nome NetBIOS é consultado junto ao servidor
DNS se o servidor WINS não responder à consulta, mas a própria
documentação do Samba desaconselha seu uso. Em grandes instalações com
muitas 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-redes
Erro! Argumento de opção desconhecido.O documento BROWSING-
Config.txt contém uma excelente descrição de como o mestre de domínio
consegue 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ês
redes locais interligadas por roteadores: A, B e C. Suponha também que em
cada rede haja cinco computadores, e que todos, independentemente do
sistema operacional, ofereçam serviços NetBIOS. Suponha também que:
Erro! Argumento de opção desconhecido.- O nome do grupo de
trabalho/domínio seja ACME;
Erro! Argumento de opção desconhecido.- O computador A2 seja o
mestre de domínio;
Erro! Argumento de opção desconhecido.- O computador A3 seja o
servidor WINS e seu IP é 10.30.14.56;
Erro! Argumento de opção desconhecido.- Todos os computadores
estejam configurados corretamente e "saibam" que o endereço IP do servidor
WINS é 10.30.14.56;
Erro! Argumento de opção desconhecido.- Os computadores A1, B1
e C1 estejam rodando o Samba e, exceto por A1, estejam programados para
vencer as eleições para mestre local.
Erro! Argumento de opção desconhecido.Tão logo os computadores
sejam 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, o
computador 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.
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 as
outras máquinas registrarão seus nomes NetBIOS, grupos de trabalho e
números IP junto ao servidor WINS.
Erro! Argumento de opção desconhecido.Os computadores
começarão a anunciar a si mesmos por pacotes de broadcast. Atentos, os
mestres locais compilarão uma lista das máquinas de cada rede. Nesse
instante, os mestres de cada rede local conterão as seguintes listas de
computadores:
Erro! Argumento de opção desconhecido.A2: -> A1, A2, A3, A4, A5
Erro! Argumento de opção desconhecido.B1: -> B1, B2, B3, B4, B5
Erro! Argumento de opção desconhecido.C1: -> C1, C2, C3, C4, C5
Erro! 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 WINS
funciona independente do mestre de domínio A2, este último continua com sua
lista incompleta.
Erro! Argumento de opção desconhecido.Cada mestre local (B1 e
C1) 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 a
lista de todas as máquinas do grupo de trabalho. Em troca, o mestre de
domí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 em
ordem, 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 A2
antes de C1. Naquele instante, A2 ainda não sabia que a rede C existia. Por
isso, a lista do servidor B1 ficou prejudicada. Já o servidor C1 contactou o
mestre 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 do
domínio A2.)
Erro! Argumento de opção desconhecido.Dentro de 15 minutos, os
mestres locais contactarão novamente o mestre de domínio para retransmitir e
atualizar as listas. Nesse momento, o mestre de domínio A2 já conhece a rede
inteira, 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
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 os
computadores da rede aparecerão na janela "Ambiente de Rede" de qualquer
das estações.
Erro! Argumento de opção desconhecido.Lembre-se sempre disto: a
lista 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 for
desconectada, haverá um lapso de tempo durante o qual a máquina continuará
aparecendo nas listas (36 minutos), até que o mestre local da rede desligada
finalmente retire-a da lista e informe o fato ao mestre do domínio.
Erro! Argumento de opção desconhecido.Supondo agora que o
computador C4 quer comunicar-se com o computador A5. Pela lista, ele sabe
que o computador A5 existe, mas não sabe qual é seu endereço IP. Então, C4
consulta o servidor WINS, obtém o endereço IP e contacta A5 diretamente,
sem usar broadcast. Note bem aqui como o trabalho de compilaçãode listas é
independente do servidor WINS.
2.7 Autenticação de usuários
Erro! 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 estamos
falando 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ão
serão executadas com as permissões do usuário UNIX associado ao hóspede
(guest account = ...). Se você escolher essa modalidade, verifique se o
usuário UNIX terá permissões suficientes para acessar arquivos e, se for o
caso, imprimir.
Erro! Argumento de opção desconhecido.USER: Segurança por
usuário, local. A senha do usuário é reduzida a letras minúsculas e
confrontada com a senha UNIX. Essa modalidade de segurança obriga que os
usuários sejam cadastrados no Linux, e suas senhas sejam atribuídas
corretamente. As operações sobre arquivos e de impressão serão feitas com a
permissão do respectivo usuário UNIX. Todavia, pode-se abrir aos hóspedes o
acesso a determinados volumes ou impressoras - para esses objetos, a
segurança operará no estilo SHARE.
Erro! Argumento de opção desconhecido.SERVER: Segurança por
usuário, remota. O Samba pega o nome de usuário e a senha, e autentica
junto a outro servidor, que poderá ser outro Linux rodando Samba, ou um
Windows NT. Apesar da autenticação ser remota, ainda é necessário criar os
21
usuários UNIX localmente em determinados casos. (Consulte a linha map to
guest = 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 computadores
NT operando como PDCs (primary domain controllers) e BDCs (backup domain
controllers). Nesse modo, mais de um servidor de autenticação pode ser
especificado na linha password server do arquivo de configuração. É
necessário criar uma conta no servidor de domínio para que o Samba
identifique a si mesmo junto ao NT.
2.8 Senhas criptografadas
Erro! Argumento de opção desconhecido.O Windows 98, bem como
versões mais recentes do Windows NT Workstation, transmitem senhas
criptografadas no processo de autenticação. Isso torna a configuração do
Samba bem mais complicada, especialmente na modalidade USER, pois ele
tem de armazenar as senhas num arquivo separado (/etc/smbpasswd),
mantida por um utilitário não padrão do Unix (smbpasswd). O esquema de
encriptaçã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 senhas
criptografadas não adicionam quase nenhuma segurança ao NetBIOS, por
razões diversas. (Portanto, NÃO pense que trafegar NetBIOS na Internet
pública é seguro, mesmo usando senhas criptografadas !!!) Sendo assim, por
amor à comodidade, o melhor a fazer é configurar o Windows 98/NT para usar
senhas não criptografadas.
Erro! Argumento de opção desconhecido.Para fazer isso, você deve
adicionar um item no Registro do Windows. Consulte o diretório
/usr/samba*/docs. Lá você encontrará uns arquivos *.reg que, em
conjunção ao REGEDIT do Windows, criam esses itens automaticamente nos
diversos "sabores" de Windows.
22
3 INSTALAÇÃO
Para usar o Samba, suas máquinas devem estar num único segmento
de rede ethernet usando o protocolo TCP/IP. O Samba não funcionará usando
outros protocolos de rede. Isto é geralmente fácil já que o Linux e o Windows
95/98/NT vem com suporte TCP/IP de fábrica. No entanto, se você estiver
usando máquinas Windows 3.x, elas devem ter um pilha TCP/IP e as DLLs do
Win32s. 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 de
roteadores. Se você quer alguma coisa desse tipo, você terá que configurar
um 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!), a
instalação não é necessária. Se deseja atualizá-lo ou iniciar a instalação, siga
os passos a seguir.
Para pegar a última versão do Samba, vá nesta URL e escolha o site
espelho 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 RPM
Se 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 de
pacotes samba-common, samba-client e samba-doc juntamente com o pacote
samba, criando uma dependência entre estes pacotes.
Substitua o "x" pelo número relativo a versão do pacote ou o nome
correto do pacote dependendo da sua distribuição. Para atualizar o SAMBA
atual, substitua a sintaxe -ivh por -Uvh.
3.2 Pacotes tar
Se o pacote veio no formato tar.gz, execute o comando abaixo:
#tar -zxvf samba-2.2.x-i386.tar.gz
Um diretório será criado com o nome samba-2.0.x. Entre neste diretório
e em seguida no subdiretório source. Para iniciar a instalação digite:
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 o
processo e quando terminar confira o diretório /usr/doc/samba-2.2.x/docs para
informações sobre o SAMBA.
24
4 EXECUTANDO OS DAEMONS
Os seguintes daemons são exigidos pelo pacote Samba. Eles são
instalados tipicamente em /usr/sbin e podem ser executados tanto no boot
atravé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 daquele
provido pelo serviço de nomes de domínio (DNS). O serviço de nomes do
NetBIOS é um serviço de nomes "estilo Windows" usado para SMB. Em outras
palavras, ter serviço de nomes de domínio DNS não diz nada sobre a
habilidade do Samba de resolver nomes de hosts.
Você pode rodar os daemons do Samba do inetd ou como processos
independentes (stand-alone). O Samba irá responder ligeiramente mais rápido
como um daemon stand-alone do que rodando pelo inetd.
Em ambos os casos, você deve verificar se existem linhas no arquivo
/etc/services como estas:
netbios-ns 137/tcp nbns
netbios-ns 137/udp nbns
netbios-dgm 138/tcp nbdgm
netbios-dgm 138/udp nbdgm
netbios-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. O
Samba não será capaz de fazer a ligação (bind) às portas apropriadas
enquanto o arquivo /etc/service não contenha estas entradas.
Para rodar os daemons do inetd, coloque as seguintes linhas no
arquivo 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 smbd
netbios-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
25
(para uma distribuição RedHat) e faça um link simbólico para os arquivos
especificados 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 este
arquivo:
# symlinks: /etc/rc.d/rc1.d/K35smb (Mata os serviços SMB no
shutdown)
# /etc/rc.d/rc3.d/S91smb (Inicia os serviços SMB no
modo multiusuário)
# /etc/rc.d/rc6.d/K35smb (Mata os serviços SMB no
reboot)
#
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING}= "no" ] && exit 0
# See how we were called.
case "$1" in
 start)
 echo -n "Starting SMB services: "
 daemon smbd -D
 daemon nmbd -D
 echo
 touch /var/lock/subsys/smb
 ;;
 stop)
 echo -n "Shutting down SMB services: "
 killproc smbd
 killproc nmbd
 rm -f /var/lock/subsys/smb
 echo ""
 ;;
 *)
 echo "Usage: smb {start|stop}"
 exit 1
26
esac
Se você obtiver um erro durante a inicialização, que diz alguma coisa
sobre o daemon não conseguir fazer ligação (bind) com a porta 139, então
você provavelmente possui outro processo Samba rodando e que ainda não foi
derrubado. Verifique a lista de processos (com 'ps auxww | grep mbd')
para determinar se há outro serviço Samba rodando.
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 determina
que recursos do sistema você quer compartilhar com o mundo exterior e que
restrições você deseja que sejam aplicadas a eles.
Já que as seções seguintes irão tratar do compartilhamento de discos e
impressoras Linux com máquinas Windows, o arquivo smb.conf mostrado nesta
seção é o mais simples possível, somente para fins de introdução.
Não se preocupe ainda com os detalhes. As seções seguintes
introduzirã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á para
definir o compartilhamento de todos os recursos.
A seção [homes] permite a usuários remotos acessar seus próprios (e
somente os seus) diretórios home na máquina local. Isto é, usuários tentando
se conectar a este compartilhamento de máquinas Windows, serão conectados
ao seus diretórios home pessoais. Note que para fazer isso, eles devem ter
uma conta na máquina Linux.
O arquivo smb.conf de exemplo abaixo, permite que usuários remotos
acessessem seus diretórios home na máquina local e que escreva em um
diretório temporário. Para que um usuário Windows veja estes
compartilhamentos, a máquina Linux deve estar na rede local. Então o usuário
simplesmente conecta um drive de rede no Gerenciador de Arquivos ou no
Windows Explorer.
Note que nas seções seguintes, entradas adicionais a este arquivo serão
dadas para permitir o compartilhamento de mais recursos.
; /etc/smb.conf
; Reiniciar o servidor sempre que de alterar este arquivo, ex:
; /etc/rc.d/init.d/smb stop
; /etc/rc.d/init.d/smb start
[global]
; Se você deseja uma conta guest, descomente a linha abaixo:
; guest account = nobody
 security = share
 workgroup = WORKGROUP
 log file = /var/log/samba-log.%m
 lock directory = /var/lock/samba
 share modes = yes
[homes]
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 se
há erros. Você pode testar um arquivo smb.conf, usando o utilitário
'testparm' (para mais detalhes, man testparm); se testparm não reportar
nenhum problema, o smbd poderá carregar o arquivo de configuração
corretamente.
Aqui temos um bom truque: se seu servidor Samba tem mais de uma
interface ethernet, o smbd pode se ligar (bind) a interface errada. Se for o
caso, você pode determinar a qual porta ele devera se ligar pela adição de uma
linha 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 a
interface ethernet correta. O "24" é correto para um rede classe C, mas deve
ser calculado se você tiver feito sub-redes. O número se refere a máscara de
rede. Números para outras classes de redes são fornecidos no IP-Masquerade
mini-HOWTO.
5.1 Teste do Arquivo de Configuração
Agora 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 e
caso 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
29
Se quiser conferir se o SAMBA está realmente no ar, execute o
comando acima mas substitua o "start" por "status".
Para que o SAMBA seja iniciado sempre após a inicialização do
servidor, execute o ntsysv e marque o SMB. Se preferir, você também pode
escrever a linha de "start" do smb no arquivo /etc/rc.d/rc.local, da
seguinte forma:
1) Edite o arquivo rc.local (#vi /etc/rc.d/rc.local).
2) Tecle "i" para editar e vá até o final do arquivo (Page Down).
3) Escreva a seguinte linha: /etc/rc.d/init.d/./smb start
4) Tecle "Esc" e em seguida ":" e depois "wq" para sair.
A partir de agora, sempre que o computador for reiniciado o SAMBA
será ativado automaticamente.
Em uma estação Linux, é necessário dar um "start" exatamente como
no servidor, onde o smbclient deve ser utilizado para acessar os
compartilhamentos disponíveis no servidor.
Ainda na estação Linux, é necessário que cada uma contenha um
smb.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).
30
6 ACESSANDO SERVIDORES ATRAVÉS DE
ESTAÇÕES LINUX
6.1 O smbclient
Da 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ção
de trabalho para acessar servidores de ambos sistemas, sem que nenhuma
configuraçã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). Ele
pode ser usado para receber e enviar arquivos, listar diretórios, navegar pelos
diretórios, renomear e apagar arquivos, entre outros. Diretórios compartilhados
por um servidor SAMBA são acessados da mesma forma.
Para verificar quais compartilhamentos estão disponíveis em um
determinado Host, execute:
$smbclient -L host_desejado
A resposta será uma lista de serviços, ou seja, nomes de dispositivos ou
impressoras que podem ser compartilhados com os usuários na rede. A
menos 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 2000
Timezone is UTC+10.0
Password:
Domain=[EMPRESA] OS=[Windows NT 4.0]
Server=[NT LAN Manager 4.0]
Server=[servidor1] User=[] Workgroup=[EMPRESA] Domain=[]
Sharename Type Comment
ADMIN$ Disk Remote Administration
Public Disk Public
C$ Disk Default Share
Print$ Disk Printer Control
31
Para acessar uma pasta compartilhada, basta especificar o caminho na
rede, 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 pastas
compartilhadas mas que não pertencem ao Domínio da rede (por exemplo) ou
em 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á o
backup de //servidor1/vacinas/vacina.exe sem senha para acesso:
$smbtar -s servidor1 -x vacinas -d vacina.exe -t vacina.tar
Para conferir se o arquivo foi criado corretamente, digite:
$tar -tvf vacina.tar
Se o empacotamento teve sucesso, você verá o nome original do
arquivo e seu tamanho. Para que o backup seja guardado em fita deve-se
mudar a sintaxe do comando, substituindo o nome do arquivo pela unidade de
fita instalada (geralmente /dev/st0).
6.2 O smbpasswd
O SAMBA permite também que as estações troquem suas senhas delogon, utilizando o smbpasswd. Ele age de forma similar ao comando passwd,
mas as senhas são armazenadas no arquivo smbpasswd. É possível ainda
alterar 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 adicionados
ou removidos e atributos sejam alterados.
Mantenha o "localhost" especificado no parâmetro "allow hosts" para seu
perfeito funcionamento.
O smbpasswd é um arquivo em formato ASCII e contém o nome do
usuário, identificação junto ao Linux, a senha encriptada, o indicador de como
está a conta e a data de última alteração da senha do usuário.
32
Vale destacar que o smbpasswd somente é útil quando o SAMBA está
configurado para utilizar senhas criptografadas (veja detalhes em
Considerações).
6.3 O smbstatus
Para saber a situação atual das conexões SAMBA, utilizamos o
smbstatus.
• $smbstatus –p Lista os processos smbd e finaliza em
seguida. Útil quando utilizado em programas.
• $smbstatus –S Lista todos os compartilhamentos definidos.
• $smbstatus –s Permite utilizar outro arquivo de conffiguração
(smb.conf2 por exemplo), que deve ser especificado após a opção.
• $smbstatus –u Lista as informações rellevantes sobre o
usuário, que deve ser especificado após a opção.
6.4 O testprns
O testprns verifica o nome da impressora junto ao smbd, a fim de
determinar se há um nome válido (entrada encontrada em printcap para a
impressora) sendo informado para uso pelo serviço de impressão. Pode ser
ativado da seguinte forma:
#testprns ftp://ftp.samba.org/pub/samba/pwdump/pwdump.exe
Efetue logon como usuário Administrator no servidor NT (que
disponibiliza 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 seguinte
maneira:
#pwdump smbpasswd
Será gerado um arquivo smbpasswd com as informações de
autenticação (logon e senha) do Windows NT no formato criptografado utilizado
pelo SAMBA. Agora copie o arquivo smbpasswd gerado para o servidor Linux
(através de diskete ou diretório compartilhado, por exemplo). No Linux, jogue o
arquivo smbpasswd criado para o diretório /etc e defina as permissões para
600:
#chmod 600 /etc/smbpasswd
Para que funcione corretamente, é importante destacar que o ID dos
usuários seja o mesmo tanto no smbpasswd quanto no passwd do Linux. Abra
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 as
senhas 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 a
senha 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 lmartins@matrix.com.br criou um script
baseado no mksmbpasswd para converter as senhas em formato smbpasswd
para o passwd. Funciona bem e pode ser modificado conforme a necessidade
de cada um. É um script bem simples e pode ser alterado de acordo com a
sua necessidade. Crie o arquivo mkpasswd.sh com o conteúdo abaixo:
#!/bin/sh
awk 'BEGIN {FS=":"
printf("#\n# Unix password file.\n#\n")
}
{ printf( "%s:*:%s:103:%s:/home/%s:/bin/bash\n", $1, $2, $5, $1)
}
'
Dê um chmod 700 no arquivo e execute da seguinte maneira:
#cat /etc/smbpasswd | ./mkpasswd.sh passwd-smb
Se o seu arquivo smbpasswd e o script mkpasswd.sh estiverem em
outro local, configure de acordo com a sua necessidade. Após isso, é gerado
um arquivo chamado passwd-smb com os logins, id's, home, etc no formato do
passwd do seu sistema.
Normalmente, os ID's do smbpasswd vão começar a partir de 1000 e
você não vai ter problemas para junta-lo com o seu passwd do Unix sem
nenhum conflito. Eu recomendo que você confira antes de juntar as bases.
Procure por logins com o mesmo ID, mesmo username e username com
espaços.
Se você utiliza shadow é importante desabilitá-lo antes de juntar os
arquivos. Desabilite o shadow através do comando pwunconv. Em seguida
para passar o arquivo passwd-smb para o passwd do sistema entre no diretório
onde esta o arquivo passwd-smb que você gerou e digite:
#cat passwd-smb /etc/passwd
Se você utiliza o shadow, pode reativá-lo agora através do comando
pwconv. Reinicie o Linux para que as alterações entrem em vigor.
34
6.5 Exemplo de Login Script para estações Windows
O login script (ou logon script) é uma ferramenta muito útil para
disponibilizar recursos na rede. O script abaixo é um exemplo que pode usado
em redes com estações Windows.
Lembre-se de que deve ser criado com o notepad (por exemplo) em uma
estaçã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 off
if %OS%.==Windows_NT. goto WinNT
:Win95
net use X: \\servidor1\pasta_01
net use Z: /HOME
goto end
:WinNT
net use X: \\servidor1\pasta_01 /persistent:no
net use Z: /HOME /persistent:no
:end
35
7 COMPARTILHAMENTO DE DISCOS
7.1 Compartilhamento de disco Linux com máquinas
Windows
Como 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 entradas
como 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 o
Samba e visualizar os compartilhamentos de um PC com Windows. Contudo,
a Microsoft recentemente tornou a vida um pouco mais difícil para quem usa
Samba. O Windows 98, Windows NT (service pack 3 ou posterior) e as últimas
versões do Windows 95 agora usam senhas criptografadas como padrão. O
Samba usa senhas não criptografadas por padrão. Você não pode visualizar
servidores 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 cliente
e 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 para
acessar esta conta nesta máquina.
36
Por padrão o SAMBA não utiliza autenticação encriptada na rede, mas
sim "clear text". Versões mais atuais do Windows95/98/Me não utilizam o
modo "clear text". Para resolver este problema temos duas soluções:
7.1.1 Configurar o Samba para usar senhas criptografadas
Na seção [global] do /etc/smb.conf, adicione as seguintes linhas:
encrypt passwords = yes
smb passwd file = /etc/smbpasswd
Certificar-se de que todas as estações na rede utilizam autenticação
encriptada no logon. Para fazer o Windows trabalhar com senhas
criptografadas, use o regedit e crie a seguinte chave:
• Windows 95/98
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Service
s\VxD\VNETSUP
Adicione um novo valor DWORD: Value Name:
EnablePlainTextPassword e Data: 0x00
• Windows NT 4.0
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Service
s\Rdr\Parameters
Adicione um novo valor DWORD: Value Name:
EnablePlainTextPassword e Data: 0x00
• Windows 2000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service
s\LanmanWorkStation\Parameters
Adicione um novo valor DWORD: Value Name:
EnablePlainTextPassword e Data: 0x00
Uma vez que as alterações no registro tenham sido feitas, reinicie a
má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ão
será capaz de visualizar compartilhamentos no servidor até que uma conexão
inicial tenha sido feita com a autenticação apropriada. Para conseguir a
conexão inicial, entre o nome do compartilhamento manualmente no
Gerenciador 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 uma
conexão inicial tenha sido feita com a autenticação apropriada. Para conseguir
a conexão inicial, entre o nome do compartilhamento manualmente no
Gerenciador de Arquivos ou na caixa de diálogo do Explorer, na forma
'\\<hostname>\<nomedocompartilhamento>'. Registre-se no servidor
com um nome de usuário e senha que lhe são válidos.
37
Se você suspeita que seu serviço de nomes NetBIOS não está
corretamente configurado (talvés porque você tenha obtido erros 'host not
found' ao tentar se conectar), tente usar somente o endereço IP do servidor:
'\\<endereçoIPdoservidor>\<nomedocompatilhamento>'. Para que o
nome dos arquivos apareçam corretamente, você pode precisar configurar
algumas opções na seção de compartilhamento apropriada. Estas funcionam
para clientes Windows 85/98/NT, mas podem precisar ser modificadas se você
tem clientes Windows 3.x:
; Mangle case = yes aparentemente fornece os nomes de arquivo
corretos para Win95/98/NT
mangle case = yes
; Se o samba deve diferenciar maiúsculas e minúsculas quando
procurando por arquivos
case sensitive = no
; Padrão de letras maiúsculas ou minúsculas para quando os
arquivos são criados
default case = lower
; Preservar maiúsculas e minúsculas para todos os nomes de
arquivo
preserve 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 criptografadas
Nã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 a
chave 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 devem
ser modificadas nas estações Windows para não utilizar o "clear text":
• Windows 95/98
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Servic
es\VxD\VNETSUP]
"EnablePlainTextPassword"=dword:00000001
• WindowsNT 4.0
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic
es\Rdr\Parameters]
"EnablePlainTextPassword"=dword:00000001
• Windows 2000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic
38
es\LanmanWorkStation\Parameters]
"EnablePlainTextPassword"=dword:00000001
É claro que se sua rede for "sniffada", os passwords que não estiverem
encriptados serão descobertos. Em alguns casos vale a pena tirar a
criptografia de login e monitorar a rede com um anti-sniffer. Mas lembre-se que
o Windows NT e o 2000 só conseguem se autenticar no servidor SAMBA
através de senha encriptada. Mais ainda: o Windows 2000 vem com algumas
dificuldades para entrar no Domínio de um PDC Samba versão 2.1.x. Utilize a
versão 2.2.2 ou superior do Samba para evitar problemas.
7.2 Compartilhamento de disco Windows com máquinas
Linux
Um 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 e
um cliente Linux.
Para ver quais compartilhamentos estão disponíveis num determinado
host, execute:
/usr/sbin/smbclient -L host
Onde 'host' é o nome da máquina que você deseja ver. Isto irá retornar
uma lista de nomes de serviço, isto é, nomes de drives ou impressoras que o
servidor pode compartilhar com você. A menos que o servidor SMB não
possua nenhuma medida de segunça configurada, ele irá lhe perguntar uma
senha. Dê-lhe a senha para a conta 'guest' ou para a sua senha pessoal
naquela 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 1996
Timezone is UTC+10.0
Password:
Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager
3.51]
Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]
 Sharename Type Comment
 --------- ---- -------
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 a
compartilhar na rede.
Para usar o cliente, execute:
 /usr/sbin/smbclient service <password>
onde 'serviço' é a máquina e o nome do compartilhamento. Por
exemplo, se você está tentando alcançar um diretório que foi compartilhado
como 'public' numa máquina chamada zimmerman, o serviço deveria se
chamar \\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 1996
Timezone is UTC+10.0
Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager
3.51]
smb: \>
Digite 'h' para obter ajuda usando o smbclient:
smb: \> h
40
ls dir lcd cd pwd
get mget put mput
rename
more mask del rm
mkdir
md rmdir rd prompt
recurse
translate lowercase print printmode
queue
cancel stat quit q exit
newer archive tar blocksize
tarmode
setmode help ? !
smb: \>
Se você sabe utilizar o ftp, você não precisará das páginas de ajuda
para o smbclient.
7.2.1 O pacote smbfs
Mesmo pondedo usar o smbclient para testes, você logo estará
saturado dele para trabalhos de verdade. Para estes você provavelmente
usará o pacote smbfs. O pacote smbfs já é incluido na maioria das
distribuições Linux. Uma coisa importante a observar: Você deve possuir
suporte 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 para
compartilhamentos SMB.
O processo deve ser feito através da linha de comando. Imaginando
que você queira montar o disco C: da máquina estacao1, que foi
compartilhado 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 um
servidor Windows® NT, por exemplo) será necessário que você informe um
usuá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áquina
estacao1 com a senha minhasenha.
Em versões mais recentes, é possível usar o próprio comando mount do
GNU/Linix:
41
# mount –t smbfs //estacao1/c /mnt/estacao1
42
8 DIFERENÇAS ENTRE SISTEMAS DE ARQUIVOS
Neste capítulo serão estudadas as diferenças entre os sistemas de
arquivos Unix e não-Unix.
Uma das maiores dificuldades que o Samba tem que enfrentar é a
diferença entre os sistemas dearquivos Unix e não-Unix. Isso inclui
singularidadescomo links simbólicos e arquivos ocultos.
8.1 Ocultando e Vetando arquivos
Em sistemas Unix, arquivos ocultos começam com “.”, em sistemas
DOS/Windows, os arquivos têm um atributo específico para esta função. O
servidor Samba precisa de meios para esconder os arquivos quando este
atributo estiver habilitado em um cliente Windows.
Existem casos em que é necessário assegurar que um usuário não
possa ver ou acessar um arquivo. Em outros casos não se que apenas
esconde-lo quando se está visualizando um diretório.
8.1.1 Opção hide dot files
Esta opção faz exatamente o que diz: quando está configurada como
yes, esconde arquivos que começam com “.”. E se estiver configurada como
no, estes arquivos são sempre exibidos. Não se deve esquecer que os
arquivos serão apenas ocultos: se o cliente Windows estiver configurado para
mostrar arquivos ocultos, ele poderá vê-los de qualquer maneira.
8.1.2 Opção hide files
Ao 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 os
arquivos .conf e todos os começados por lib-:
hide files = /*.conf/lib-*/
Cada entrada deve iniciar e acabar com “/”, mesmo que haja apenas
uma entrada. Podem ser colocados espaços nas regras.
8.1.3 Opção veto files
Caso 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-*/
43
Com esta opção, todos os arquivos .conf e todos os começados por
lib- desaparecerão do diretório, e será impossível para um cliente SMB
enxergá-los.
8.1.4 Opção delete veto files = yes|no
O 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 estiver
setada 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 arquivos
vetados.
8.1.5 Opção dont descend
Esta 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 o
próprio diretório.
dont descend = bin lib
Os clientes SMB que tentarem acessar os diretórios bin e lib verão
apenas listas vazias. Além disso, nenhum usuário remoto poderá gravar
arquivos nestes diretórios.
Note que essa é uma opção administrativa e não de segurança, e não
substitui as permissões de acesso aos arquivos.
8.1.6 Opção unix realname = yes|no
Alguns programas precisam de um nome de usuário completo para
funcionar. Se o arquivo /etc/passwd tiver os nomes reais dos usuários no
campo GCOS, a opção unix realname fará com que o Samba forneça esta
informação para os clientes. Sem isto, o nome do usuário será o seu ID de
login.
8.2 Links
Não existem links simbólicos em sistemas de arquivos FAT e NTFS. Os
sistemas Windows possuem uma característica parecida, que é chamada de
atalho. Quando um cliente tenta abrir um link simbólico em um
compartilhamento em um servidor Samba, o Samba tentará seguir o link
simbólico para encontrar o arquivo real, como se o usuário estivesse na
máquina Linux. Para desabilitar isto será necessário inserir a seguinte linha
dentro do compartilhamento:
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 ponta
do link.
8.3 Permissões e Atributos
O 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 o
início. Devido a isso, existem inconsistências e lacunas de cobertura entre os
dois sistemas de arquivo, que o Samba deve resolver. Uma das principais
lacunas é o manuseamento de permissões entre os dois sistemas.
Todos os arquivos do Linux possuem bits de leitura, escrita e execução
para dono, grupo e outros. Já o Windows tem 4 bits de permissão: apenas
leitura, sistema, oculto e arquivo. Não há um bit específico para defenir um
arquivo 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 que
estão presentes em um disco compartilhado pelo Samba. Já os arquivos DOS
possuem seus próprios atributos, que precisam ser preservados quando são
armazenados no ambiente Linux: arquivo, sistema e oculto. O Samba pode
preservar estes bits “reutilizando” os bits de permissão de execução do arquivo
no lado do Linux, desde que devidamente configurado. Existe um efeito
colateral: se no lado Unix for executado um ls –l, alguns bits de permissão vão
ter 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 das
opções:
map archive = yes
map system = no
map hidden = no
O atributo apenas leitura é mapedo no atributo de permissão de escrita
do dono do arquivo, obviamente invertido.
45
9 COMPARTILHAMENTO DE IMPRESSORAS
9.1 Compartilhamento de impressora Linux com máquinas
Windows
Para 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, mas
meramente 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
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 ser
cerregadas por padrão ou não. Se você fizer isso, não há razão para
configurar impressoras individualmente. A seção [printers] escifica opções
para as impressoras que você quer definir explicitamente. Se o subsistema de
impressã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 de
impressão', veja abaixo). Para mais informações sobre o sistema printcap veja
o Printing HOWTO.
Uma técnica útil de testar a conexão de rede é trocar o camando de
impressã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 NT
ver a impressora compartilhada corretamente. Para solucionar, use as
observações contidas na documentação do Samba no arquivo docs/WinNT.txt.
Outro problema ocorre com as senhas. Veja os comentários no mesmo
arquivo sobre uma forma irritante de compreensão e falha para solucionar o
problema.
Oleg L. Machulskiy (machulsk@shade.msu.ru) sugere que um comando
de 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 deve
cortar as primeiras três e as últimas duas linhas, porque estas linhas contém
código PJL ou PCL.
Este método só é necessário se sua máquina Windows está imprimindo
PCL e não Postscript realmente. Eu tenho visto que no Windows 95/98/NT não
tem um driver genérico para Postscript, mas o driver da "Digital turbo
Printserver 20" funciona como um bom driver genérico de Postscript para a
maioria das configurações. Eu também tenho ouvido que o driver da "Apple
LaserWriter II NTX" também funciona para este fim.
Jeff Stern (jstern@eclectic.ss.uci.edu) reporta o seguinte, o que pode
ajudar alguns de vocês:
47
--------------------------%<---------------------------------- O problema que eu
estava tendo, era que eu podia imprimir via lpd/lpr na minha impressora do
Linux. Mas, eu não conseguia imprimir de uma máquina Win95 remota. Então
eu tentei:
smbclient \\eclectic\belen -P
e então:
print myfile
Eu 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 foi
isso que eu tive que fazer. Eu acho que alternativamente, eu poderia ter posto
todos 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 (com
propriedade root:lp).
Finalmente, uma outra coisa que os administradores devem saber é que
o nome da conta na máquina Windows (na qual eu estava tentando usar a
impressora Linux via Samba) deve ter equivalente no Linux. Assim, se há um
usuário chamado 'joe' na máquina Windows 'mywinbox' tentando imprimir na
impressora 'belen' da máquina Linux 'eclectic' (\\eclecticz\belen, deverá haver
um usuário chamado 'joe' na máquina Linux. Então o login e a senha do
usuário 'joe' serão a senha para acesar a impressora belen da máquina
eclectic. Esta senha será solicitada na máquina Windows quando você estiver
configurando a impressora com Impressoras | Adicionar Nova.
Eu pensei que este tipo de problema não seria bem o caso, mas eu
configurei minha impressora com acesso público no smb.conf. Mas
aparentemente, ela continua a pedir senha. (A máquina Windows,
infelizmente, não lhe dá a oportunidade de informar um nome de usuário
diferente para a impressora remota (Linux). Ela simplesmente usa o nome do
usuário atual que você informou quando iniciou o Win95. --------------------------
%<----------------------------------
O Dr. Michael Langner langner@fiz-chemie.de mostra que problemas
de permissão de escrita na árvore de /var/spool/lpd/ podem ser evitados por
alguma coisa como "path = /tmp" e "print command = lpr -r -P%p %s".
Algumas vezes, um error de interpretação do Postscript irá ocorrer
quando você estiver imprimindo de máquinas Windows, o que causa a
impressão de uma página extra no fim de cada trabalho de impressão. A útima
página sempre conterá "%%[ Lastpage ]%%" em seu topo. Aparentemente isto
acontece apenas com o Windows 95 e 98 e é devido a um defeito no Postscript
gerado.
Uma maneira de lidar com isso é usar um script que remove a pequena
parte ruim desde Postscript dos trabalhos da fila de impressão. Outra maneira
é tentar encontrar um driver Postscript melhor para Windows. Provavelmente a
melhor maneira é usarmos LPRng invés de Postscript para imprimir num
servidor Samba.
Erik Ratcliffe (erik@caldera.com) da Caldera contou-me que usando
LPRng significa que qualquer driver de impressão pode ser usado na máquina
48
Windows. No servidor Samba, ele usou uma entrada no /etc/printcap que se
parece com esta:
raw:\
 :rw:sh:
 :lp=/dev/lp1
 :sd=/var/spool/lpd/raw
 :fx=flp
LPRng não requer :\ no final de cada linha. Uma linha de impressora
ainda precisa ser adicionada ao /etc/smb.conf para a impressora física. O
comando de impressão precisa usar a entrada "raw" do /etc/printcap e os
dados precisam ser enviados para a impressora em formato binário. Tente um
comando de impressão como este:
print command = lpr -b -Praw %s
Você também pode precisar configurar o spooling no Windows 95 para
imprimir diretamente para a impressora, ao invés de fazer spool.
9.2 Compartilhamento de impressora Windows com
máquinas Linux
Para compartilhar uma impressora de uma máquina Windows, você
deve fazer o seguinte:
1. Você deve possuir as entradas apropriadas no /etc/printcap e elas
devem corresponder a estrutura local de diretórios (para o diretório de
spool, etc).
2. Você deve ter o script /usr/bin/smbprint. Ele vem junto dos fontes
do Samba, mas não em todas as distribuições binárias. Uma cópia
levemente modificada será discutida abaixo.
3. Se você quer converter arquivos ASCII para Postscript, você deve ter o
nenscript, ou um equivalente. nescript é um conversor para Postscript e
é geralmente instalado em /usr/bin.
4. Você pode querer fazer a impressão do Samba ficar mais fácil tendo um
programa interface que torne-a simples de usar. Um script em Perl
simples para manipular ASCII, Postscript ou Postscript criado é dado
abaixo.
5. Você pode também usar o MagicFilter para fazer o item acima. Detalhes
sobre como configurar o MagicFilter são fornecidos depois do script perl.
O MagicFilter tem vantegens porque ele sabe como converter
automaticamente muitos formatos de arquivo.
49
6. 
1. A entrada no arquivo /etc/printcap abaixo é para um
impressora HP 5MP numa máquina Windows NT. As entradas
sã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 a
pá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 linha
que tem o 'if' contenha o caminho correto para o script smbprint
(dado abaixo) e tenha certeza que o dispositivo apropriado tenha
sido indicado (o arquivo especial /dev). Depois vem o próprio
script 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 eu
o reproduzi aqui. Você pode quer dar uma olhada cuidadosa
nele. Há algumas pequenas alterações que se mostraram muito
úteis.
#!/bin/sh -x
# This script is an input filter for printcap printing on a unix
machine. It
50
# uses the smbclient program to print the file to the specified
smb-based
# server and service.
# For example you could have a printcap entry like this
#
#
smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbpri
nt
#
# which would create a unix printer called "smb" that will print
via this
# script. You will need to create the spool directory
/usr/spool/smb with
# appropriate permissions and ownerships for your system.
# Set these to the server and service you wish to print to
# In this example I have a WfWg PC called "lapland" that has a
printer
# exported called "printer" with no password.
#
# Script further altered by hamiltom@ecnz.co.nz (Michael
Hamilton)
# so that the server, service, and password can be read from
# a /usr/var/spool/lpd/PRINTNAME/.config file.
#
# In order for this to work the /etc/printcap entry must include
an
# accounting file (af=...):
#
# cdcolour:\
# :cm=CD IBM Colorjet on 6th:\
# :sd=/var/spool/lpd/cdcolour:\
# :af=/var/spool/lpd/cdcolour/acct:\
# :if=/usr/local/etc/smbprint:\
# :mx=0:\
# :lp=/dev/null:
#
# The /usr/var/spool/lpd/PRINTNAME/.config file should contain:
# server=PC_SERVER# service=PR_SHARENAME
# password="password"
#
# E.g.
# server=PAULS_PC
# service=CJET_371
# password=""
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/lp
config_file=$spool_dir/.config
# Should read the following variables set in the config file:
# server
# service
# password
# user
eval `cat $config_file`
#
# Some debugging help, change the >> to > if you want to same
space.
#
echo "server $server, service $service" >> $logfile
(
# NOTE You may wish to add the line `echo translate' if you want
automatic
# CR/LF translation when printing.
 echo translate
 echo "print -"
 cat
) | /usr/bin/smbclient "\\\\$server\\$service" $password -U
$user -N -P >> $logfile
A maioria das distribuições Linux vem com o nenscript para
converter documentos ASCII em Postscript. O script perl abaixo
facilita a nossa vida fornecendo uma interface simples ao Linux
para 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
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 a
cortar linhas grandes. Este script quebra linhas grandes com
espaços em branco (ao invés de no meio das palavras), se
possível. A formatação do código fonte é feita com o nescript.
Ele pega um arquivo ASCII e o formata em duas colunas com um
cabeçalho legal (data, nome do arquivo, etc). Ele também
numera as linhas. Usando isto como exemplo, outros tipos de
formatação podem ser obtidos. Documentos Postscript já estão
formatados 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 via
Samba.
# Finalidade: Pega arquivos de vários tipos e arqumentos e os
processa
# apropriadamente para um canal(pipe) do script de impressão do
Samba.
#
# 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) para
aparecer
# adequadamente(landscape, font, etc).
#
# Determina o maior comprimento de linha permitido em textos
ASCII
$line_length = 76;
# Determina o nome e o caminho do script de impressão do samba
$print_prog = "/usr/bin/smbprint";
# Determina o nome e o caminho para o nescript (o conversor
ASCII-->Postscript)
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);
# DBG
print "Arquivo do tipo $filetype\n";
if ($filetype eq "ASCII") {
 &wrap($line_length);
} elsif ($filetype eq "code") {
 &codeformat;
} elsif ($filetype eq "ps") {
 &createarray;
} else {
 print "Desculpe... tipo de arquivo desconhecido.\n";
 exit 0;
}
# Canalisa a matriz para o smbprint
open(PRINTER, "|$print_prog") || die "Não pude abrir
$print_prog: $!\n";
foreach $line (@newlines) {
 print PRINTER $line;
}
# Envia um linefeed extra no caso do arquivo ter uma última
linha incompleta.
print PRINTER "\n";
close(PRINTER);
print "Completed\n";
exit 0;
# --------------------------------------------------- #
# Tudo daqui para baixo são sub-rotinas #
# --------------------------------------------------- #
sub ParseCmdLine {
 # Parses the command line, finding out what file type
the file is
54
 # Gets $arg and $file to be the arguments (if the
exists)
 # 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"
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 on
whitespace
 # Get the number of characters to limit the line to.
 $limit = pop(@_);
 # DBG
 #print "Entering subroutine wrap\n";
 #print "The line length limit is $limit\n";
 # Read in the file, parse and put into an array.
 open(FILE, "<$file") || die "Can't open $file: $!\n";
 while(<FILE>) {
 $line = $_;
 # DBG
 #print "The line is:\n$line\n";
 # Wrap the line if it is over the limit.
 while (length($line) > $limit ) {
 # DBG
 #print "Wrapping...";
 # Get the first $limit +1 characters.
 $part = substr($line,0,$limit +1);
56
 # DBG
 #print "The partial line is:\n$part\n";
 # Check to see if the last character is
a space.
 $last_char = substr($part,-1, 1);
 if (" " eq $last_char ) {
 # If it is, print the rest.
 # DBG
 #print "The last character was a
space\n";
 substr($line,0,$limit + 1) = "";
 substr($part,-1,1) = "";
 push(@newlines,"$part\n");
 } else {
 # If it is not, find the last space
in the
 # sub-line and print up to there.
 # DBG
 #print "The last character was not a
space\n";
 # Remove the character past $limit
 substr($part,-1,1) = "";
 # Reverse the line to make it easy
to 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 spacein the line,
so
 # print it up to $limit.
 substr($line,0,$limit) = "";
push(@newlines,substr($part,0,$limit)
 . "\n");
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 a
Postscript
 # file that adheres to some decent format for printing
 # source code (landscape, Courier font, line numbers).
 # Print this to a temporary file first.
 $tmpfile = "/tmp/nenscript$$";
 open(FILE, "|$nenscript -2G -i$file -N -p$tmpfile -r")
||
 die "Can't open nenscript: $!\n";
 foreach $line (@newlines) {
 print FILE $line;
 }
 close(FILE);
 # Read the temporary file back into an array so it can
be
 # passed to the Samba print script.
 @newlines = ("");
 open(FILE, "<$tmpfile") || die "Can't open $file: $!\n";
 while(<FILE>) {
 push(@newlines,$_);
 }
 close(FILE);
 system("rm $tmpfile");
}
sub createarray {
 # Create the array for postscript
 open(FILE, "<$file") || die "Can't open $file: $!\n";
 while(<FILE>) {
 push(@newlines,$_);
 }
 close(FILE);
}
58
Agora, via MagicFilter. Obrigado a Alberto Menegazzi
(flash.egon@iol.it) por esta informação. Alberto disse: ---------------
-----------%<---------------------------------- 1) Instale o MagicFilter com
o filtro de impressoras que você precisa em /usr/bin/local mas não
preencha o /etc/printcap com a sugestão dada na documentação
do MagicFilter. 2) Escreva o /etc/printcap desta forma (está feito
para minha LaserJet 4L): lp|ljet4l:\ :cm=HP LaserJet 4L:\
:lp=/dev/null:\ # or /dev/lp1 :sd=/var/spool/lpd/ljet4l:\
:af=/var/spool/lpd/ljet4l/acct:\ :sh:mx#0:\ :if=/usr/local/bin/main-
filter: Você pode perceber que o lp=/dev/... está aberto para fazer
o locking de tais dispositivos "virtuais", deve ser usado um para
cada impressora remota. Exemplo criando com: touch /dev/ljet4l
Escreva o filtro /usr/local/bin/main-filter, o mesmo que você
sugeriu usando o filtro ljet4l-filter ao invés do cat. Aqui está o
meu: #! /bin/sh logfile=/var/log/smb-print.log
spool_dir=/var/spool/lpd/ljet4l (echo "print -" /usr/local/bin/ljet4l-
filter ) | /usr/bin/smbclient "\\\\SHIR\\HPLJ4" -N -P >> $logfile P.S.
: aqui vai uma citação do Print2Win mini-Howto sobre locking e
porque criar impressoras virtuais Starts here--> ---Começa aqui
Dica de Rick Bressler : Boa dica. Eu uso algo muito parecido.
Uma dica útil é que isso não é uma boa idéia: :lp=/dev/null:\ lpr
abre em modo exclusivo o arquivo que você especifica em lp=.
Ele o faz para evitar que vários processos tentem imprimir na
mesma impressora ao mesmo tempo. O efeito colateral disto no
seu caso, eng e colour não podem imprimir ao mesmo tempo,
(normalmente mais ou menos transparente, já que provavelmente
elas imprimem rapidamente e já que elas enfileram, você
provavelmente não percebe) mas qualquer outro processo que
tenta escrever em /dev/null será quebrado! Em um sistema
monousuário, provavelmente não é um grande problema. Eu
tenho um sistema com mais de 50 impressoras. Haveria um
problema aqui. A solução é criar uma impressora burra para
cada. Exemplo: touch /dev/eng. Eu modifiquei as entradas lp no
arquivo 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 --------------------------%<----------------------------------
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 nmbd
O daemon nmbd é um servidor que entende e pode responder
solicitações NetBIOS sobre resolução de nomes IP, iguais àquelas produzidas
pelos clientes SMBD/CIFS, como Windows 9x, Windows NT e clientes
LanManager. Também pode ser configurado para atuar como um servidor
WINS, que nada mais é do que uma extensão do protocolo de resolução de
nomes do NetBIOS.
A configuração do nmbd é definida no arquivo de configuração do
Samba. 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 funcionar
como servidor WINS.
dns proxy = yes|no informa ao nmbd se ele deve utilizar o DNS
para 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 deve
funcionar como um cliente WINS. Note que o nmbd não pode ser ao mesmo
tempo servidor e cliente WINS.
wins proxy = yes|no informa ao nmbd para responder
solicitações de resolução de nomes a favor de um cliente que não possa
atender ao WINS. Para isso deve haver pelo menos um servidor de WINS na
rede. O padrão é no.
10.2 O Samba como Cliente WINS
Para configurar o Samba como um cliente WINS, é preciso editar as
seguintes linhas no arquivo /etc/smb.conf:
[global]
 wins server = 172.20.1.3
 name resolve order = wins lmhosts bcast
Sendo que 172.20.1.3 é o endereço IP do servidor WINS. A opção
name resolve order é usada pelos programas do pacote Samba para
determinar quais serviços de nomes e em qual ordem tentar resolver os nomes
de máquina para endereços IP. Neste caso, irá tentar resolver primeiro usando
60
o servidor WINS (setado na opção anterior), depois procurará o endereço IP no
arquivo /etc/lmhosts do Samba, e por último executará um broadcast.
10.3 O Samba como servidor WINS
A 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 para
funcionar como servidor WINS.
61
11 O SAMBA ATUANDO COMO PDC
11.1 Domínios do Windows
Com 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ários
não autorizados). O sistema operacional simplesmente solicita uma nova
senha qe autentica o usuário com a senha que possui. A única vez que o
Windows 9x tenta usar uma senha que foi fornecida é quando se está tentando
conectar a outro compartilhamento.
Entretanto, os logons de domínio são similares ao sistema Unix. Para
logar em um domínio, um usuário válido e uma senha devem ser fornecidos na
inicialização e serão autenticados no banco de dados de senhas do PDC. Se a
senha 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 sem
ter que se reautenticar.
11.2 Configurando o Servidor Samba
11.2.1 Clientes Windows 9x
Para configurar o servidor Samba para que atue como PDC de um
cliente Windows 9x, existem alguns pré-requisitos:
• O Samba seja o único controlador primário de domínio do grupo de
trabalho atual;
• Exista um servidor WINS disponível na rede, que pode ser uma
má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
62
A opção domain logons configura o Samba para aceitar logons como
um controlador primário de domínio. Quando um cliente faz um logon no
domínio, o Samba retorna um token especial para os clientes que permite que
eles 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 a
eleição configure o os level como 254. Para maiores informações, veja o
arquivo BROWSING.txt no diretório de documentação do Samba. Jamais
promova o Samba a mestre de domínio ou coloque um OS level muito alto se o
PDC for outro computador – em particular se for o Windows NT. Do contrário
haverá uma guerra pela função: nenhum dos servidores aceitará perder a
eleição, convocando novas votações em seqüencia, e aumentando o tráfego na
rede.
A opção local master determina se o samba pode vir a se tornar o
master browser local em uma sub-rede.
A opção preferred master força o Samba a uma eleição de browser
local na inicialização e dá a ele uma chance um pouco maior de vencer a
eleição e tornar-se master browser.
A opção domain master = yes determina que o Samba seja o master
browser do domínio, permitindo que o Samba “confira” listas de máquinas entre
redes.
Após a configuração das opções será necessário criar um
compartilhamento de disco chamado [netlogon], não importando para onde
ele apontará, desde que cada cliente Windows consiga conectar-se a ele.
[netlogon]
comment = Serviço de logon de domínio
path = /home/samba/netlogon
public = no
writeable = no
browseable = no
O compartilhamento não pode ser public, writeable ou
browseable. Ele será usado pelos scripts de logon.
11.2.2 Clientes Windows NT
A configuração para clientes Windows NT exige alguns passos a mais.
Além das verificações anteriores, é preciso assegurar-se de que o Samba
esteja usando senhas criptografadas. Ou seja, será necessário incluir a opção
encript password = yes:
[global]
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 um
controlador primário de domínio. Estas contas permitem a uma máquina
efetuar um logon no PDC ( não em seus compartilhamentos), o que significa
que o PDC pode confiar em quaisquer conexões posteriores de usuários
naquele 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 do
Linux para emular usuários confiáveis no servidor Samba.
O nome de login da conta confiável de uma máquina é o seu nome com
um sinal de “$” no final, por exemplo alfa$. A senha inicial da conta é
simplesmente o nome da máquina em letras maiúsculas. Para produzir esta
conta será necessário criar uma nova conta no Unix com o nome apropriado da
máquina, assim como uma senha criptografada no banco de dados
smbpasswd.
Em primeiro lugar é preciso adicionar um usuário ao sistema, para que
seja suportada a conta confiável. Esta conta não precisa ter um diretório home
ou 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 este
usuário (no arquivo /etc/shadow), pois o Samba irá usar o arquivo smbpasswd
para manter a senha. Não se deseja que alguém execute um telnet na
máquina usando aquela conta. Na verdade o único valor usado diferente do
nome da conta é o UID da conta para o banco de dados de senhas
criptografadas (200). Este número deve mapear para um ID de um único
recurso no servidor NT e não pode conflitar com outros IDs. Portanto, nenhum
usuá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
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 uma
senha, pois o smbpasswd irá automaticamente configurar a senha inicial
criptografada 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 Windows
NT.
11.3 Limitações do Samba na integração com Windows NT
A 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 operandi
nã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ão
gerenciados 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 outros
servidores 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 ou
NT, 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ão
oferece interoperabilidade com esses protocolos.
65
12 ARQUIVOS DE LOG DO SAMBA
As vezes é necessário saber o que o samba pode fazer, principalmente
quando ele não está se comportando conforme o esperado. Este tipo de
informaçã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ários
descrever como e onde as informações de logging devem ser escritas. Estas
são opções globais e não podem aparecer dentro das definições dos
compartilhamentos.
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 que
reporta informação até o nível 2, que é relativamente baixo. Os níveis de
logging podem variar de 0 a 10, sendo que o 10 é o que fornece maior
quantidade de informação. O nível 2 irá fornecer informação de depuração
sem desprdiçar espaço no servidor. Os níveis acima de 3 são usados apenas
para 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 arquivos
de 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, pois
sabe-se especificamente qual é a máquina ou usuários que estão causando
problemas.
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 este
tamanho, 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 fique
lotado pelos arquivos de log durante a execução dos daemons.
12.1 Opção log file
Esta 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 de
log 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 logs
específicos para cada usuário.
12.2 Opção max log size
Esta 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, o
Samba irá criar um arquivo novo e salvar o antigo com a extensão .old.
É recomendado configurar esta opção, pois estas informações de log
podem ocupar muito espaço em disco e evita-se desta maneira que
administradores descuidados descubram de repente que o disco do servidor foi
totalmente ocupado por um único arquivo de log do Samba.
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 administrado
remotamente. Para isso deve utilizar um programa específico que geralmente
trabalha via http. É possível monitorar através de sua rede interna ou mesmo
através da Internet.
Os principais programas são o SWAT, Webmin e o LinuxConf. Existem
outros mas não vou entrar em detalhes de como instalar estes programas ou
utilizá-los, mas abaixo está o link para downloads, inclusive de programas para
administrar o SAMBA através da Interface Gráfica do Linux:
http://us4.samba.org/samba/GUI
13.1 Utilizando o SWAT
Além do Linuxconf, é possível configurar o SAMBA através de uma outra
interface amigável: o SWAT. O SWAT é uma interface web para a
configuração. Uma grande vantagem do SWAT é que ele permite a
configuração remota de um servidor SAMBA, já que só é necessário acessar a
máquina pela Internet.
Para habilitar o SWAT a partir de seu servidor é necessário editar o
arquivo /etc/inetd.conf e descomentar (retirar o "#" inicial) a linha:
swat stream tcp nowait.400 root /usr/sbin/swat swat
que está, normalmente, no final do arquivo. Caso você não encontre
uma linha semelhante, pode-se adicionar a linha acima.
Se você possui o xinetd instalado ao invés do inetd, procure a
documentação do xinetd para habilitar o SWAT. Basicamente, você deve
criar um arquivo em /etc/xinetd.d com a configuração do SWAT e reiniciar
o 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 um
terminal:
# 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 qualquer
navegador.
O Samba pode ser configurado através do Swat, um utilitário de
configuração via Web, semelhante ao encontrado em alguns roteadores. Para
acessa-lo basta abrir o Konqueror ou outro Browser disponível e acessar o
endereço http://localhost:901 basta fornecer a senha de root para
acessar.
68
Antes de mais nada você deverá criar logins para todos os usuários que
forem acessar o servidor. Você pode fazer isso através do Iniciar >
Configuration > Other > UserDrake. Os logins e senhas devem ser os mesmos
que 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ão
como “Cliente para redes Microsoft” que é o default.
Falta agora apenas configurar o Samba para se integrar à rede e
compartilhar as pastas desejadas.
Ao abrir o Swat você verá um menu como o do screenshot abaixo, com
vários links para a documentação disponível sobre o Samba, que você pode
consultar para se aprofundar no sistema. Na parte de cima estão os links para
as 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 todos
os usuários que terão acesso às pastas compartilhadas através do Samba, os
mesmos que anteriormente cadastrou no UserDrake. Não apenas o Samba,
mas vários outros programas servidores exigem que os usuários também
estejam cadastrados no sistema, uma questão de segurança. Basta escrever o
nome 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 as
configurações de rede e de acesso:
Erro! Argumento de opção desconhecido.
Nas opções Workgroup e NetBios name você deve colocar o nome do
computador e o grupo de trabalho a que ele pertence, como faria numa
máquina Windows.
Na seção security coloque a opção Security como “User”, o que
permitirá definir quais usuários terão acesso ao sistema. A opção Encrypt
Password também é importantíssima e deve ser configurada de acordo com a
versão do Windows que rodar nas máquinas clientes. O Windows 95 original
não suporta encriptação de senhas, por isso só poderá se conectar ao servidor
caso a opção seja configurada com o valor “No”. Porém, o Windows 95
OSR/2, Windows 98/SE/ME, Windows NT, Windows 2000 e Windows XP
utilizam senhas encriptadas, por isso ao utilizar máquinas com qualquer um
destes 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 os
computadores que terão permissão para acessar o servidor. Se quiser que
todos os PCs da rede tenham acesso, basta escrever apenas a primeira parte
do endereço IP, como em 192.168.0., onde todos os endereços dentro do
escopo serão permitidos.
69
A opção Hosts Deny por sua vez permite especificar máquinas dentro
do escopo configurados na opção Hosts Allow que não terão permissão para
acessar o servidor, as exceções à regra. Por exemplo, se você configurou a
opção acima como 192.168.0., mas deseja bloquear o acesso do PC
192.168.0.7, basta incluí-lo aqui. Se quiser incluir várias máquinas basta
separar os endereços por espaços.
Na seção Browse Options, a opção OS Level permite especificar qual
chance o servidor Linux terá de ser o master browser do domínio. No nosso
caso é desejável que ele seja o master browser pois ele está concentrando
todos os recursos acessados pelas estações. Sendo assim configure esta
opção com um valor alto, 100 por exemplo, para que ele sempre ganhe as
eleições. O default dessa opção é 20, que faz com que ele perca para
qualquer máquina Windows NT, Windows 2000 ou Windows XP. Para
completar, deixe a opção Local Master como “Yes” e as opções Preferred
Master e Domain Master como “Auto”.
Abaixo, deixe a opção Wins Support ativada (Yes). A opção Wins
Server deve ser deixada em branco, a menos que exista na rede algum
servidor 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, para
isto basta colocar o seu endereço IP no campo “Servidor Wins” na configuração
de rede das estações.
Terminando, pressione o botão Commit Changes no topo da tela para
que as alterações entrem em vigor.
Finalmente, você deve configurar as pastas a serem compartilhadas com
as 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 home
criado. Estas pastas ficam dentro do diretório /home e podem ser usadas para
guardar 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órios
home você pode compartilhar mais pastas de uso geral.
Para criar um compartilhamento basta escrever seu nome no campo no
topo da tela e clicar no botão Create Share:
Erro! Argumento de opção desconhecido.
Depois de criado um compartilhamento, escolha-o na lista e clique no
botão Choose Share para configura-la. Você verá uma lista de opções como a
abaixo:
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
70
aparecerá no ambiente de redes. No caso do compartilhamento do screenshot
a pasta compartilhada é /arquivos/programas.
A opção Read Only determina se a pasta ficará disponível apenas para
leitura (opção Yes) ou se os usuários poderão também gravar arquivos (opção
No). Você também pode determinar quais máquinas terão acesso ao
compartilhamentoatravés das opções Hosts Allow e Hosts Deny. As
configurações feitas aqui subscrevem as feitas na seção global. Se por
exemplo a máquina 192.168.0.5 possui permissão para acessar o sistema, mas
foi incluída na campo Hosts Deny do compartilhamento programas, ela poderá
acessar outros compartilhamentos do sistema, mas não o compartilhamento
programas.
A opção Browseable permite configurar se o compartilhamento
aparecerá entre os outros compartilhamentos do servidor no ambiente de
redes, ou se será um compartilhamento oculto, que poderá ser acessado
apenas por quem souber que ele existe. Isso tem uma função semelhante a
colocar um “$” numa pasta compartilhada no Windows 98. Ela fica
compartilhada, 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 compartilhamento
configurando esta opção como “No”. Fazendo isso ele continuará no sistema e
você 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 para
acessar pastas que o login permite acessar. Por exemplo, no Linux o único
usuário que pode acessar a pasta /root é o próprio root, ou outro autorizado por
ele. Mesmo que você compartilhe a pasta root através do Samba, os demais
usuários não poderão acessá-la.
Para editar as permissões de uma pasta, basta abrir o gerenciador de
arquivos e nas propriedades da pasta acessar a guia Permissions. As
permissões podem ser dadas apenas ao usuário, para todos os usuários
pertencentes ao grupo do usuário dono da pasta, ou para todos os usuários. A
opção Apply changes to all subdirectories e their contents deve ficar marcada
para 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 de
redes, como se fosse um servidor Windows. Os compartilhamentos podem ser
acessados de acordo com as permissões que tiverem sido configuradas e
podem ser mapeados como unidades de rede entre outros recursos.
Você pode compartilhar inclusive o CD-ROM do servidor se desejar,
basta para isso compartilhar a pasta /mnt/cdrom, mas isso não é muito
prático, pois além de trocar o CD-ROM, é necessário montar e desmontar a
unidade apartir do servidor.
Para compartilhar uma impressora já instalada na máquina Linux o
procedimento é o mesmo. Acesse a seção printers, escolha a impressora a
ser compartilhada (a lista mostrará todas as instaladas no sistema), configure a
opção available como yes e configure as permissões de acesso como
71
vimos anteriormente. No Mandrake você pode instalar impressoras através do
Mandrake Control Center. Caso você esteja usando outra distribuição e o
utilitário não esteja disponível, tente o linuxconf.
13.2 Acessando compartilhamentos de máquinas Windows
O Samba também inclui um módulo cliente, o smbclient que pode ser
usado para fazer inverso, ou seja, acessar compartilhamentos de máquinas
Windows apartir do Linux.
O uso deste comando é bastante simples. Abra um terminal e digite:
smbclient -L nome_da_maquina
Como por exemplo smbclient -L ascot. Ele pedirá a sua senha de
usuário e em seguida mostrará uma lista dos compartilhamentos disponíveis na
máquina que solicitou:
Erro! Argumento de opção desconhecido.
Lembre-se as máquinas Windows 95/98/ME aceitam conexões de rede
por parte de qualquer usuário. A única opção de segurança é colocar senhas
nos compartilhamentos. Mas, as máquinas rodando Windows NT ou Windows
2000 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 qual
compartilhamento quer acessar, você deverá montá-lo para ganhar acesso.
Você pode montar o compartilhamento em qualquer pasta vazia do sistema.
Como exemplo eu montei o compartilhamento “C” disponível na máquina
ascot 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 sistema
para que este possa ser acessado. A opção -t serve para especificar o
sistema de arquivos, já que não estamos utilizando um sistema de arquivos
nativo do Linux. O smbfs indica o sistema de arquivos que será utilizado, este
sistema que permite mapear unidades de rede compartilhadas pelo Windows.
Em seguida, especificamos o compartilhamento e o diretório onde ele
será montado seguido pelo “-o”. Este é só um exemplo. Se você for montar o
compartilhamento 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 -o
password=xxxxx
E assim por diante.
72
No password=xxxxx você deve informar a senha do compartilhamento
que está sendo acessado. Se ele não tiver senha, basta deixar este último
campo em branco.
Depois do comando você pode dar um ls no diretório onde o
compartilhamento foi montado só para checar se os arquivos realmente estão
lá:
Erro! Argumento de opção desconhecido.
Depois de montado, o compartilhamento pode ser acessado pelo
gerenciador de arquivos da sua interface (Konqueror no KDE, Nautilus no
Gnome, etc.):
Erro! Argumento de opção desconhecido.
No Mandrake 8.1 e outras distribuições que trazem a ferramenta
DiskDrake, como por exemplo o TechLinux, você pode montar as partições
Windows de um jeito mais prático.
O DiskDrake pode ser encontrado dentro do Mandrake Control Center
na seção Hardware > Pontos de Montagem. A parte que nos interessa está na
aba “Samba”:
Erro! Argumento de opção desconhecido.
O funcionamento é muito simples. Clique em “novo” e aponte o
compartilhamento a ser montado na janela que será aberta. Serão mostrados
todos os compartilhamentos disponíveis na rede, inclusive os de outras
máquinas Linux rodando o Samba.
Erro! Argumento de opção desconhecido.
Em seguida, basta fornecer o ponto de montagem desejado. Note que
dentro do diskdrake você tem privilégios de root e pode montar os
compartilhamentos onde quiser. Mas, tenha o cuidado de não montar numa
pasta onde seu login de usuário (ou de quem for usar a máquina) não tenha
permissão de acesso.
Erro! Argumento de opção desconhecido.
Para finalizar, basta montar o sistema de arquivos para ter acesso. Por
default, ele passará a ser montado a cada inicialização do sistema, até que
você volte aqui e desmonte-o. Mas, você pode alterar isso na seção “opções”.
Erro! Argumento de opção desconhecido.
73
13.3 Configurando manualmente
Se 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 das
opçõ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 do
Mandrake 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 = HOME
netbios name = BETA-2
server string = Samba Server %v
interfaces = eth0
encrypt passwords = Yes
log file = /var/log/samba/log.%m
max log size = 50
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
printcap name = lpstat
os level = 100
dns proxy = No
hosts allow = 192.168.0.
printing = cups
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
guest ok = Yesprintable = Yes
print command = lpr-cups -P %p -o raw %s -r # using client side
printer drivers.
lpq command = lpstat -o %p
lprm command = cancel %p-%j
browseable = No
[morimoto]
74
path = /home/morimoto
read only = No
[cd]
path = /mnt/cdrom
[HP]
path = /var/spool/samba
read only = No
create mask = 0700
guest ok = Yes
printable = Yes
print command = lpr-cups -P %p -o raw %s -r # using client side
printer drivers.
lpq command = lpstat -o %p
lprm command = cancel %p-%j
printer name = HP
oplocks = No
share modes = No
O Swat serve apenas como uma interface para a edição deste arquivo.
Seja qual for o modo de configuração escolhido, basta fazer backups regulares
deste arquivo para restaurar as configurações do servidor em caso de
problemas.
Sempre que alterar manualmente smb.conf, ou mesmo alterar algumas
opções pelo Swat e quiser verificar se as configurações estão corretas, rode o
testparm (basta chama-lo num terminal). Ele funciona como uma espécie de
debug, indicando erros grosseiros no arquivo.
Se por acaso você estiver utilizando uma distro que não venha com o
Samba, 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 -ivh
nome_do_arquivo no terminal.
Depois de instalar o arquivo e configurar o smb.conf, use os comandos
abaixo para inicializar, parar e verificar o status do 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 quais
estações estão conectadas ao servidor e quais recursos estão sendo
acessados no momento.
75
14 CONSIDERAÇÕES
O SAMBA permite ainda muitas outras configurações que podem ser
consultadas 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 é a
possibilidade de um cliente NT/2000 usar sua interface nativa de configuração
para 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 outra
máquina localmente. É uma ótima ferramenta mas pode apresentar
problemas, onde os mais conhecidos são quando compartilhamos unidades de
CD via rede. O comando mount é mais seguro e pode fazer exatamente a
mesma tarefa, com a seguinte sintaxe:
mount -t smbfs -o username=usuario,password=senha
//estacao/pasta /local
O diretório /local deve ser criado antecipadamente. Vale a pena
escrever uma linha no /etc/fstab para facilitar o processo.
Não é aconselhável reiniciar o SAMBA a cada modificação no
smb.conf. Com exceção a parâmetros como "path", "logon master", e
outros que definem acesso ou segurança, a criação de compartilhamentos e
permissões de acesso são automaticamente validadas pelo Samba. Muitos
programas ficam "salvando" arquivos constantemente enquanto estão abertos,
e se neste momento você reiniciar o SAMBA será um risco de se perder o
arquivo.
Se o SAMBA deve diferenciar maiúsculas e minúsculas quando
procurando por arquivos, adicione "case sensitive = yes". Para utilizar
como padrão letras maiúsculas ou minúsculas quando os arquivos são criados,
adicione "default case = lower (ou upper)". Para preservar
maiúsculas e minúsculas para todos os nomes de arquivo, adicione "preserve
case = 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 deve
conter uma especificação para qual placa será utilizada pelo Samba. Adicione
o seguinte parâmetro: "interfaces = 192.168.1.1/24", onde o número
depois da / é uma referencia à máscara de sub-rede. "24" é o valor a usar para
uma rede Classe C não segmentada. Para mais informações sobre cálculo de
sub-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.x
quanto as 2.2.x ainda não estão prontas para tal tarefa (pelo menos por
76
enquanto). O Samba de modo geral não permite "trust relationship" entre
servidores Windows (NT e 2000). Quem sabe após ler estas linhas este
recurso já tenha sido disponível? :)
Todos os parâmetros de configuração apresentados neste manual são
válidos para as versões 2.0.x e 2.2.x do Samba. Caso alguém encontre
alguma incompatibilidade, peço que entre em contato ok!
Lembre-se que a documentação do SAMBA (do protocolo SMB em
geral) é extensa. Consulte os docs criados após a sua instalação. Você pode
também obter referencias em documentações do LDP (Linux Documentation
Project), que no Brasil está em http://br.tldp.org/.
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ção
poderá auxiliar pessoas que falem Português a entender melhor a licença. É
permitido a qualquer pessoa copiar e distribuir cópias desse documento de
licença, desde que sem a implementação de qualquer mudança.
OPEN PUBLIC LICENSE
Draft v1.0, 8 june 1999
I. Requisitos comuns às versões modificadas e não
modificadas
Os trabalhos protegidos pela Licença de Livre Publicação (Open
Publication License) podem ser reproduzidos e distribuídos no todo ou em
parte, em qualquer meio físico ou eletrônico, desde que os termos desta
licença estejam incluídos, e que esta licença ou uma incorporação dela por
referência (com quaisquer das opções escolhidas pelo autor ou editor) estejam
presentes na reprodução.
A forma apropriada para uma incorporação por referência deste livro é:
Copyright© 2002 Alfamídia Ltda. Este material somente poderá ser
distribuído se sujeito aos termos e condições firmados na Licença
de Livre Publicação (Open Publication License), versão 1.0 ou
superior (a versão mais atual encontra-se disponível em
http://www.opencontent.org/openpub/).
Esta referência, devidamente preenchida com os dados da publicação,
deve ser seguida imediatamente com quaisquer opções escolhidas pelos
autores ou editor do documento (consultar a seção Termos opcionais).
É permitida a redistribuição comercial de material licenciado pela
Licença de Livre Publicação (Open Publication License).
Qualquer publicação no formato livro padrão (papel) requer
obrigatoriamente a citação dos autores e editor originais. Os nomes dos
autores 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 estar
impresso em tamanho tão grande quanto o título do trabalho, e citado como
proprietário em relação àquele título.
II. Copyright
O copyright de todo trabalho protegido pela Licença de Livre Publicação
(Open Publication License) pertence aos autores ou proprietários.
78
III. Escopo da licença
Os 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ão
ser 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 de
Livre Publicação (Open Publication License) em uma mesma mídia que
contenha outros trabalhos ou programas não protegidos por essa licença não
decorre em aplicação da Licença de Livre Publicação (Open Publication
License) para esses outros trabalhos. O trabalho resultante deve explicitamente
conter uma nota especificando a inclusão do material protegido pela Licença de
Livre Publicação (Open Publication License) e o aviso de copyright apropriado.
APLICABILIDADE. Se alguma parte desta licença nãopuder ser
aplicada em alguma jurisdição, as partes restantes deste documento continuam
sendo aplicadas.
AUSÊNCIA DE GARANTIA. Os trabalhos protegidos pela Licença de
Livre Publicação (Open Publication License) são fornecidos "como estão", sem
garantias 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ósito
particular, ou garantia de não-infração.
IV. Requisitos para trabalhos modificados
Todas as versões modificadas de documentos cobertos por esta licença,
incluindo traduções, antologias, compilações e documentação parcial, deve
seguir 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 dos
autores.
V. Práticas recomendadas
Em 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 os
autores tenham tempo de providenciar documentação atualizada. Esta
notificação deve descrever as modificaçoes introduzidas no documento, se
existirem.
79
Todas as modificações substanciais (incluindo exclusões) devem ser
marcadas claramente no documento, ou então descritas em um anexo ao
documento.
Finalmente, mesmo não sendo obrigatório sob esta licença, é
considerado de bom tom oferecer uma cópia sem ônus de todo o material
modificado (impresso e CD-ROM) para os autores originais.
VI. Termos opcionais
Os autores e editores de documentos protegidos pela Licença de Livre
Publicação (Open Publication License) podem escolher certas opções de
licença simplesmente incluindo alguns parágrafos após a cópia da licença ou
sua referência. Estas opções são consideradas parte da licença e devem ser
incluí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 direito
autoral.
B:É vedada a distribuição deste trabalho ou qualquer derivado seu em
qualquer formato de livro padrão (papel) sem a prévia autorização dos
proprietá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 page
da 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 nesses
trabalhos, desde que os termos dessa licença não sejam mais restritrivos que
os da Licença de Livre Publicação (Open Publication License).
Em caso de dúvidas sobre a Licença de Livre Publicação (Open
Publication License), contactar David Wiley <dw2@opencontent.org> ou a lista de
autores de publicações <opal@opencontent.org> via email.
Para se inscrever na lista de autores de publicações livres (Open
Publication Author's List), mande um email para <opal-request@opencontent.org>
com a palavra subscribe no corpo da mensagem.
Para enviar mensagens para a lista de autores de publicações livres
(Open Publication Author's List), mande um email para
opal@opencontent.org ou simplesmente responda a uma mensagem
postada.
Para se desinscrever na lista de autores de publicações livres (Open
Publication Author's List), mande um email para opal-
request@opencontent.org com a palavra unsubscribe no corpo da
mensagem.
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 da
distribuição.
Nele é que são descritos os compartilhamentos, permissões de acesso,
impressoras, dentre outras configurações disponíveis. Quando instalado, o
SAMBA disponibiliza os seguintes componentes:
• smbd O servidor SAMBA.
• nmbd O Servidor de nomes NetBios
• smbclient Cliente SMB para sistemas Unix.
• smbmount 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 no
Host.
• testparm Verifica a validade do arquivo smb.conf.
• testprns Verifica a comunicação via rede com as
impressoras.
O smb.conf é dividido basicamente em três partes: a configuração do
servidor 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 aos
diretórios compartilhados.
Cada seção é representada entre colchetes [seção], e os parâmetros
são seguidos do sinal de igual (=) e o valor ou termo correspondente.
Confira abaixo um exemplo do smb.conf para um servidor Samba como
PDC da rede:
[global]
comment = Servidor SAMBA
workgroup = EMPRESA
security = user
os level = 100
announce as = NT Server
domain logons = yes
logon script = %U.bat
logon path = //%L/Profiles/%U
domain master = yes
local master = yes
81
preferred master = yes
guest account = nobody
encrypt passwords = yes
# wins server = 192.168.0.2
wins support = yes
keep alive = 20
debug level = 3
winpopup command = /bin/csh -c 'xedit %s; rm %s' &
log file = /var/log/samba_log.%u
null passwords = no
unix password sync = yes
socket options = IPTOS_LOWDELAY TCP_NODELAY
printing = bsd
printcap name = /etc/printcap
load printers = yes
hosts allow = 192.168.0. 127.
hosts deny = 192.168.0.3 192.168.0.4
[homes]
comment = Pastas dos Usuarios
public = no
browseable = yes
writeable = yes
hosts deny = 192.168.0.250
[printers]
comment = Impressoras Linux
public = no
browseable = yes
printable = yes
read only = yes
create mode = 0700
path = /var/spool/samba
admin users = admin, usuario1
[netlogon]
comment = Compartilhamento de Scripts
path = /etc/scripts
public = no
browseable = yes
writeable = no
[diretoria]
comment = Grupo Diretoria
path = /home/diretoria
82
public = no
browseable = yes
valid users = @diretoria
writeable = yes
write list = @diretoria
force create mode = 0777
force directory mode = 0777
[comercial]
comment = Grupo Comercial
path = /home/comercial
public = yes
browseable = yes
writeable = yes
write list = @comercial
read list = @marketing
force create mode = 0777
force directory mode = 0777
[transf]
comment = Area de Transferencia
path = /home/transf
public = yes
browseable = yes
writeable = yes
write list = @todos
force create mode = 0777
force directory mode = 0775
max disk size = 200
[oculto$]
comment = Especifico do Admin
path = /home/admin/oculto
copy = homes
max connections = 1
B.1. Conhecendo os 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:
83
• commentComentário para este Host na Rede.
• workgroup Especifica o Domínio ou Workgroup a que o Host
pertence na Rede.
• security Por padrão o SAMBA utiliza a segurança a nível de
usuário (security = user), com opções:
o security = share senhas de acesso serão solicitadas por
cada recurso compartilhado e não por usuário, ou seja, cada
diretório ou impressora poderá ter uma senha única conhecida
pelos usuários autorizados. Esta opção é geralmente usada p/
estações de trabalho Linux, onde em diversos casos simplifica
o 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 senha
do usuário enviando os dados para outro servidor SMB, como
outro servidor SAMBA ou um servidor Windows. Deve-se
incluir 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 a
um Domínio Windows através do comando smbpasswd.
Neste caso as informações de usuário e senha serão enviadas
para o PDC da rede, exatamente como o servidor NT faria.
Note que é necessário que a conta do usuário exista tanto no
Linux 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 possui
um servidor Linux ou Windows na rede, mas deve ser usado caso
tenha um ou mais. A variável é um número de 1 a 255, onde 65 é a
mesma variável utilizada pelo servidor Windows. Especifique um
número maior que este (como 100 por exemplo) para garantir que o
servidor SAMBA seja eleito na escolha de validação do login das
estações.
• announce as permite especificar o tipo de servidor NetBios (nmbd)
que será divulgado na rede. As opções aceitas pelo SAMBA: "NT
Server", "NT Workstation", "Win95" ou "WfW".
• domain logons usado para validar o login na rede, apenas
para estações Windows.
• logon script indica qual arquivo de logon script será
executado para os usuários. A variável %u corresponde ao usuário
na 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. A
variável %L corresponde ao nome do servidor NetBios (que pode ser
o próprio SAMBA). O logon path é útil quando usuários costumam
84
efetuar logon em mais de um Host na rede, pois seu perfil é trazido
com o logon. No caso do exemplo, o diretório "Profiles" deve conter
os scripts (em formato Microsoft usando NET USE e etc) e os scripts
devem ser criados com o notepad do Windows por exemplo, a fim de
conservar o formato do arquivo.
• domain master indica se o Host será o Domain Master
Browser da rede inteira (WAN).
• local master indica se o Host será o Master Browser da rede
local. preferred master. Este parâmetro força a eleição do SAMBA
como Master Browser para o workgroup. É recomendável utilizar
este parâmetro em conjunto com o "domain master = yes" para
garantir a eleição. Mas tome cuidado: se você possui uma rede com
servidores Windows e SAMBA e já possui um servidor como Domain
Master, não use esta opção e deixe o parâmetro "os level = 65" para
haver equilíbrio.
• guest account o SAMBA trabalha melhor em redes Microsoft
com a existência de uma conta guest (visitante em inglês). Por
padrão a conta usada é nobody (a mesma utilizada pelo Apache).
• wins server indica qual o servidor de Wins da rede. Se o próprio
Host for o servidor de Wins então não utilize este parâmetro, pois
haverá 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 ambiente
completo da rede, garantindo que as estações tenham acesso a
estas informações e ganho em velocidade para encontrar e acessar
os compartilhamentos e impressoras. O Wins Server deve ser
especificado 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 travar
com o passar do tempo, este parâmetro é usado para verificar o
estado 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 a
configuração do sistema. Permite ao SAMBA trabalhar corretamente
com algumas situações de erro, por exemplo.
• winpopup command Especifica qual comando será executado
quando o servidor receber mensagens Winpopup. Aqui, muitas
opções podem ser usadas de acordo com a preferência do
Administrador. Se sua rede utiliza mensagens deste tipo, é
interessante definir um comando para o parâmetro, evitando assim
possíveis mensagens de erro para quem enviou a mensagem ao
servidor.
• log file Indica o arquivo de log do SAMBA. A variável %u
corresponde ao nome de logon do usuário. O samba por padrão
gera arquivos de log em /var/log/samba que indicam por exemplo os
85
horários de logon dos usuários, quem acessou determinado arquivo,
etc. Esteja atento para estas informações para consultas quando
necessário.
• null passwords Indica se será ou não possível que usuários
tenham 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 sua
senha de login.
• socket options Este parâmetro permite configurações extras
para o protocolo, possibilitando uma melhor performance do servidor
em lidar com os pacotes na rede.
• printing Indica qual o sistema de impressão padrão utilizado
pelo Linux.
• printcap name Indica o arquivo para busca das definições
das impressoras.
• load printers Disponibiliza as impressoras para a rede.
• hosts allow Indica quais máquinas tem acesso ao servidor
SAMBA. Pode-se utilizar o endereço IP ou o nome da máquina.
Para garantir acesso a toda uma rede por exemplo, escreva: "hosts
allow = 192.168.1.". Este parâmetro deve ser usado
preferencialmente nas demais seções, mas também pode ser usado
na seção Global.
• hosts deny Como em "hosts allow", mas para restringir o acesso
ao 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ão
acesso de outros usuários.
• browseable Define se o compartilhamento será ou não visível
para o Ambiente de Rede. Estações Windows95 versão 4.00.950-C
não aceitam esta opção, onde uma possível solução é utilizar o nome
do compartilhamento seguido de $ (teste$ por exemplo), como faz-se
no Windows.
• writeable Indica se o usuário poderá ou não escrever em sua
pasta pessoal (home dir).
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 que
estações Win95/98/Me têm diferenças entre si que em muitas
situaçõ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" conseguem
escrever no compartilhamento (!). Para resolver este problema,
inclua o "valid users" indicando os usuários que têm acesso e em
seguida inclua o "write list" e o "read list" conforme sua necessidade.
• writeable Indica se será ou não possível criar ou excluir
arquivos ou diretórios do compartilhamento.
• public / guest ok Indica se será ou não permitido o
acesso de outros usuários.
• browseable Define se o compartilhamento será ou não visível
para o Ambiente de Rede do Windows (apresentado na rede).
• write list Define os usuários e/ou grupos com acesso de
escrita no compartilhamento. Para mais de um usuário, separe os
nomes por vírgula(user1, user2, etc) e para grupos utilize @ antes do
nome 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 de
permissão dos arquivos criados (o mesmo que usar o chmod). Esta
permissão tem menor prioridade que os parâmetros write list e read
list.
• force directory mode O mesmo que force create mode, mas
para os diretórios criados no compartilhamento.
• admin users Indica quais são os usuários com permissão
completa para o compartilhamento (permissão de root).
• copy Permite copiar os parâmetros de outra seção, como um
template por exemplo, útil se utilizacompartilhamentos semelhantes.
Para alterar parâmetros basta informá-los na seção atual.
• hosts allow Indica quais máquinas podem acessar o
compartilhamento. Pode-se utilizar o endereço IP ou o nome da
máquina. Para garantir acesso a toda uma rede classe C por
exemplo, escreva: "hosts allow = 192.168.1.".
87
• hosts deny Como em "hosts allow", mas para restringir o acesso
ao compartilhamento.
• max connections Permite especificar o número máximo de
conexões simultâneas ao compartilhamento.
• max disk size Permite especificar qual o limite de espaço
em disco que o compartilhamento pode utilizar. Este valor é definido
em Mb (megabytes).
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ção
desejada seja alterada de acordo com o cliente que vai acessar o
sistema.
• %M nome Internet da máquina cliente.
• %a sistema Operacional da máquina remota, onde os reconhecidos
são WfW, Win95, Win2000.
• %I o endereço IP da máquina cliente.
• %T data e horário.
• %v versão do Samba

Mais conteúdos dessa disciplina