Você está na página 1de 17

Aprenda Linux, 302 (Ambientes Mistos): configure o Samba

O Samba usa um arquivo legvel para gerenciar e armazenar parmetros de configurao, ento a ferramenta mais sofisticada necessria para configurar o Samba um editor de texto. Aprenda como o arquivo de configurao estruturado, como o Samba interage com a rede, como configurar a criao de logs e como depurar problemas com o Samba. Neste artigo, aprenda a:

Navegar na estrutura de arquivos de configurao do servidor do Samba Usar as variveis e parmetros de configurao do Samba Identificar portas importantes de TCP/User Datagram Protocol (UDP) usadas com o Server Message Block (SMB)/Common Internet File System (CIFS) Configurar a criao de logs no Samba Resolver e depurar problemas com o Samba

Este artigo ajuda voc a se preparar para o Objetivo 312.1 no Tpico 312 do exame Mixed Environment Specialty do Linux Professional Institute (302). Esse objetivo tem peso 6.
Pr-requisitos

Para aproveitar ao mximo os artigos desta srie, necessrio ter um conhecimento avanado de Linux e um sistema Linux funcional, no qual seja possvel praticar os comandos mencionados neste artigo. Alm disso, preciso ter acesso a um ambiente Windows que ser usado para testar o acesso a arquivos e impresso.
O arquivo de configurao do Samba

O Samba, como a maioria dos daemons de UNIX, configurado por meio de arquivos de texto que so legveis para pessoas, e no por meio de uma ferramenta grfica para edio de arquivos binrios. O arquivo de configurao mais importante o smb.conf, que contm todos os parmetros de que o Samba precisa para executar no seu ambiente. Observao: embora o smb.conf tenha sido projetado para ser editado com um editor de texto, a equipe do Samba criou uma ferramenta baseada na Web chamada Samba Web Administration Tool. Tambm existem alternativas, como o webmin. importante lembrar que, mesmo assim, possvel editar o smb.conf

antes ou depois da execuo dessas ferramentas, porque voc est trabalhando em um arquivo de texto. O arquivo de configurao do Samba tem um formato razoavelmente simples que usa trs construes diferentes: Sees: as sees agrupam a configurao em reas independentes. Por exemplo, um compartilhamento de arquivo tem a sua prpria seo. Parmetros: os parmetros so pares de chave/valor. As chaves so atributos bem conhecidos, como "somente leitura". Comentrios: os comentrios permitem fazer anotaes no arquivo de configurao que no afetam a configurao. Por exemplo, para indicar o ticket de help desk que os documentos compartilham. Sobre o exame elegvel LPI-302 O Linux Professional Institute Certification (LPIC) como muitas outras certificaes, pois tambm oferece certificaes em nveis diferentes. Cada nvel requer mais conhecimento e experincia que o anterior. O exame LPI-302 um exame elegvel especial no terceiro nvel da hierarquia do LPIC, e requer um nvel avanado de conhecimento de administrao de sistema Linux. Para obter a certificao LPIC nvel 3 (LPIC-3), necessrio passar nos dois primeiros exames do primeiro nvel (101 e 102), nos dois exames do segundo nvel (201 e 202) e no exame principal do LPIC-3 (301). Depois de alcanar esse nvel, possvel fazer os exames elegveis especializados, como o LPI-302.
Sees

As sees agrupam o arquivo de configurao em reas diferentes. Voc comea a seo colocando o nome da mesma entre colchetes ([ ]). A seo continua at que a prxima seo seja definida ou que se chegue ao final do arquivo. Trs nomes de seo tm significado especial:

global: Qualquer coisa que esteja nessa seo se aplica a todo o servidor. Os itens de configurao na seo global podem ser cancelados no nvel de compartilhamento, se necessrio. homes: A seo homes atua como um modelo para todos os compartilhamentos do usurio. O Samba se encarrega de correlacionar um nome de usurio configurao nessa seo, praticamente eliminando a necessidade de configurar um compartilhamento separado sempre que voc quer permitir a entrada de um usurio no seu diretrio ou no diretrio inicial. printers. Essa seo semelhante a homes, mas usada para impressoras.

Se o nome de seo que usado no um dos nomes acima, considerado um compartilhamento de arquivo ou impressora.

