Samba, parte 2: Configuração avançada do Samba

Samba, parte 2: Configuração avançada do Samba

Como vimos na primeira parte do tutorial, a maior parte da configuração do Samba, incluindo as configurações gerais do servidor, impressoras e todos os compartilhamentos, é feita em um único arquivo de configuração, o “/etc/samba/smb.conf“. Programas de configuração, como o Swat, simplesmente lêem este arquivo, “absorvem” as configurações atuais e depois geram o arquivo novamente com as alterações feitas dentro da interface. Isso permite que o Swat coexista com a edição manual do arquivo. Como comentei a pouco, o Swat remove todos os seus comentários e formatação (deixando apenas as opções), por isso muitos evitam usá-lo.

Apesar disso, o formato do arquivo de configuração do Samba é bastante simples e por isso muitas vezes é mais rápido e até mais simples editar diretamente o arquivo do que fazê-lo através do Swat. Ao instalar o Samba, é criado um arquivo de configuração de exemplo, com vários comentários. Assim como no caso do Squid, ele é longo e difícil de entender, por isso acaba sendo mais fácil renomeá-lo e começar com um arquivo em branco, ou usar como base a configuração gerada através do Swat.

Vamos então a uma segunda rodada de explicações sobre a configuração do Samba, agora editando diretamente o arquivo smb.conf e explorando com maior profundidade as opções disponíveis. Vamos começar com um exemplo simplista, onde temos um único compartilhamento de teste:

[global]netbios name = Sparta
workgroup = Grupo

[arquivos]path = /mnt/arquivos
comment = Teste

Como você pode ver, o arquivo é dividido em seções. A primeira é sempre a seção “[global]“, que contém as opções gerais do servidor. Por enquanto, definimos apenas o nome do servidor (netbios name) e o nome do grupo de trabalho (workgroup), que seria o mínimo necessário para colocar o servidor na rede. As demais opções (não especificadas no arquivo) são configuradas usando os valores default. Se você omitir a opção “workgroup”, por exemplo, o Samba vai reverter para o grupo “WORKGROUP”, que é o padrão.

Se quiser, você pode também adicionar uma descrição para o servidor, o que é feito através da opção “server string” (adicionada dentro da seção [global]), como em:

server string = Servidor Samba

Duas dicas são que:

a) O default do Samba é usar a string “Samba 3.0.24” (onde o “3.0.24” é a versão usada) como descrição quando a opção “server string” não está presente no arquivo.

b) Nas máquinas com o Windows XP, a descrição do servidor aparece antes do nome propriamente dito, como em “Servidor Samba (Sparta)”. É importante levar isso em consideração, já que, no final das contas, o que importa é o que os usuários irão ver ao navegar pelo ambiente de redes:

m6e226a7e

Abaixo da seção [global], incluímos seções adicionais para cada compartilhamento, que é o caso da seção “[arquivos]” que cria o compartilhamento de teste.

O “[arquivos]” indica o nome do compartilhamento, da forma como ele aparecerá na rede. Logo a seguir temos a linha “path“, que diz qual pasta do servidor será compartilhada e a linha “comment” (opcional), que permite que você inclua um comentário.

Sempre que alterar manualmente o smb.conf, ou mesmo alterar algumas opções pelo Swat e quiser verificar se as configurações estão corretas, rode o comando testparm. Ele funciona como uma espécie de debug, indicando erros grosseiros no arquivo e informando o papel do servidor na rede:

# testparm

Load smb config files from /etc/samba/smb.conf
Processing section “[arquivos]”
Loaded services file OK.
Server role: ROLE_STANDALONE

O “ROLE_STANDALONE” significa que o servidor foi configurado como um membro normal do grupo de trabalho. É possível também fazer com que o servidor Samba atue como um controlador de domínio, como veremos em detalhes mais adiante.

Em caso de erros no arquivo, o testparm ajuda a localizar o problema, indicando a linha ou opção inválida, de forma que você possa corrigí-la. Veja o que acontece ao adicionar um erro simples, usando a linha “wrritable = yes” no lugar de “writable = yes”:

Unknown parameter encountered: “wrritable”
Ignoring unknown parameter “wrritable”

O Samba não diferencia o uso de maiúsculas e minúsculas nas opções, de forma que tanto faz escrever “writable = yes”, “writable = Yes” ou “writable = YES”. Entretanto, muitos dos parâmetros não são diretamente usados pelo Samba, mas sim repassados ao sistema que, diferentemente do Samba, diferencia os caracteres. Um exemplo são as localizações de pastas a compartilhar. Se você escrever “path = /mnt/Arquivos” (em vez de “path = /mnt/arquivos”), o compartilhamento não vai funcionar, pois o sistema reportará que a pasta não existe.

Além do caractere “#”, é possível usar também o “;” para comentar linhas. A principal observação é que você não pode inserir comentários em linhas válidas (mesmo que no final da linha), pois, ao fazer isso, toda a linha passa a ser ignorada pelo Samba. Neste exemplo, o comentário foi incluído na linha “path”, o que acaba por desativar o compartilhamento completamente:

[teste]path = /mnt/arquivos # Pasta compartilhada
comment = Compartilhamento que não funciona

O testparm também não indica o erro diretamente, já que ele também considera a linha como um comentário, o que pode levá-lo a perder um bom tempo tentando descobrir onde está o problema. Ao incluir comentários no arquivo, use sempre linhas separadas:

[teste]# Pasta compartilhada
path = /mnt/arquivos
comment = Agora sim

As alterações no arquivo são lidas periodicamente pelo Samba (o default são 3 minutos) e aplicadas automaticamente. Isso permite que as mudanças de configuração sejam aplicadas de forma suave, sem prejudicar o acesso dos usuários, o que é importante em um ambiente de produção. Para fazer com que as alterações entrem em vigor imediatamente, reinicie o serviço do Samba, como em:

# /etc/init.d/samba restart

ou:

# service smb restart

A partir daí, o compartilhamento estará disponível. Ao tentar acessar o servidor através do “Meus locais de rede” nos clientes Windows, você receberá um prompt de senha, onde você precisa fornecer um dos logins cadastrados no servidor usando o comando “smbpasswd -a”:

4b8a31ae

É importante enfatizar que todos os usuários cadastrados no Samba precisam também existir no sistema, por isso, antes de usar o comando “smbpasswd -a”, você deve usar o adduser para criar o usuário. Como citei anteriormente, a solução para casos em que você não deseja criar contas válidas para todos os usuários é criar usuários limitados usando o comando “adduser –disabled-login –no-create-home usuario” ou “adduser -M usuario”.

Depois de logado, o cliente pode visualizar os compartilhamentos do servidor. Por enquanto temos apenas o compartilhamento “arquivos”, que mostra o conteúdo da pasta “/mnt/arquivos” do servidor, mas ao longo do tutorial adicionaremos muitos outros recursos ao servidor:

3bbc5df2

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X