Ubuntu 20.04 Server / Samba / Instalar e criar uma pasta compartilhada

Instale Samba no Ubuntu 20.04 Server e configure compartilhamento, usuários e permissões para ler e gravar pelo Explorador de Arquivos do Windows. O exemplo usa um servidor independente restrito a usuários Samba autenticados de um grupo dedicado, em vez de acesso convidado sem senha.

Conferir o escopo e instalar Samba

O Samba compartilha arquivos Linux com Windows usando SMB (Server Message Block). Aqui criamos um compartilhamento com contas locais, não um controlador ou membro de domínio Active Directory. Não sobrescreva o [global] de um domínio existente com este exemplo.

Você precisa de sudo, espaço e acesso do Windows ao IP privado ou hostname corretamente resolvido. O servidor de exemplo é 192.168.10.20, e a rede permitida, 192.168.10.0/24; adapte-os. O suporte padrão do Ubuntu 20.04 terminou em 2025: confira a manutenção nas informações da Canonical sobre Ubuntu 20.04.

Instale os pacotes e confira a versão. smbclient é a ferramenta cliente para testes. O básico está no guia Ubuntu de servidor de arquivos Samba.

sudo apt update
sudo apt install samba smbclient
smbd --version
systemctl status smbd.service

Em um servidor existente, examine compartilhamentos e usuários antes de copiar /etc/samba/smb.conf. Escolha outro nome se o backup existir. O exemplo pressupõe uma pasta nova vazia, sem alterar recursivamente proprietários ou permissões de dados existentes.

sudo cp -a /etc/samba/smb.conf /etc/samba/smb.conf.before-team-share
sudo testparm -s

Criar usuário, grupo e diretório

  1. Verifique se smbuser e smbteam já existem. Se existirem, examine finalidade e membros antes de reutilizar, ou escolha outros nomes e ajuste todas as referências.
getent passwd smbuser
getent group smbteam
  1. Se ambos não existirem, crie grupo e conta dedicada e registre a senha Samba. A senha solicitada pelo último comando será usada no Windows.
sudo groupadd smbteam
sudo useradd -M -s /usr/sbin/nologin -G smbteam smbuser
sudo smbpasswd -a smbuser

Essa conta de compartilhamento não cria diretório pessoal nem shell de login interativo. Senhas Linux de passwd e credenciais Samba de smbpasswd são separadas. Para uma conta existente, não recrie: acrescente-a com sudo usermod -aG smbteam USERNAME e registre o nome no Samba. Consulte o manual smbpasswd do Ubuntu 20.04.

  1. Crie a nova pasta. O comando define proprietário, grupo e modo; se houver dados no caminho, examine as permissões antes de aplicar.
sudo install -d -o root -g smbteam -m 2770 /srv/samba/team
ls -ld /srv/samba/team
id smbuser

2770 concede leitura, gravação e travessia ao proprietário e grupo, excluindo outros usuários. O 2 inicial é o bit setgid para herança de grupo. Confira o grupo smbteam e a participação de smbuser. Linux e Samba precisam permitir acesso; não resolva com chmod 777.

Configurar compartilhamento autenticado

Abra com sudoedit /etc/samba/smb.conf e acrescente a seção preservando o restante. Se [Team] existir, revise em vez de duplicar. O nome Team é diferente do caminho no disco.

[Team]
    path = /srv/samba/team
    browseable = yes
    read only = no
    guest ok = no
    valid users = @smbteam
    force group = smbteam
    create mask = 0660
    force create mode = 0660
    directory mask = 2770
    force directory mode = 2770

guest ok = no impede convidados; valid users = @smbteam permite membros autenticados do grupo. read only = no libera gravação no Samba sem ignorar o Linux. force group define o grupo das operações.

As máscaras limitam permissões dos novos itens e force mode acrescenta bits de colaboração. O exemplo busca 0660 para arquivos e 2770 para diretórios, sem alterar retroativamente os existentes. ACLs (Access Control Lists, listas de controle de acesso) e outros módulos exigem revisão específica. Consulte o manual smb.conf do Ubuntu 20.04.

Validar, aplicar e conferir o firewall

  1. Verifique a configuração e corrija erros antes de aplicar. O sucesso de testparm significa que ela pode ser carregada, sem garantir autenticação ou operações reais.
sudo testparm -s