Quando uma solicitao de conexo referente a um nome de compartilhamento especfico entra no Samba, o daemon procura uma seo com esse nome que defina as propriedades desse compartilhamento. Se a seo no encontrada, o Samba faz uma busca na lista de usurios no sistema para ver se a conexo se refere a um usurio. Do contrrio, o Samba consulta a lista de impressoras do sistema para ver se existe uma impressora com esse nome. Se a conexo corresponde a um usurio, a configurao das sees homes usada. Se houve uma correspondncia de impressora, a seo printers usada. Em todos os casos, a configurao de nvel de seo cancela a seo de configurao global . Se no h correspondncia em nenhum dos casos acima, ocorre uma verificao final. Se um servio padro configurado, esse servio usado. Do contrrio, passado um erro ao cliente. Por padro, o servio padro no configurado, portanto, os nomes de compartilhamento incorretos causaro um erro.
Parmetros

Os parmetros tomam a forma chave = valor, que designa o valor para a chave. Todas as chaves so documentadas na man page smb.conf. A configurao do Samba , em grande medida, um exerccio de entender quais chaves so necessrias para obter o comportamento que voc quer e determinar o valor adequado a ser usado. Os parmetros geralmente tomam cadeias de caracteres como valores. O Samba no suporta macros, o que permite que voc varie o valor do parmetro de acordo com itens como o nome de compartilhamento ou a entrada do usurio. Por exemplo, a seo homes adota como padro o diretrio inicial do UNIX do usurio, mas possvel usar macros para fazer esse parmetro usar qualquer local e substituir o nome do usurio no caminho do arquivo no momento da conexo. As macros comeam com o caractere % e sero explicadas conforme a necessidade. Se o valor de um parmetro precisa ocupar duas linhas ou mais, todas as linhas (com exceo da ltima) devem terminar com uma barra invertida (), como acontece em um shell do UNIX.
Comentrios

