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 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.
🏢 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.
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.
| Porta | Serviço |
|---|---|
| 445 | SMB direto (principal — Windows moderno) |
| 139 | NetBIOS Session (compat. legado) |
| 137–138 | NetBIOS Name / Datagram |
| Tipo | Descrição |
|---|---|
| Público (guest) | Sem autenticação — qualquer um acessa |
| Privado | Requer usuário e senha SMB |
| Somente leitura | Pode visualizar, não modificar |
| Leitura/Escrita | Acesso completo para modificar arquivos |
O Samba é composto por múltiplos serviços e arquivos. Conhecer cada um é fundamental para instalação, configuração e diagnóstico.
| Arquivo / Diretório | Função |
|---|---|
/etc/samba/smb.conf | Configuração principal do servidor |
/var/log/samba/ | Logs do serviço para diagnóstico |
/var/lib/samba/ | Dados internos (banco de usuários, etc.) |
A instalação é feita com o apt. Os serviços smbd e nmbd serão criados automaticamente, mas precisamos configurar antes de usar.
samba com os serviços smbd e nmbdtestparm, smbpasswd, pdbedit)/etc/samba/smb.conf padrão com exemplosO smb.conf instalado contém muitos exemplos e comentários. Use mv para preservá-lo como backup e criar um arquivo limpo do zero.
💡 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.
Crie o smb.conf do zero. Vamos criar dois compartilhamentos: um privado (requer senha) e um público (acesso livre, somente leitura).
💬 Salvar no vim: pressione ESC, depois digite :wq e pressione ENTER.
O smb.conf é dividido em seções. O [global] define o comportamento geral do servidor; cada [nome] define um compartilhamento.
| Parâmetro | Função |
|---|---|
netbios name | Nome do servidor na rede Windows (aparece no Explorador) |
server string | Descrição exibida ao navegar na rede |
security | Tipo de autenticação (user = por usuário e senha) |
map to guest | Tratar usuários inválidos como convidados |
| Parâmetro | Função |
|---|---|
path | Caminho da pasta no servidor Linux |
read only | no = leitura e escrita; yes = somente leitura |
browseable | yes = visível ao navegar na rede Windows |
guest ok | yes = 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.
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.
⚠️ 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.
Valide a configuração com testparm antes de iniciar. Esse comando verifica erros de sintaxe no smb.conf sem precisar reiniciar o serviço.
\\192.168.0.1samba / senha SMB🗺️ 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.
| Comando | Função |
|---|---|
testparm -s | Verificar erros no smb.conf |
smbstatus | Ver conexões ativas e arquivos abertos |
pdbedit -L | Listar usuários Samba cadastrados |
smbpasswd -a usuario | Adicionar novo usuário Samba |
smbpasswd -x usuario | Remover usuário do Samba |
smbpasswd usuario | Alterar senha de usuário existente |
⚠️ 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.
Relacione cada elemento do Samba à sua descrição correta.
smb.conf
testparm
smbd
netbios name
smbpasswd
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./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.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.\\IP_DO_SERVIDOR no Explorador de Arquivos. Forneça as credenciais e navegue pelas pastas. Tire screenshot mostrando os compartilhamentos visíveis.smb.conf e o gerenciamento de usuários SMB é essencial para qualquer administrador de redes.
Para que serve o Samba em redes mistas Linux/Windows?
Qual arquivo é o principal arquivo de configuração do Samba?
/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?
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?
valid users = usuario lista quem pode acessar o compartilhamento — use @grupo para grupos inteiros.