Exemplos de configuração do servidor SAMBA

Os exemplos existentes nesta seção cobrem diferentes tipos de configuração do servidor, tanto em modo de compartilhamento com acesso público ou um domínio restrito de rede. Todos os exemplos estão bem comentados e explicativos, apenas pegue o que se enquadre mais em sua situação para uso próprio e adaptações.

Grupo de Trabalho com acesso público

Este exemplo pode ser usado de modelo para construir uma configuração baseada no controle de acesso usando o nível de segurança share e quando possui compartilhamentos de acesso público. Esta configuração é indicada quando necessita de compatibilidade com softwares NetBIOS antigos.

 # Arquivo de configuração do SAMBA criado por 
 # Gleydson Mazioli da Silva <gleydson@debian.org>
 # para o guia Foca GNU/Linux Avançado - Capítulo SAMBA
 # Este script pode ser copiado e distribuído livremente de 
 # acordo com os termos da GPL. Ele não tem a intenção de 
 # atender uma determinada finalidade, sendo usado apenas 
 # para fins didáticos, portanto fica a inteira responsabilidade
 # do usuário sua utilização.

[global]
 # nome da máquina na rede
 netbios name = teste
 # nome do grupo de trabalho que a máquina pertencerá
 workgroup = focalinux
 # nível de segurança share permite que clientes antigos mantenham a compatibilidade
 # enviando somente a senha para acesso ao recurso, determinando o nome de usuário
 # de outras formas
 security = share
 # O recurso de senhas criptografadas não funciona quando usamos o nível share 
 # de segurança. O motivo disto é porque automaticamente é assumido que você 
 # está selecionando este nível por manter compatibilidade com sistemas antigos
 # ou para disponibilizar compartilhamentos públicos, onde 
 encrypt passwords = false
 # Conta que será mapeada para o usuário guest
 guest account = nobody
 # Como todos os compartilhamentos desta configuração são de acesso público
 # coloquei este parâmetro na seção [global], assim esta opção afetará todos
 # os compartilhamentos.
 guest ok = 1
 # Conjunto de caracteres utilizados para acessar os compartilhamentos. O padrão
 # para o Brasil e países de língua latina é o ISO 8859-1
 character set = ISO8859-1
 

# Compartilha o diretório /tmp (path = /tmp) com o nome "temporario" ([temporario]),
# é adicionada a descrição "Diretório temporário" com acesso leitura/gravação 
# (read only = no) e exibido na janela de navegação da rede (browseable = yes).
[temporario]
 path = /tmp
 comment = Diretório temporário
 read only = no
 browseable = yes

# Compartilha o diretório /pub (path = /pub) com o nome "publico" ([publico]).
# A descrição "Diretório de acesso público" é associada ao compartilhamento
# com acesso somente leitura (read only = yes) e exibido na janela de navegação 
# da rede (browseable = yes).
[publico] 
 path =/pub
 comment = Diretório de acesso público
 read only = yes
 browseable = yes

# Compartilha todas as impressoras encontradas no /etc/printcap do sistema
# Uma descrição melhor do tipo especial de compartilhamento "[printers]"
# é explicado no inicio do guia Foca Linux
[printers]
 comment = All Printers
 path = /tmp
 create mask = 0700
 printable = Yes
 browseable = No

Grupo de Trabalho com acesso por usuário

O exemplo abaixo descreve uma configuração a nível de segurança por usuário onde existem compartilhamentos que requerem login e usuários específicos, e restrições de IPs e interface onde o servidor opera. Esta configuração utiliza senhas em texto claro para acesso dos usuários, mas pode ser facilmente modificada para suportar senhas criptografadas.

 # Arquivo de configuração do SAMBA criado por 
 # Gleydson Mazioli da Silva >gleydson@debian.org>
 # para o guia Foca GNU/Linux Avançado - Capítulo SAMBA
 # Este script pode ser copiado e distribuído livremente de 
 # acordo com os termos da GPL. Ele não tem a intenção de 
 # atender uma determinada finalidade, sendo usado apenas 
 # para fins didáticos, portanto fica a inteira responsabilidade
 # do usuário sua utilização.

[global]
 # nome da máquina na rede
 netbios name = teste
 # nome do grupo de trabalho que a máquina pertencerá
 workgroup = focalinux
 # nível de segurança user somente aceita usuários autenticados após o envio 
 # de login/senha
 security = user
 # É utilizada senhas em texto claro nesta configuração
 encrypt passwords = false
 # Conta que será mapeada para o usuário guest
 guest account = nobody
 # Permite restringir quais interfaces o SAMBA responderá
 bind interfaces only = yes
 # Faz o samba só responder requisições vindo de eth0
 interfaces = eth0
 # Supondo que nossa interface eth0 receba conexões roteadas de diversas 
 # outras redes, permite somente as conexões vindas da rede 192.168.1.0/24
 hosts allow = 192.168.1.0/24
 # A máquina 192.168.1.57 possui gateway para acesso interno, como medida
 # de segurança, bloqueamos o acesso desta máquina.
 hosts deny = 192.168.1.57/32
 
 # Conjunto de caracteres utilizados para acessar os compartilhamentos. O padrão
 # para o Brasil e países de língua latina é o ISO 8859-1
 character set = ISO8859-1

 # As restrições do PAM terão efeito sobre os usuários e recursos usados do SAMBA
 obey pam restriction = yes 

# Mapeia o diretório home do usuário autenticado. Este compartilhamento especial
# é descrito em mais detalhes no inicio do capítulo sobre o SAMBA no Foca Linux.
[homes]
  comment = Diretório do Usuário
  create mask = 0700
  directory mask = 0700
  browseable = No

