Samba: Dicas de como Configurar smb.conf Usando testparm

Hoje trago dicas de como configurar o arquivo de configuração do samba: smb.conf.

Primeiros Passos, Iniciando o Samba

Antes de tudo inicie o samba. Podemos iniciar ou através do arquivo “/usr/local/samba/sbin/samba

elder@server01:~$ sudo /usr/local/samba/sbin/samba

Ou pelo systemd. Para configurar o samba no systemd siga esse tutorial: Samba 006: Automatizar o Samba como Serviço para start e stop no systemd. Após configurado no systemd basta executar

elder@server01:~$ sudo systemctl start samba

 

Sempre Use testparm para Validar as Configurações  de smb.conf

a Ferramenta testparm fica dentro de  “/usr/local/samba/bin/”.

Se usarmos o comando abaixo iremos validar  /usr/local/samba/etc/smb.conf

/usr/local/samba/bin/testparm

Se quisermos validar uma cópia do smb.conf basta apenas colocarmos o arquivo na frente. Vamos supor que tenho a cópia de smb.conf que se chama smb.conf.bkp, para validar a smb.conf.bkp faremos

/usr/local/samba/bin/testparm /usr/local/samba/etc/smb.conf.bkp

Para encurtar  o texto podemos usar antes o comando “cd”  para entrarmos na pasta mais próxima. O comando abaixo terá o mesmo resultado que o de cima.

cd /usr/local/samba/bin
sudo ./testparm ../etc/smb.conf.bkp

Acima usei “./” e “../”

  • ./  = A pasta atual. Ao usar ./ acima disse que quero acessar o arquivo testparm que está dentro da pasta acessada atualmente, ou seja: /usr/local/samba/bin
  • ../ = A pasta anterior. Ao usar ../ acima quis acessar o arquivo smb.conf.bkp que está na pasta  /usr/local/samba/.

Faça Alterações em uma Cópia do smb.conf

É recomendado fazer copiar o arquivo smb.conf, alterar a cópia. Após as alterações sobrescreva o arquivo smb.conf. Vamos exemplificar:

Como exemplo de alteração iremos criar a pasta “/Documentos” e compartilhar ela.

Crie a pasta “/Documentos”

elder@server01:~$ sudo mkdir /Documentos

 

Vamos criar uma cópia do smb.conf e alterá-la

elder@server01:~$ cd /usr/local/samba/etc/
elder@server01:/usr/local/samba/etc$ sudo cp  ./smb.conf ./smb.conf.bkp

Acima acessei a pasta /usr/local/samba/etc/ e em seguida gerei a cópia smb.conf.bkp

Agora usaremos um editor de texto para alterarmos a cópia. Usarei o editor vim.

elder@server01:/usr/local/samba/etc$ vim ./smb.conf.bkp

Ao final do arquivo  smb.conf.bkp adicione o seguinte

[Documentos]
path = /Documentos
read only = No

Veja como ficou meu Arquivo:

elder@server01:/usr/local/samba/etc$ cat smb.conf.bkp 
# Global parameters
[global]
	dns forwarder = 8.8.8.8
	netbios name = SERVER01
	realm = EMPRESA100.LOCAL
	server role = active directory domain controller
	workgroup = EMPRESA100

[sysvol]
	path = /usr/local/samba/var/locks/sysvol
	read only = No

[netlogon]
	path = /usr/local/samba/var/locks/sysvol/empresa100.local/scripts
	read only = No

[Documentos]
	path = /Documentos
	read only = No

 

Valide as configurações com testparm

elder@server01:/usr/local/samba/etc$ sudo ../bin/testparm  ./smb.conf.bkp 
Load smb config files from ./smb.conf.bkp
Loaded services file OK.
Weak crypto is allowed
Server role: ROLE_ACTIVE_DIRECTORY_DC

Press enter to see a dump of your service definitions

# Global parameters
[global]
	dns forwarder = 8.8.8.8
	passdb backend = samba_dsdb
	realm = EMPRESA100.LOCAL
	server role = active directory domain controller
	workgroup = EMPRESA100
	rpc_server:tcpip = no
	.......
	idmap config * : backend = tdb
	map archive = No
	vfs objects = dfs_samba4 acl_xattr

