Criado por Andrew Tridgell, o Samba é uma excelente ferramenta para fornecer conectividade entre sistemas Windows e Unix-like. Nesse artigo procuro descrever os principais aspectos de sua configuração.
O arquivo smb.conf faz uso de algumas macros como estas abaixo:
%M, Máquina (Machine)
%U, Usuário (User)
%L, Nome da Máquina Local (Local Machine)
Ele é dividido em duas partes, são elas:
Opções Globais (Global Settings)
Compartilhamento
Os principais parâmetros da sessão Global Settings são:
NetBios Name
Informações do servidor Windows, ou seja, é o nome da máquina sob o protocolo NetBios.
Workgroup
O nome ou o grupo de trabalho do domínio.
Server String
Uma breve descrição para o domínio para os PCs que têm o Windows como sistema operacional.
Log File
Este parâmetro indica o local e a forma que serão segmentadas as informações de log vindas do relacionamento entre o Servidor e os Clientes Samba. Neste caso, é utilizado um parâmetro macro adicional para dizer ao Servidor que um arquivo de log deve ser criado para cada máquina que nele esteja conectada, ou seja, se a um servidor Linux estiverem conectados 4 PCs Windows e são, respectivamente, chamados de maquina1, maquina2, maquina3, maquina4, então teremos os arquivos de log da seguinte forma: maquina1.log, maquina2.log, maquina3.log e maquina4.log. Os arquivos de log ficam depositados dentro do diretório /var/log/samba.
max log size
Neste parâmetro, deve ser colocado o valor em kilobytes para o tamanho máximo dos arquivos de log, caso você deixe este parâmetro com o valor 0, os arquivos terão um valor indefinido, podendo até mesmo ocupar metade de um disco rígido, portanto esta opção não é muito aconselhada, pois arquivos de log longos demais demoram a ser carregados e o mais importante, ninguém tem paciência para lê-los. Quando um arquivo de log chega ao seu limite seu conteúdo é movido para um arquivo com extensão .old e outro arquivo de log é criado, isto se nenhum arquivo com extensão .old já existir, se isto for verdade, o arquivo com extensão .old será removido permanentemente do seu HD e um novo log com conteúdo diferente o substituirá.
Security
Este parâmetro refere-se a segurança, caso você defina o valor deste como "user", então toda vez que alguém quiser ter acesso ao servidor devera passar uma senha, esta é uma boa idéia, caso você necessite de segurança em seu servidor.
Encript Passwords
Esta é uma opção booleana, então retorna somente dois valores, falso ou verdadeiro. Você pode usar encriptação de senhas ativando esta opção, isto dificultará a ação de algum cracker que pode estar há dias com um sniffer sondando sua rede em busca de senhas. Ele pode até conseguir capturar alguma coisa com seu software espião, porém terá um árduo trabalho para desenrolar o conteúdo.
Socket
Esta opção melhora o desempenho do servidor
Local Master, OS Level, Domain Master, Preferred Master
Estas opções fazem o servidor funcionar como um Browser Master. São estas opções que permitem um sistema Windows enxergar as outras máquinas que estão por perto e quais recursos estão disponíveis. Este serviço pode ser visualizado abrindo no Windows a janela "Meus Locais de Rede", a máquina terá a função de PDC, precisará controlar o mecanismo de browsing.
Domains Logons
Habilita logins no domínio definido no parâmetro "Workgroup", se esta opção for setada como "NO", então não será permitida a entrada de ninguém no domínio.
Logon Script
No momento em que é feito o login de um usuário em uma determinada máquina, é executado este script com extensão BAT, é ele que mostra uma tela de boas vindas na exata hora em que o usuário se conectar, assim como acontece nos servidores FTP. Para se criar um arquivo deste é necessário abrir um editor de textos como o JED ou mesmo o Bloco de Notas e escreva os seguintes comandos nele:
net send genova Seja Bem Vindo ao Genova
No qual genova é o nome da máquina. Este arquivo deve ser salvo com o nome da máquina por motivo de organização e seguido da extensão BAT e armazenado no diretório /usr/local/samba/lib/netlogon. Dentro deste diretório, crie os arquivos com o nome da máquina seguidos da extensão "bat" e adicione o comando demonstrado acima. É necessário um arquivo para cada máquina.
No Linux, você pode usar o seguinte comando para criar um arquivo para a máquina que possui o nome genova:
# echo "net send genova Seja Bem Vindo Ao Genova" > genova.bat
Logon Path
Este parâmetro se encarrega de guardar o local onde deverão ficar os arquivos referentes ao profile de cada usuário. A macro %L deve ser substituída pelo nome da máquina local, e %U é o nome do usuário.
Exemplo:
//genova/profiles/robersonfox
O Primeiro argumento é definido com o nome da máquina, o segundo é o nome do compartilhamento e o terceiro o nome do usuário.
Logon Drive, Logon Home
É aqui que devemos configurar a unidade que deve ser mapeada e onde está o diretório home. A segunda opção não é necessária já que o samba mapeia a unidade automaticamente.
A próxima sessão do arquivo é a Share Definitions, iremos configurar o comportamento dos diretórios dos usuários. Nesta sessão, temos os cabeçalhos, homes, NetLogon, Profiles, Printers, TMP, Public entre outros. A seguir o significado dos principais parâmetros:
Comment
Mostra um comentário para o diretório em questão
Browseable
Define se o diretório pode ser visto a partir de um browser
Writable
Define se é possível ou não escrever neste arquivo
Public
Este cabeçalho é um dos mais importantes, senão o mais importante. Em uma rede os usuários logados não tem um acesso livre aos documentos dos outros usuários, mas se eles não tem acesso aos arquivos, seria bobagem logar-se na rede, por isto existe este diretório, que é onde todos têm permissões para ler e escrever, desde que façam parte do grupo, é claro. O que define se um diretório é publico ou não é o parâmetro public, caso ele seja setado como "YES", então este será reconhecido pelo servidor como público, mas antes não se deve esquecer de deixar a propriedade do parâmetro Writable como "YES".
Write List
Este parâmetro diz ao servidor qual o grupo que tem permissão para gravar no diretório, caso este seja definido como "@root", somente quem faz parte do grupo root poderá gravar neste diretório, os outros usuários somente poderão ler o conteúdo deste diretório.
[3] Comentário enviado por upaf em 02/05/2006 - 14:40h
Ótimo artigo! Parabéns!
Aproveitando eu queria postar uma dúvida, caso alguém possa me ajudar.
Utilizando um artigo anteirormente postado aqui no VOL, eu criei uma impressora PDF no meu Samba, assim, se alguém quiser transformar um arquivo em PDF, basta imprimí-lo nessa impressora.
Meu problema é que especificamente para esse compartilhamento ImpressoraPDF, eu queria deixá-la SEM AUTENTICAÇÃO de usuário/senha, ou seja, qualquer pessoa poderia utilizá-la.
Tem como fazer isso somente para esse compartilhamento?
[5] Comentário enviado por upaf em 02/05/2006 - 16:09h
dupotter, valeu pela dica, mas não deu certo... :(
Eu também já tentei criar um usuário novo "impressora", dei acesso à ele no Samba e alterei a seguinte linha na configuração do Samba:
guest account = impressora
Coloquei esse usuário na lista de acessos e nada...
Quando eu tento imprimir, o trabalho fica na fila. A única forma de fazer funcionar é fazendo um mapeamento na rede (autenticando), aí, nem que seja com o usuario "impressora", vai legal.
Estou usando o Debian 3.1
Existe algum parâmetro no Samba que diz pra ele usar um usuário específico quando não for um usuário já autenticado? (essa é a idéia da linha acima "guest account"? )
[6] Comentário enviado por dupotter em 03/05/2006 - 07:54h
ai vc ta trocando o usuário guest (fantasma), que no caso seria nobody, por impressora, faz o seguinte, manda seu smb.conf pro meu email, dupotter@gmail.com, ou cola aqui mesmo na caixa de comentário, a parte das impressoras, pra gente poder dar uma olhada.
[7] Comentário enviado por piuquest em 25/08/2006 - 09:14h
Boa!
mas cara tenhu uma dúvida... meu dominio eh 2003 server
e minhas estações linux, as estações estão já todas logando no dominio windows 2003, porém gostaria q aos usuarios se logarem nas estações fosse possível mapear compartilhamentos no 2003 automaticamente de acordo com cada senha!
[10] Comentário enviado por Tyros em 02/11/2006 - 21:17h
Boas, sou novo nisto d linux e tb de samba, e estou com algumas dificuldades em conseguir aceder do linux para uma maquina windows, sera k alguem me podia explicar como faço, quais os comandos a por na prompt, o k tenho d configurar etc etc, ou indicar-me algum toturial. utilizo de momento o fedora 5... abraço e agradecia k alguem podesses esclarecer as minhas duvidas, é bastante importante para mim, obrigado.
[12] Comentário enviado por henriquecorbo em 22/05/2011 - 14:33h
Eu uso o Fedora 14 em um VM no VirtualBox, mas não consegui compartilhar nenhuma pasta o Windows. Existe algum assistente gráfico que possa me auxiliar melhor. Eu não sei onde estou errando.