# Compartilha o diretório win (path = /win) com o nome "win" ([win]). 
# A descrição associada ao compartilhamento será "Disco do Windows", 
# o nome de volume precisa ser especificado pois usamos programas 
# que a proteção anti cópia é o serial. Ainda fazemos uma proteção
# onde qualquer usuário existente no grupo @adm é automaticamente 
# rejeitado e o usuário "baduser" somente possui permissão de leitura
# (read list = baduser).
#
[win]
 path = /win
 comment = Disco do Windows
 volume = 3CF434C
 invalid users = @adm
 browseable = yes
 read list = baduser

# Compartilha o diretório /pub (path = /pub) com o nome "publico" ([publico]).
# A descrição "Diretório de acesso público" é associada ao compartilhamento
# com acesso somente leitura (read only = yes) e exibido na janela de navegação 
# da rede (browseable = yes). O parâmetro public = yes permite que este 
# compartilhamento seja acessado usando o usuário "nobody" sem o fornecimento
# de senha.
[publico] 
 path =/pub
 comment = Diretório de acesso público
 read only = yes
 browseable = yes
 public = yes

Domínio

 # Arquivo de configuração do SAMBA criado por 
 # Gleydson Mazioli da Silva <gleydson@debian.org>
 # para o guia Foca GNU/Linux Avançado - Capítulo SAMBA
 # Este script pode ser copiado e distribuído livremente de 
 # acordo com os termos da GPL. Ele não tem a intenção de 
 # atender uma determinada finalidade, sendo usado apenas 
 # para fins didáticos, portanto fica a inteira responsabilidade
 # do usuário sua utilização.

[global]
 # nome da máquina na rede
 netbios name = teste
 # nome do grupo de trabalho que a máquina pertencerá
 workgroup = focalinux
 # String que será mostrada junto com a descrição do servidor
 server string = servidor PDC principal de testes
 # nível de segurança user somente aceita usuários autenticados após o envio 
 # de login/senha
 security = user
 # Utilizamos senhas criptografadas nesta configuração
 encrypt passwords = true
 smb passwd file = /etc/samba/smbpasswd
 # Conta que será mapeada para o usuário guest
 guest account = nobody
 # Permite restringir quais interfaces o SAMBA responderá
 bind interfaces only = yes
 # Faz o samba só responder requisições vindo de eth0
 interfaces = eth0

 # como estamos planejando ter um grande número de usuários na rede, dividimos
 # os arquivos de log do servidor por máquina.
 log file =  /var/log/samba/samba-%m-%I.log
 # O tamanho de CADA arquivo de log criado deverá ser 1MB (1024Kb). 
 max log size = 1000 
 # Escolhemos um nível de OS com uma boa folga para vencer as eleições de 
 # controlador de domínio local
 os level = 80 
 # Dizemos que queremos ser o Domain Master Browse (o padrão é auto)
 domain master = yes
 # Damos algumas vantagens para o servidor ganhar a eleição caso 
 # aconteça desempate por critérios
 preferred master = yes
 # Também queremos ser o local master browser para nosso segmento de rede
 local master = yes
 # Este servidor suportará logon de usuários
 domain logons = yes
 # Usuários que possuem poderes para adicionar/remover máquinas no domínio
 # (terão seu nível de acesso igual a root)
 admin users = gleydson
 # Unidade que será mapeada para o usuário local durante o logon (apenas
 # sistemas baseados no NT).
 logon drive = m:
 # Nome do script que será executado pelas máquinas clientes
 logon script = logon.bat

 # Ação que será tomada durante o recebimento de mensagens do 
 # Winpopup. 
 message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &

 # Conjunto de caracteres utilizados para acessar os compartilhamentos. O padrão
 # para o Brasil e países de língua latina é o ISO 8859-1
 character set = ISO8859-1

 # As restrições do PAM terão efeito sobre os usuários e recursos usados do SAMBA
 obey pam restriction = yes 

# Mapeia o diretório home do usuário autenticado. Este compartilhamento especial
# é descrito em mais detalhes no inicio do capítulo sobre o SAMBA no Foca Linux.
[homes]
  comment = Diretório do Usuário
  create mask = 0700
  directory mask = 0700
  browseable = No

# Compartilha o diretório win (path = /win) com o nome "win" ([win]). 
# A descrição associada ao compartilhamento será "Disco do Windows", 
# o nome de volume precisa ser especificado pois usamos programas 
# que a proteção anti cópia é o serial. Ainda fazemos uma proteção
# onde qualquer usuário existente no grupo @adm é automaticamente 
# rejeitado e o usuário "baduser" somente possui permissão de leitura
# (read list = baduser).
#
[win]
 path = /win
 comment = Disco do Windows
 volume = 3CF434C
 invalid users = @adm
 browseable = yes
 read list = baduser

# Compartilha o diretório /pub (path = /pub) com o nome "publico" ([publico]).
# A descrição "Diretório de acesso público" é associada ao compartilhamento
# com acesso somente leitura (read only = yes) e exibido na janela de navegação 
# da rede (browseable = yes). O parâmetro public = yes permite que este 
# compartilhamento seja acessado usando o usuário "nobody" sem o fornecimento
# de senha.
[publico] 
 path =/pub
 comment = Diretório de acesso público
 read only = yes
 browseable = yes
 public = yes

# Compartilhamento especial utilizado para o logon de máquinas na rede
[netlogon]
 path=/pub/samba/netlogon/logon.bat
 read only = yes