.........

[Documentos]
	path = /Documentos
	read only = No

Acima, apaguei algumas linhas de texto para resumir; também separei por cores. Primeiramente aparece a parte laranja com alguns avisos. Vemos que

  • Load smb config files from ./smb.conf.bkp: O arquivo testado por testparm é o smb.conf.bkp ao invés de smb.conf
  • Loaded services file OK: os serviços estão ok.
  • Weak crypto is allowed: Aqui um alerta avisando que algorítimo de criptografia fraca está sendo permitido. Podemos ignorar esse alerta. Para manter compatibilidade com versões anteriores o SMB requer uso de criptografias consideradas fracas.
  • Server role: ROLE_ACTIVE_DIRECTORY_DC: Aqui apenas somos avisados da função que nosso samba está desempenhando, que é um Active Directory e Controlador de Domínio(DC)

 

Não temos com que nos preocupar até então. A próxima linha nos pede para teclar enter para despejar/jogar(dump) na tela as configurações do smb.conf

Press enter to see a dump of your service definitions

Se testparm avaliar como OK as configurações ele joga na tela(stdout) a nossa configuração.

 

Já que está ok nossa configuração iremos sobrescrever smb.conf. Para isso iremos renomear smb.conf.bkp para smb.conf. lembrando que em Linux não existe uma ferramenta para renomear. Na verdade é usado o comando mv para ‘movermos’ o arquivo. Usaremos o comando “sudo mv    ./smb.conf.bkp     ./smb.conf

elder@server01:/usr/local/samba/etc$ sudo mv ./smb.conf.bkp ./smb.conf

 

testparm: Simulando Erro de Digitação em smb.conf

Em smb.conf propositadamente digitei “read only = Nooo” ao invés de “read only = No” Vamos ver como testparm reage.

elder@server01:/usr/local/samba$ sudo ./bin/testparm ./etc/smb.conf.bkp 
Load smb config files from ./etc/smb.conf.bkp
set_variable_helper(Nooo): value is not boolean!
Error loading services.

Na linha abaixo ele diz que houve um erro. O valor deve ser “yes” ou “no”, ou seja, deve ser um valor booleano:

set_variable_helper(Nooo): value is not boolean!

A terceira linha ele disse que os serviços do samba não foram carregados

Error loading services.

 

Por que Devemos Usar uma Cópia do smb.conf?

Isso é apenas uma recomendação. Se quiser pode alterar diretamente o arquivo smb.conf.

Precisamos saber de uma coisa: O samba recarrega(reload) suas configurações automaticamente a cada 3 minutos. Por isso é bom alterarmos a cópia para evitar esse reload enquanto alteramos.

Aqui estou falando de reload das configurações e não restart(reinício) dos servicos. Pois no samba podemos aplicar as configurações alteradas sem precisar reiniciar o samba em si.

o reload que acontece a cada 3 minutos também pode ser feito manualmente com o comando abaixo:

elder@server01:~$ sudo /usr/local/samba/bin/smbcontrol all reload-config

Já para reiniciar o serviço do samba podemos fazer assim:

Parar o samba

elder@server01:~$ sudo killall samba

Iniciando novamente

elder@server01:~$ sudo /usr/local/samba/sbin/samba

 

Procure Sempre Usar ./ e ../ ao Usar o Caminho Relativo das Pastas

Acima já usamos bastante ./ e ../ mas por que estou recomendado o uso deles aqui em um artigo que fala sobre samba?

Simplesmente porque já parei o samba em um servidor em produção ao usar tab para autocompletar. O tab ao invés de completar samba.. com samba-tool acabou completando com samba-restore. Digitei tudo tão rapidamente que só percebi o erro quando os usuários me falaram que não conseguiam acessar pastas compartilhadas.

Se estiver dentro de /usr/local/samba/bin e for usar samba-tool procure digitar ./samba-tool ao invés de apenas samba-tool.

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *