⬅ Voltar ao Dashboard 3º Bimestre — Serviços de Rede

📂 Servidor de Arquivos Samba

Aula 3 — Configure o Samba no Ubuntu para compartilhar arquivos entre Linux e Windows: instale, crie compartilhamentos públicos e privados e gerencie usuários SMB

🤔 O que é Samba?

O Samba é um software de código aberto que implementa o protocolo SMB/CIFS no Linux, permitindo que servidores Linux compartilhem arquivos e impressoras com máquinas Windows como se fossem parte da mesma rede.

💡 Analogia da ponte: Windows fala “SMB/CIFS” e Linux fala “NFS”. O Samba é o tradutor que permite a comunicação entre os dois mundos — tornando o servidor Linux invisivamente compatível com a rede Windows.

🪟 O que o Samba faz

  • Compartilha pastas e arquivos
  • Compartilha impressoras
  • Autentica usuários
  • Controla permissões de acesso

✅ Vantagens

  • Gratuito e open source
  • Compatível com Windows 10/11
  • Configuração flexível
  • Amplamente usado em empresas

🏢 Cenário típico: empresa com 50 PCs Windows + 1 servidor Linux = todos acessam os mesmos arquivos de qualquer máquina, sem instalar nada nos clientes.

🔌 Protocolo SMB/CIFS

O SMB (Server Message Block) é o protocolo de rede usado pelo Windows para compartilhar recursos. O Samba implementa esse protocolo no Linux, permitindo integração total.

Como funciona

fluxo de acesso
Windows pede: \\servidor\pasta Samba responde: OK, aqui está o conteúdo! Windows vê: Uma pasta local (como se fosse drive Z:)

Portas utilizadas

PortaServiço
445SMB direto (principal — Windows moderno)
139NetBIOS Session (compat. legado)
137–138NetBIOS Name / Datagram

Tipos de compartilhamento

TipoDescrição
Público (guest)Sem autenticação — qualquer um acessa
PrivadoRequer usuário e senha SMB
Somente leituraPode visualizar, não modificar
Leitura/EscritaAcesso completo para modificar arquivos

📁 Arquivos e Serviços

O Samba é composto por múltiplos serviços e arquivos. Conhecer cada um é fundamental para instalação, configuração e diagnóstico.

Arquivos de configuração e dados

Arquivo / DiretórioFunção
/etc/samba/smb.confConfiguração principal do servidor
/var/log/samba/Logs do serviço para diagnóstico
/var/lib/samba/Dados internos (banco de usuários, etc.)

Serviços do Samba

smbd Compartilhamento Arquivos e impressoras
nmbd Nomes NetBIOS Resolução de nomes
winbindd Active Directory Integração com AD

Estrutura do smb.conf

estrutura geral
[global] # configurações do servidor netbios name = SERVIDOR security = user [public] # cada [bloco] = um compartilhamento path = /home/usuario/public read only = no

📦 1 Instalar o Samba

A instalação é feita com o apt. Os serviços smbd e nmbd serão criados automaticamente, mas precisamos configurar antes de usar.

instalando samba
# Atualizar repositórios $ sudo apt-get update # Instalar o Samba $ sudo apt-get install samba # Verificar versão instalada $ samba --version Version 4.15.13-Ubuntu

O que é instalado

💾 2 Backup da Configuração

O smb.conf instalado contém muitos exemplos e comentários. Use mv para preservá-lo como backup e criar um arquivo limpo do zero.

backup do smb.conf
# Mover como backup (não copiar) $ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bkp # Verificar $ ls /etc/samba/ smb.conf.bkp # Para restaurar o backup se precisar: $ sudo cp /etc/samba/smb.conf.bkp /etc/samba/smb.conf

💡 Por que mv e não cp? O mv move o original como backup e deixa o caminho livre para criarmos um arquivo limpo. Com cp teríamos dois arquivos com o mesmo conteúdo.

✏️ 3 Criar a Configuração

Crie o smb.conf do zero. Vamos criar dois compartilhamentos: um privado (requer senha) e um público (acesso livre, somente leitura).

criar smb.conf
$ sudo vim /etc/samba/smb.conf

Conteúdo do arquivo

/etc/samba/smb.conf
[global] netbios name = SERVIDOR server string = Servidor de Arquivos security = user map to guest = Bad User log file = /var/log/samba/samba-log-%m [public] path = /home/usuario/public read only = no browseable = yes guest ok = no [guest] path = /home/usuario/guest read only = yes browseable = yes guest ok = yes

💬 Salvar no vim: pressione ESC, depois digite :wq e pressione ENTER.

📖 Entendendo a Configuração

O smb.conf é dividido em seções. O [global] define o comportamento geral do servidor; cada [nome] define um compartilhamento.

Seção [global]

ParâmetroFunção
netbios nameNome do servidor na rede Windows (aparece no Explorador)
server stringDescrição exibida ao navegar na rede
securityTipo de autenticação (user = por usuário e senha)
map to guestTratar usuários inválidos como convidados

Seção [compartilhamento]

ParâmetroFunção
pathCaminho da pasta no servidor Linux
read onlyno = leitura e escrita; yes = somente leitura
browseableyes = visível ao navegar na rede Windows
guest okyes = acesso livre sem senha; no = exige autenticação

💡 [public] exige senha (guest ok = no) mas permite escrita. [guest] é livre (guest ok = yes) mas somente leitura. Use essa combinação para separar recursos públicos de privados.

📁 4 Criar Pastas e Usuário

Crie as pastas referenciadas no smb.conf, ajuste as permissões e crie um usuário Samba para autenticação. O usuário Linux e a senha SMB são independentes.