Compare [Team], caminho e restrições na saída. O manual testparm também exige teste de funcionamento. Reiniciar pode desconectar compartilhamentos existentes; identifique usuários e programe manutenção.

  1. Após validar, aplique o serviço e confira execução e inicialização automática.
sudo systemctl enable --now smbd.service
sudo systemctl restart smbd.service
systemctl is-active smbd.service
systemctl is-enabled smbd.service
sudo ss -ltnp | grep ':445'
  1. Se o firewall estiver ativo, permita TCP 445 somente da rede interna necessária. Substitua a faixa, defina o escopo e confira conflitos com regras existentes.
sudo ufw status verbose
sudo ufw allow from 192.168.10.0/24 to any port 445 proto tcp

Adicionar uma regra não ativa UFW desabilitado. Não execute ufw enable sem revisar acesso administrativo remoto. Confira roteador e nuvem, sem encaminhar SMB diretamente da Internet. O acesso por endereço não exige abrir todos os antigas portas de descoberta NetBIOS. A sintaxe está no manual UFW.

Teste autenticação e listagem no próprio servidor. Digite a senha no prompt, sem colocá-la no comando. Confira Team e o conteúdo, depois teste Windows separadamente. Veja o manual smbclient.

smbclient -L 127.0.0.1 -U smbuser
smbclient //127.0.0.1/Team -U smbuser -c 'ls'

Conectar pelo Windows e testar arquivos

  1. Abra o Explorador e digite o caminho na barra de endereços. Troque 192.168.10.20 pelo endereço real. O acesso direto pode funcionar mesmo sem o servidor aparecer na lista Rede.
\\192.168.10.20\Team
  1. Informe smbuser e a senha de smbpasswd -a, não a conta Windows ou PIN. Se outra conta for selecionada, escolha usar outra e informe o usuário Samba do servidor.
  2. Crie pasta e arquivo de teste, altere o conteúdo e reabra. Exclua o arquivo de teste e confira se outro usuário permitido consegue modificar os arquivos necessários. Não use dados existentes importantes.

Para mais usuários, prepare contas Linux e credenciais Samba individuais e adicione-os a smbteam. Prefira contas pessoais a uma senha compartilhada. Depois de mudar grupos ou permissões, encerre conexões existentes e teste uma nova sessão SMB.

Para uso frequente, escolha Este Computador → Mapear unidade de rede, uma letra e \\192.168.10.20\Team como pasta. Use outras credenciais quando necessário. Veja os menus por versão no guia Microsoft de unidades de rede.

Restrições de convidados ou assinatura SMB do Windows podem rejeitar antigos compartilhamentos anônimos. Este exemplo usa autenticação, sem instalar SMB1, liberar convidados inseguros ou desativar assinatura como solução. Se a organização restringe NTLM, adapte à política de domínio e servidor. Veja condições de versão e edição na documentação Microsoft de assinatura SMB.

Diagnosticar acesso e remover o compartilhamento

Teste TCP 445 no PowerShell. TcpTestSucceeded como True não valida credenciais nem permissões; como False, confira endereço, rotas, firewall e serviço em escuta. Opções na documentação Test-NetConnection da Microsoft.

Test-NetConnection -ComputerName 192.168.10.20 -Port 445

Se a senha for recusada, confira cadastro Samba, nome e grupo. Se entrar mas não gravar, use namei -l /srv/samba/team, ls -ld /srv/samba/team e id smbuser para examinar travessia e grupo, além da leitura somente no Samba. Veja sudo journalctl -u smbd.service -n 50 --no-pager e /var/log/samba/.

Se Windows insistir em credenciais antigas, examine net use. Feche arquivos, desconecte somente o compartilhamento afetado como abaixo e reconecte. Confira outros compartilhamentos do mesmo servidor e suas entradas no Gerenciador de Credenciais. Não exclua unidades sem relação em massa.

net use \\192.168.10.20\Team /delete

Para interromper, remova ou reverta somente [Team] em smb.conf, valide com testparm -s e reinicie smbd.service na manutenção. Remova apenas a regra UFW correspondente se desnecessária. Confira conexões restantes e preserve dados e contas Linux separadamente.

sudo ufw delete allow from 192.168.10.0/24 to any port 445 proto tcp

Antes de restaurar todo o arquivo, compare mudanças de outros compartilhamentos desde o backup. Para desativar só a conta Samba, use sudo smbpasswd -d smbuser, sem presumir encerramento imediato das sessões. Confira novas conexões recusadas e sessões restantes separadamente.