Os comentrios comeam com um ponto e vrgula ;) ou sustenido ("jogo da velha" ou #). Os comentrios podem ser usados para explicar o motivo dos itens, acompanhar alteraes ou indicar limites de seo.

Um exemplo de configurao

A Listagem 1 mostra um exemplo de arquivo smb.conf, mostrando as diversas partes do mesmo. Listagem 1. Um exemplo de arquivo de configurao
# This is a comment ; So is this # Remember that all shares need to be entered in the Wiki! -Opsteam [global] workgroup = BIGCO # %v gets expanded to the version of Samba server string = Samba Server Version %v # By default any file starting with . will have the hidden attribute set hide dot files = yes # Home directories come from the UNIX password file # anyone matching a user will use this section [homes] comment = Home directories # dot files will be hidden because it's a global [printers] comment = System printers printable = yes # A share that everyone can see [projecta] path = /var/spool/projects/projecta # Override the global version of hiding dot files hide dot files = no

Estas so algumas coisas especiais a serem ressaltadas nesse exemplo de configurao:

So usados dois estilos de comentrios diferentes. Um comea com sustenido, o outro comea com ponto e vrgula. Esse arquivo define um compartilhamento chamado projecta. Todos os outros compartilhamentos sero criados automaticamente a partir dos usurios e das impressoras que foram definidos no sistema. O parmetro server string usa a macro %v para parte desse valor. No tempo de execuo, %v ser substitudo pela verso do Samba. hide dot files configurado como "yes" no nvel global, mas definido como "no" dentro do compartilhamento projecta. Os diretrios iniciais usam a

configurao da seohomes, sendo assim, os arquivos DOT (como .profile) sero ocultados. Os arquivos em projecta tero os arquivos DOT visveis.
Interao com a rede no Samba

O Samba um servio de rede que executa em IP, permitindo que ele se comunique com outros hosts da rede que tambm esto usando IP. Como administrador do Samba, voc precisa entender como os servios do Samba se comportam na rede para resolver problemas de conectividade. De modo geral, pode-se considerar que o Samba oferece trs tipos diferentes de servios de rede:

Compartilhamento de arquivos e impresso: Oferecer arquivos e impressoras a outros dispositivos de rede e usar esses servios em outras mquinas. Servios de nome: Servios de resoluo de nomes necessrios para participar de uma rede Microsoft. Servios de domnio: O Samba pode substituir vrias funes de servidor da Microsoft, como controlador de domnio legado, e se integra a servidores de Active Directory Domain Services (AD DS) mais novos

Compartilhamento de arquivos e de impresso

O compartilhamento de arquivos e impresso implementado dentro do smbd, um dos daemons do Samba. O compartilhamento de arquivos da Microsoft usava o network basic input/output system (NetBIOS) em TCP quando passou ao mundo do IP. Esse mtodo encapsulava o contedo do NetBIOS em uma sesso de TCP usando a porta de TCP 139. O protocolo NetBIOS engloba vrios recursos. A porta de 139 usada somente para os servios de sesso, ou seja, transferncia de arquivos e passagem de mensagens. Os servios de procura de nomes no so tratados nessa porta. O NetBIOS em TCP funciona, mas h uma sobreposio entre os recursos de sesso e confiabilidade fornecidos pelo NetBIOS e os fornecidos pelo TCP. Com algumas alteraes sutis, tornou-se possvel executar o SMB/CIFS com base no TCP. Esse mtodo conhecido como hosting direto e usado para simplificar o protocolo. O hosting direto ocorre na porta TCP 445. Quando o NetBIOS foi eliminado do conjunto do protocolo, a Microsoft precisou de outra forma de tratar as buscas de nome. O Domain Name System (DNS) foi uma opo natural - por isso o DNS forma a base do AD DS. Por padro, o Samba escuta as portas 139 e 445. possvel alterar esse comportamento com o parmetro global smb ports. Por exemplo, smb ports =

445 instrui o Samba a escutar somente a porta 445. Voc pode fazer o Samba escutar qualquer porta, mas todos os clientes que quisessem se conectar teriam que ser instrudos a usar a porta no padro. Se voc no sabe qual porta o Samba est escutando, pode usar o comando netstat para descobrir. A Listagem 2 mostra esse comando em ao. Listagem 2. Usando netstat para ver quais portas o SMB est escutando
# netstat -antp | grep smbd # netstat -antp | grep smb tcp tcp 0 0 0 :::445 0 ::ffff:192.168.1.143:445 :::* ::ffff:192.168.1.147:4724 LISTEN ESTABLISHED 2830/smbd 2877/smbd

A Listagem 2 mostra o comando netstat sendo executado e a sada sendo filtrada por meio degrep em relao cadeia de caracteres smb. As opes de netstat foram usadas para mostrar todas (-a) as conexes de TCP (-t) em um formato numrico (-n) juntamente com o nome do processo (-p) responsvel. Essa sada mostra duas linhas: a primeira contm a cadeia de caracteres LISTEN, que significa que o daemon est escutando para detectar conexes recebidas. Aqui, o daemon est escutando a porta 445. A segunda linha mostra uma conexo ESTABLISHED , na qual 192.168.1.147 conectado porta 445 no host local (192.168.1.143). Assim sendo, pela sada da Listagem 2, possvel concluir que smbd s est escutando a porta 445 e que um cliente est conectado.
Servios de nome

O NetBIOS fornece uma camada de servios de nome responsvel pela navegao na rede e por buscas de nomes. Por exemplo, o host SERVER1 resolvido para um endereo IP usando as solicitaes de servio de nome do NetBIOS na porta de UDP 137. O suporte para a navegao e escolha de funes de suporte, como o navegador mestre, ocorre na porta UDP 138, tambm conhecida como a porta de servios de datagrama. Os servios de nome so implementados dentro do daemon nmbd. importante ressaltar que os servios de nome usam UDP em vez de TCP. Os pacotes de UDP no tm conexo e podem ser transmitidos para todos os hosts, em vez de um nico stream de unicast. Com a funcionalidade de transmisso do

UDP, o processamento dos servios de nome do NetBIOS na rede pode ser facilitado. A verso 3 do Samba no tem nenhum parmetro para controlar quais portas o nmbd escuta, mas a verso 4 do Samba implementa os parmetros globais nbt port e dgram port, que controlam as portas de servio de nomes e de servio de datagrama, respectivamente. possvel usar algo semelhante ao que voc viu na Listagem 2 para mostrar quais portasnmbd abre. A Listagem 3 mostra isso. Listagem 3. Mostrando as portas que nmbd est escutando
# netstat -anup | grep nmbd udp udp udp udp udp udp 0 0 0 0 0 0 0 192.168.1.255:137 0 192.168.1.143:137 0 0.0.0.0:137 0 192.168.1.255:138 0 192.168.1.143:138 0 0.0.0.0:138 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 2975/nmbd 2975/nmbd 2975/nmbd 2975/nmbd 2975/nmbd 2975/nmbd

Alm de procurar nmbd em vez de smbd, o comando da Listagem 3 procura portas UDP em vez de portas TCP com a opo denetstat -u. Os resultados so uma srie de linhas mostrando que nmbd est escutando as portas 137 e 138 em vrias interfaces e est escutando o endereo de transmisso 192.168.1.255. As duas portas de servio de nome se baseiam na comunicao de host a host e na comunicao de transmisso.
Servios de domnio

A equipe do Samba atualiza o software constantemente para que ele se integre melhor s redes Microsoft e para substituir a infraestrutura da Microsoft. Para fazer isso, o Samba deve emular esses servios de infraestrutura na rede. A maioria desses servios envolve o Kerberos e o Lightweight Directory Access Protocol (LDAP) de alguma forma. Estes tpicos so avanados e sero abordados com mais profundidade em artigos posteriores. Por enquanto, basta saber que o Samba pode fazer mais coisas alm do compartilhamento de arquivos.
Resumo das portas que o Samba usa

A Tabela 1 fornece um resumo das portas relacionadas ao compartilhamento de arquivos que os daemons do Samba escutam. Tabela 1. Resumo das portas usadas no Samba Porta Protocolo Servio Daemon Descrio

137 138 139 445

UDP UDP TCP TCP

netbios-ns netbios-dgm netbios-ssn microsoft-ds

nmbd nmbd smbd smbd

Servios de nome do NetBIOS Servios de datagrama do NetBIOS NetBIOS em TCP (servios de sesso) SMB de host direto

A tag na coluna Servio o conhecido nome de servio, que vem de um arquivo chamado/etc/services. O arquivo de servio ajuda os aplicativos a resolver nomes de servio em relao aos nmeros de porta. O arquivo tambm ajuda as pessoas a relacionar nmeros de porta a nomes de servio. Embora a maioria dos servios reserve as portas TCP e UDP, os aplicativos no tm que usar UDP e TCP. A reserva de ambas elimina a possvel confuso quando dois servios diferentes tentam usar o mesmo nmero de porta em protocolos diferentes. Tambm importante ressaltar que os nmeros e nomes em /etc/services no so cumpridos. possvel executar daemons em portas que no so as esperadas, desde que voc possa comunicar essa alterao aos clientes. Por exemplo, possvel executar o Samba nas portas de 5137 a 5139 e 5445, desde que os clientes no estejam esperando conversar nas portas padro.
Resolvendo problemas no Samba

O Samba no imune a problemas. s vezes, esses problemas so causados pelo administrador do sistema; s vezes, so causados pelo usurio. O trabalho de vocs como administradores de sistemas descobrir onde est o problema e como resolv-lo. Testando o arquivo de configurao Se o Samba no inicia ou se voc quer verificar se o arquivo de configurao est correto, o utilitrio testparm ajuda. Esse utilitrio verifica se smb.conf est correto. A Listagem 4 mostra o resultado de testparm em caso de erro. Listagem 4. Usando o testparm em um arquivo smb.conf incorreto
# testparm Load smb config files from /etc/samba/smb.conf Unknown parameter encountered: "hide dto files" Ignoring unknown parameter "hide dto files" Processing section "[homes]" Processing section "[printers]" Processing section "[public]" Loaded services file OK.

Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [global] workgroup = MYGROUP server string = Samba Server Version %v passdb backend = tdbsam log file = /var/log/samba/log.%m max log size = 50 cups options = raw << rest of the output omitted >>

A sada de testparm comea com o local dos arquivos. Se voc quer especificar outro arquivo, passe o nome do arquivo na linha de comando, como neste exemplo:
testparm /home/me/smb.conf

Em seguida, testparm est indicando um parmetro invlido chamado hide dto files. Esse parmetro deveria, na verdade, ser hide dot files. Depois de processar o arquivo de configurao, voc recebe algumas informaes sobre a funo do servidor e uma verso condensada do arquivo de configurao. Essa verso teve os comentrios removidos e est formatada de forma consistente - portanto, s vezes voc detecta erros aqui que voc no viu ao navegar no smb.conf em um editor de texto. Voc deve executar o testparm no arquivo de configurao depois de fazer as alteraes. O Samba ignora a maioria dos erros de digitao nos arquivos de configurao e nem sempre grava mensagens no console ao iniciar. provvel que voc no detecte esses tipos de erros at que algo no esteja funcionando bem. O Testparm avisa quando h erros de digitao nosmb.conf. Por padro, testparm s mostra a configurao da forma que ela inserida no smb.conf. Se voc desconfia de que est usando um valor padro em algum lugar, pode usar a opo -vpara forar o testparm a mostrar tambm os valores padro. Tambm se usa o testparm para limitar a sada a uma nica seo ou parmetro. A Listagem 5 mostra como usar testparm para ver o valor da opo security mask. Listagem 5. Limitando o testparm a um nico parmetro
# testparm -s --parameter-name "security mask" Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[printers]" Processing section "[public]" Loaded services file OK. 0777

Na Listagem 5, o parmetro -s impede que testparm aguarde a entrada do usurio entre a anlise de smb.conf e a sua exibio na tela. O uso de --parameter name "security mask"pede o valor de security mask. O resultado 0777, que o valor padro. Nesse modo, no necessrio especificar -v para mostrar os valores padro. Conectando-se como um cliente Em vez de ir ao desktop de um usurio e tentar fazer as coisas, possvel fazer vrios testes a partir da linha de comando na sua prpria mesa. O primeiro teste, que o mais fcil, se certificar de que voc pode se conectar porta do Samba. A forma mais fcil de fazer isso usar o comando telnet, mostrado na Listagem 6. Listagem 6. Testando a conectividade com telnet
# telnet bob 139 Trying 192.168.1.134... telnet: connect to address 192.168.1.134: Connection refused

Na Listagem 6, o usurio raiz est se conectando ao servidor bob na porta 139. Tambm seria possvel usar a porta 445 para testar a porta SMB de hosting direto. O resultado Connection refused, que indica que o daemon no est escutando esse endereo ou que um firewall est bloqueando a conexo. Outros resultados, como No route to host ou Connection timed out, podem ter o mesmo significado. Os clientes geralmente se conectam a um servidor com um nome, no com um endereo IP. Se voc usar telnet para se conectar ao servidor pelo nome e no pelo endereo IP, preste muita ateno no endereo IP retornado. No exemplo acima, o servidor (bob) foi resolvido para 192.168.1.134. s vezes, pode haver erros no registro de DNS que fazem os clientes se conectarem ao endereo errado. Se voc no est usando o DNS para a resoluo de nomes do Windows, possvel usar o comando nmblookup para fazer a busca. A Listagem 7 mostra uma consulta relacionada ao servidor bob. Listagem 7. Realizando uma consulta de nome do NetBIOS em relao a bob
# nmblookup bob querying bob on 192.168.1.255 192.168.1.138 bob<00>

De acordo com a Listagem 7, o servidor bob est em 192.168.1.138, no em 192.168.1.134, como voc viu na Listagem 6. Esse resultado indica um problema com o DNS, principalmente se as portas 139 e 445 esto respondendo em 192.168.1.138. Outro teste se destina a ver se o arquivo de configurao nega acesso a um host especfico. Testparm usado novamente na Listagem 8. Listagem 8. Verificando o acesso com testparm

# testparm /etc/samba/smb.conf Processing section "[homes]" Processing section "[printers]" Processing section "[public]" Loaded services file OK. Server role: ROLE_STANDALONE

seanspc 192.168.1.147

Load smb config files from /etc/samba/smb.conf

Deny connection from seanspc (192.168.1.147) to homes Deny connection from seanspc (192.168.1.147) to printers Deny connection from seanspc (192.168.1.147) to public

Na Listagem 8, trs itens so passados para testparm:


O caminho do arquivo de configurao do Samba O nome de NetBIOS da mquina a ser testada O endereo IP da mquina a ser testada

A sada da Listagem 8 mostra que o acesso da mquina em questo a todos os compartilhamentos negado. Ao usar testparm nesse modo, o utilitrio no se conecta realmente como a mquina. Em vez disso, testparm processa o arquivo de configurao para ver se o acesso seria permitido. Se todos os testes at agora foram bem-sucedidos, possvel tentar estabelecer uma conexo de cliente usando o utilitrio smbclient. O primeiro teste tentar navegar na lista de compartilhamento, mostrada na Listagem 9. Listagem 9. Mostrando os compartilhamentos de uma mquina
[sean@bob source3]$ smbclient -L 'bob' Enter sean's password: Anonymous login successful Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.6-69.fc13] Sharename --------extdrive timemachine IPC$ 69.fc13) test Cups-PDF Printer Printer test HP 6L Cups-PDF Downstairs_Laser Printer Anonymous login successful Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.6-69.fc13] Type ---Disk Disk IPC IPC Service (Samba Server Version 3.5.6Comment -------

Sean Walberg's iMac Disk

Server --------BOB Workgroup --------MYGROUP WORK WORKGROUP

Comment ------Samba Server Version 3.5.6-69.fc13 Master ------BOB SWALBERG-XPLT IMAC-1FC525

Na Listagem 9, o usurio est solicitando uma lista de compartilhamentos com o parmetro -L no servidor chamado bob. O nome do servidor prefixado com duas barras invertidas () porque um caminho de Universal Naming Convention (UNC). Tambm tome cuidado ao optar entre aspas simples e aspas duplas. As aspas simples interpolam e consideram as barras invertidas como caracteres de escape. Se o seu servidor tem mais segurana configurada, talvez seja necessrio passar o nome de usurio ou o domnio com os parmetros -W e -U, respectivamente. Finalmente, possvel tentar se conectar a um compartilhamento omitindo o parmetro -L e especificando um caminho de UNC completo para o compartilhamento. A Listagem 10 mostra o cliente se conectando a um servidor usando um grupo de trabalho e nome de usurio diferentes. Listagem 10. Conectando-se a um compartilhamento com nome de usurio e domnio diferentes
[sean@bob source3]$ smbclient 'swalberg-xpltphotos' -U swalberg -W WORK Enter swalberg's password: Domain=[WORK] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] smb: > dir . .. << files omitted >> 38156 blocks of size 4194304. 2938 blocks available smb: >> D D 0 0 Thu Jan Thu Jan 6 11:39:50 2011 6 11:39:50 2011

Se houver aprovao nesses testes, voc pode ter uma convico razovel de que o problema no est na configurao do Samba, mas em algum ponto entre o cliente e o servidor ou no cliente propriamente dito. Voc olha os logs da seo a seguir, que do algumas pistas sobre onde o problema est. Firewalls ou aplicativo? H vrias formas de bloquear a conexo a um host, mas todas as opes podem ser agrupadas em duas categorias: rede e aplicativo. Ao bloquear na camada de rede, em um firewall ou usando um firewall baseado em host como o iptables, voc

ver que a conexotelnet mostrada na Listagem 6 recusada ou o seu tempo se esgota. Isso acontece porque o pacote no chega nunca ao aplicativo Samba. Se o Samba for configurado para no permitir conexes a partir de um host especfico, voc ver que a conexo telnet ser bem-sucedida, mas todos os acessos de clientes do erro. Isso acontece porque o pacote lido pelo aplicativo, mas no satisfaz o endereo IP ou do nome do host e envia um erro no nvel do aplicativo. Sem aceitar o pacote na camada do aplicativo, o Samba no tem como saber se o endereo IP aceitvel.
Criao de logs e depurao

A criao de logs e a resoluo de problemas andam juntas. Os logs permitem ver o que aconteceu no passado, para ver se houve erros e obter mais detalhes sobre os problemas medida que ocorrem. Se voc est tentando entender por que algo no est funcionando, pode aumentar a quantidade da criao de logs at obter o nvel necessrio de detalhes. O Samba oferece vrios parmetros em smb.conf para tratar a criao de logs, possvel usar esses parmetros juntos para ajustar os tipos de log gerados. O Samba atua como um daemon tradicional do UNIX porque pode registrar no recurso sysloge tambm gerar os seus prprios arquivos de log. Alm disso, a ferramenta Microsoft Event Viewer pode se conectar a um servidor do Samba para obter logs. O problema desse recurso que o Samba no consegue criar o log diretamente no formato de log de eventos - necessrio ps-processar os seus arquivos de log usando ferramentas do Samba.
Nveis de log Cada mensagem de log que o Samba gera tem um nvel, que um nmero inteiro de 0 a 10. As mensagens de alto nvel, como novas conexes e eventos importantes, tm nveis mais baixos. As mensagens de depurao tm nmeros mais altos.

Voc controla a quantidade de criao de logs especificando o nvel mximo que voc quer que seja registrado no log. O nvel 1 de log somente registra mensagens com prioridade 0 ou 1. Se voc quer uma criao extensa de logs, use um nmero mais alto. Qualquer coisa que tenha um nvel de log acima de 3 se destina a desenvolvedores e no muito til para voc como administrador de sistema. O uso de um nvel de log 0 desativa todas as mensagens, com exceo de algumas mensagens de inicializar e erros crticos.

Para configurar o nvel de log, use o parmetro log level da seo global, por exemplo, use log level = 2 para definir o nvel de log como 2. Essa configurao registra todas as mensagens com prioridade igual ou inferior a dois. possvel alterar o nvel de log no tempo de execuo enviando um sinal de SIGUSR1 ao processo do Samba para aumentar o nvel de log ou SIGUSR2 para diminu-lo. Tambm possvel ser mais granular em relao aos nveis de log, aumentando o detalhamento somente em certos recursos ao especificar qual classe voc quer registrar. Essas classes so:

all: Esse parmetro opcional: se voc no especifica outras palavras-chave, pressupe-se all. tdb: Mensagens de log relacionadas a bancos de dados triviais, que so armazenamentos de valores de chave que o Samba usa. printdrivers: Rotinas de gerenciamento de driver de impressora. lanman: Depurao do NT LAN Manager. smb: Depurao do protocolo SMB. rpc_parse: Anlise de remote procedure calls (RPCs). rpc_srv: Os RPCs do lado do servidor. rpc_cli: Os RPCs do lado do cliente. passdb: A forma antiga armazenar senhas em um host do Samba. sam: O banco de dados de conta local do Samba. auth: Vrios mdulos dentro do Samba relacionados autenticao de usurios. winbind: O componente usado para permitir que os usurios da Microsoft registrem de forma transparente em sistemas UNIX. vfs: Mensagens de depurao referentes aos mdulos do Virtual File System, que permitem incluir funcionalidade do Samba por meio de mdulos que podem ser plugados. idmap: Mapeamento das identidades entre os IDs de usurio de UNIX e os identificadores de segurana da Microsoft. quota: Mensagens relacionadas ao processamento de cota, tanto pela poltica do Microsoft Windows NT quanto pelo sistema de arquivos do UNIX. acls: Processamento da lista de controle de acesso. locking: Status e erros do bloqueio de arquivos. msdfs: Mensagens de log relacionadas ao suporte para o sistema de arquivos distribudo do Samba. dmapi: Funcionalidade da application programming interface (API) de gerenciamento de dados. O Samba deve ser compilado com uma implementao de DMAPI de terceiros para usar esse recurso. registry: Emulao do registro do Windows.

Para usar essa criao de logs adicional, acrescente a palavra-chave e o valor ao parmetro de nvel de log, separado por dois pontos (:). Por exemplo, log level = 1 winbind:3 configura o nvel de log padro do sistema como 1 e aumenta a criao de logs winbind para 3. Essa alterao ajuda a depurar problemas com o login nico sem se "afogar" em arquivos de log que no esto relacionados.
Local do arquivo de log

Para alterar o nome do arquivo de log, use o parmetro log file. Tambm possvel usar macros no valor. Uma configurao frequentemente usada ter um arquivo de log por cliente. Para fazer isso, especifique:
log file = /var/log/samba/log.%m

Esse comando separa os arquivos de log individuais em um por cliente, sendo que o restante das mensagens continua indo para log.smbd. Se voc quer registrar em syslog, pode especificar syslog = 1 para enviar todos os logs no nvel 1 ou 0 para o servidor local de syslog. O Samba usa o recurso LOG_DAEMON e estabelece a correspondncia entre os nveis de log do Samba e as prioridades de syslog da seguinte forma: LOG_ERR. Nvel de log 0 LOG_WARNING. Nvel de log 1 LOG_NOTICE. Nvel de log 2 LOG_INFO. Nvel de log 3 LOG_DEBUG. Nvel de log 4 ou mais Se voc est registrando no syslog em um daemon de syslog mais avanado que consegue filtrar as mensagens recebidas e avisar o administrador do sistema, essa uma forma excelente de ficar de olho no servidor do Samba.
Metadados de log

possvel incluir ou remover algumas informaes que aparecem em todas as entradas de log com parmetros mais globais:

debug timestamp. Inclui uma indicao de data e hora na mensagem de log e habilitado por padro debug uid. Registra os IDs de usurio e grupo do processo do Samba que gera os logs debug prefix timestamp. Mantm as indicaes de data e hora, mas remove as informaes sobre o local do cdigo de origem do Samba que gerou o log debug pid. Registra o identificador do processo do Samba que gerou o log debug hires timestamp. Altera a resoluo da indicao de data e hora para microssegundos em vez de segundos

debug class. Registra a classe da mensagem de log, o que til se voc quer alterar o detalhamento de uma determinada classe (Essa opo ajuda a determinar qual classe voc quer.)

A criao de logs pode ajudar a localizar os problemas ou fazer voc se afogar em rudos. O Samba oferece diversas opes de criao de log, use-as com moderao.
Rastreamento de chamadas do sistema

Se todas as outras opes falharem, possvel usar as ferramentas do sistema UNIX para ver o que est acontecendo dentro do processo. O programa strace do Linux permite rastrear todas as chamadas de sistema que um aplicativo faz. Um aplicativo usa chamadas de sistema para abrir e ler arquivos, criar e destruir processos e interagir com o restante do sistema operacional. A Listagem 11 mostra o usurio raiz rastreando um processo do Samba que est lanando um erro para o cliente. Listagem 11. Usando Strace em um processo
# ps -ef | grep smb sean root root root root 13375 28812 14294 13593 16132 28812 28812 1 28814 28812 0 21:54 ? 0 21:55 pts/2 0 Feb27 ? 0 Feb14 ? 0 Feb14 ? 00:00:00 smbd -D 00:00:00 grep smb 00:00:36 smbd -D 00:00:28 smbd -D 00:00:00 smbd -D

[root@bob /]# strace -e trace=file -p 13375 Process 13375 attached - interrupt to quit << Output omitted >> chdir("/home/sean") stat64("somedir/*", 0xbfcb5f60) getcwd("/home/sean", 4096) = 0 = -1 EACCES (Permission denied) = 11 stat64("somedir", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0

lstat64("/home/sean/somedir", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 lstat64("/home/sean/somedir/*", 0xbfcb5ffc) = -1 EACCES (Permission denied)

O primeiro comando procura uma lista de processos do Samba. Como o Samba assume a identidade do usurio conectado, possvel identificar facilmente que o processo 13375 pertence ao usurio. Em seguida, o comando strace executado com dois parmetros: -e trace=file limita a sada s chamadas de sistema relacionadas a arquivos. Para os tipos de problemas que voc encontrar no Samba, essa uma boa suposio inicial. O segundo parmetro, -p 13375, instrui o strace a se conectar ao processo em execuo com esse ID de processo.

Ao observar a sada desse comando, voc ver que smb est varrendo o diretrio constantemente, procurando alteraes. Quando o usurio tenta a ao que tem o problema, possvel que voc veja uma sada parecida com a Listagem 11. Os comandos finais tentam obter informaes sobre arquivos dentro do diretrio com a chamada stat64. O resultado permission denied, que significa que o usurio est sendo rejeitado no nvel do sistema de arquivos, e no pelo Samba. Esse comando pode fornecer mais informaes para resolver o problema - como alterar os atributos do diretrio ou dizer ao usurio que ele no tem permisso para acessar o diretrio.