pastas, permissões e usuário
# Criar as pastas de compartilhamento $ mkdir ~/public ~/guest # Ajustar permissões (777 para testes) $ chmod 777 ~/public ~/guest # Criar usuário no Linux $ sudo useradd samba # Criar senha SMB para o usuário $ sudo smbpasswd -a samba New SMB password: ******** Retype new SMB password: ******** Added user samba.

⚠️ Permissão 777 é para testes! Em produção, use permissões mais restritivas (ex.: 750 ou 755) e defina o proprietário correto com chown.

💡 Duas senhas diferentes: useradd cria o usuário no sistema Linux e smbpasswd -a cria a senha SMB usada para autenticar pelo Windows. São bancos separados.

🚀 5 Testar e Iniciar

Valide a configuração com testparm antes de iniciar. Esse comando verifica erros de sintaxe no smb.conf sem precisar reiniciar o serviço.

validar e iniciar
# Verificar configuração (sem erros = OK!) $ testparm -s Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE # Reiniciar os dois serviços $ sudo systemctl restart smbd nmbd # Habilitar para iniciar no boot $ sudo systemctl enable smbd nmbd # Verificar status $ sudo systemctl status smbd ● smbd.service - Samba SMB Daemon Active: active (running) since ...

🪟 Acessando e Comandos Úteis

Acessando pelo Windows

  1. Abra o Explorador de Arquivos
  2. Na barra de endereço, digite: \\192.168.0.1
  3. Informe as credenciais: Usuário samba / senha SMB
  4. Acesse as pastas public e guest

🗺️ Mapear como drive: clique direito na pasta → “Mapear unidade de rede” → escolha a letra (ex.: Z:) → caminho: \\IP\public. O drive aparecerá no Explorador como qualquer outro disco.

Comandos úteis

ComandoFunção
testparm -sVerificar erros no smb.conf
smbstatusVer conexões ativas e arquivos abertos
pdbedit -LListar usuários Samba cadastrados
smbpasswd -a usuarioAdicionar novo usuário Samba
smbpasswd -x usuarioRemover usuário do Samba
smbpasswd usuarioAlterar senha de usuário existente
monitorar logs
# Ver logs em tempo real $ sudo tail -f /var/log/samba/log.smbd # Limpar credenciais salvas no Windows (cmd) net use * /d /y

⚠️ Windows 10/11: se aparecer erro de acesso, pode ser necessário habilitar “Logon de convidado inseguro” via gpedit.msc ou ajustar as configurações de segurança de rede.

🎯 Exercício — Arraste e Conecte

Relacione cada elemento do Samba à sua descrição correta.

Descrição
Arquivo de configuração principal do Samba
Comando para verificar erros na configuração
Serviço responsável pelo compartilhamento de arquivos
Define o nome do servidor na rede Windows
Comando para criar senha SMB de usuário
Elemento
smb.conf
testparm
smbd
netbios name
smbpasswd

🛠️ Atividade Prática — Configurando o Servidor Samba

⏱ ~40 min 💻 Ubuntu Server / VM 📸 Tirar screenshot da saída
1
Instalar e fazer backup
Instale o Samba com sudo apt-get install samba e verifique a versão com samba --version. Faça backup com sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bkp. Tire screenshot.
2
Criar configuração e pastas
Crie o arquivo /etc/samba/smb.conf com as seções [global], [public] e [guest]. Crie as pastas ~/public e ~/guest com mkdir e ajuste as permissões com chmod 777.
3
Criar usuário e testar configuração
Crie um usuário com sudo useradd samba e defina a senha SMB com sudo smbpasswd -a samba. Valide o arquivo com testparm -s e reinicie os serviços com systemctl restart smbd nmbd. Tire screenshot do status.
4
Acessar pelo Windows e documentar
A partir de uma máquina Windows na mesma rede, acesse \\IP_DO_SERVIDOR no Explorador de Arquivos. Forneça as credenciais e navegue pelas pastas. Tire screenshot mostrando os compartilhamentos visíveis.
📌 Para refletir: o Samba elimina a barreira entre Linux e Windows em ambientes mistos. Com um servidor Linux rodando Samba, toda a empresa pode compartilhar arquivos de forma centralizada, segura e sem custo de licenças. Entender smb.conf e o gerenciamento de usuários SMB é essencial para qualquer administrador de redes.

❓ Verifique seu Conhecimento

Para que serve o Samba em redes mistas Linux/Windows?

AGerenciar endereços IP dinamicamente
BCompartilhar arquivos e impressoras entre Linux e Windows
CConfigurar roteamento entre redes
DMonitorar tráfego de rede
✓ O Samba implementa o protocolo SMB/CIFS, permitindo que Linux compartilhe arquivos com Windows como se fosse um servidor nativo.

Qual arquivo é o principal arquivo de configuração do Samba?

A/etc/samba/users.conf
B/var/samba/config.ini
C/etc/samba/smb.conf
D/etc/smb/samba.conf
✓ O arquivo /etc/samba/smb.conf define as seções [global], [homes] e os compartilhamentos personalizados.

Qual comando adiciona um usuário à base de senhas do Samba?

Asmbpasswd -a usuario
Bsambaadd usuario
Cuseradd -s samba usuario
Dsmb-user --add usuario
smbpasswd -a usuario adiciona o usuário à base Samba (distinta da senha do Linux).

Qual parâmetro do smb.conf restringe o acesso a um compartilhamento por usuário?

Arestrict users = usuario
Ballow only = usuario
Csmb users = usuario
Dvalid users = usuario
valid users = usuario lista quem pode acessar o compartilhamento — use @grupo para grupos inteiros.