Acabou de instalar uma ou mais impressoras no ubuntu e precisa compartilha-las com outros computadores ?
Essa é uma necessidade constante de pequenos escritórios, laboratórios de informática ou até mesmo em redes domésticas para permitir que vários computadores utilizem a mesma impressora.
Neste artigo, você vai aprender como compartilhar impressoras com samba no ubuntu disponibilizando-a(s) através da rede.
Se seu objetivo é acessar a partir de clientes windows impressoras disponíveis no ubuntu linux, este guia vai ajudar bastante.
Pré-requisitos
Antes de prosseguir é necessário ter:
- Ubuntu LTS versão 24.04 ou 26.04 instalado no computador.
- Conexão com a internet.
- Impressora instalada no ubuntu.
- Acesso a conta de usuário root ou o comando sudo configurado para executar os comandos do artigo.
Com todos esses pré-requisitos você já pode colocar em prática o conhecimento técnico para compartilhar impressoras com samba no ubuntu.
Instalando o samba no ubuntu
Antes de configurar qualquer compartilhamento, o primeiro passo é instalar o samba no sistema a partir dos repositórios oficiais do ubuntu.
A instalação é feita executando os comandos:
apt update
apt install install samba smbclient -yApós instalar o samba, configure o sistema para iniciar o daemon smbd e habilitar sua inicialização durante o boot.
systemctl enable --now smb.serviceA opção --now do comando systemctl inicia a unit (smb.service) imediatamente.
INFORMAÇÃO
Somente a unit smb.service é iniciada porque ela controla a inicialização do daemon smbd que é responsável pelo gerenciamento dos compartilhamentos e autenticação.
Configurando firewall para autorizar acesso ao samba
Essa etapa somente é necessária se o serviço (ufw) de firewall do ubuntu estiver ativo. Para checar se está ativo ou não, execute:
ufw statusSe a saída for “Estado: inativo”, o serviço está inativo e você não precisa executar os comandos a seguir.
Mas se a saída for “Estado: ativo”, adicione uma regra para autorizar o acesso as impressoras compartilhadas no ubuntu.
ufw allow sambaPara verificar se a regra foi adicionada execute o comando:
ufw status
Adicionar usuário ao samba
Para os clientes acessarem aos compartilhamentos de impressoras do samba é necessário adicionar uma conta de usuário no samba que será usada para autenticação a partir do cliente.
Primeiro cadastre no linux o usuário, com o mesmo nome que será utilizado no samba, no exemplo do tutorial, o nome do usuário é dlncloud:
useradd -s /bin/false -M -c “user service samba” dlncloudA opção -s define que o shell do usuário é /bin/false, a opção -M faz com que o diretório home não seja criado, como o usuário vai ser usado apenas para acessar o compartilhamento a partir de um cliente, então não precisa de shell e nem pasta pessoal.
Com o usuário cadastrado no sistema, adicione a mesma conta ao samba usando o comando smbpasswd com a opção -a.
smbpasswd -a dlncloudO programa smbpasswd solicita a senha que o usuário do samba vai usar para se autenticar, digite a senha e confirme quando requerido.
Compartilhando impressoras com samba no ubuntu
Uma configuração bastante utilizada em desktops linux é compartilhar todas as impressoras instaladas no sistema para acesso pela rede para que outros computadores utilizem.
Para configurar os compartilhamentos é necessário editar o arquivo “/etc/samba/smb.conf” do samba. Mas antes faça o backup do mesmo.
mv /etc/samba/smb.conf /etc/samba/smb.conf.bkpCrie um novo arquivo de configuração do Samba:
nano /etc/samba/smb.confDentro do arquivo, inclua as seguintes configurações:
[global]
workgroup = COMPUTERS
security = user
printing = cups
load printers = yes
Explicação de cada parâmetro:
[global] → Seção global, recebe todas as configurações aplicadas ao samba e a todos os compartilhamentos. Qualquer seção abaixo é um compartilhamento, [printers] por exemplo é um compartilhamento.
workgroup → Recebe como valor o nome do grupo de trabalho, mas em ambientes do active directory é o nome netbios do domínio.
security → Nível de segurança, define como o samba vai autenticar os usuários conectados aos seus serviços, incluindo os compartilhamentos. O valor user, faz o samba tentar autenticar usando o banco de dados do próprio samba.
printing = cups → define o sistema de impressão que o samba vai se comunicar para obter a lista de impressoras que serão compartilhadas. No exemplo é o CUPS.
load printers = yes → carrega automaticamente as impressoras instaladas no linux.
Agora adicione a seção responsável pelo compartilhamento das impressoras:
[printers]
comment = Todas as Impressoras
path = /var/tmp
printable = yes![Compartilhar Impressoras com Samba no Ubuntu configuração do compartilhamento [printers] para compartilhar impressoras com samba no ubuntu](https://dlncloud.com.br/wp-content/uploads/2026/07/Compartilhar-impressoras-com-samba-no-ubuntu-configuracao-do-compartilhamentos-printers.webp)
Explicação dos parâmetros:
[printers] → Seção especial usada para compartilhar todas as impressoras instaladas no linux.
comment → É usado para adicionar um comentário que descreve o compartilhamento.
path → Diretório que será compartilhado, no exemplo, é o diretório que irá armazenar os trabalhos de impressão antes de ser enviado para a impressora.
printable → Define que o compartilhamento é uma impressora.
Para aprender mais sobre cada parâmetro é altamente recomendado a leitura do manual do arquivo smb.conf.
Salve as alterações e execute o comando a seguir para o daemon smbd relê o arquivo “/etc/samba/smb.conf” e aplicar as configurações:
systemctl restart smbd.serviceA partir desse momento, qualquer impressora instalada no sistema será disponibilizada via Samba pela rede de computadores para outros computadores.
Problema: Windows não lista as impressoras compartilhadas
Ao compartilhar impressoras com samba no ubuntu através do compartilhamento “[printers]” você pode se deparar com o seguinte problema: As impressoras não são exibidas ao acessar o servidor através de clientes windows.

O samba tem um arquivo de banco de dados chamado “printer_list.tdb”, ele armazena em cache informações das impressoras compartilhadas pelo samba.
Nas versões atuais do samba, o problema ocorre por que ao se conectar ao smbd a partir do windows ou um programa cliente, como o “smbclient” (do linux), não gerado um fluxo de comunicação RPC para consultar o CUPS e atualizar printer_list.tdb.
Ao invés disso, é feita uma consulta ao estado atual do cache (vazio), logo não tem impressoras a serem exibidas pelo samba, mesmo estando instaladas no sistema.
Ao executar o comando “ rpcclient -U “” -N localhost -c “enumprinters” ” para enumerar impressoras, por exemplo, é gerado uma comunicação via RPC, assim:
- O daemon smbd inicia processos (samba-dcerpcd e samba-bgqd).
- samba-bgqd se comunica com cups.
- Enumera as impressoras.
- Gera ou atualiza o printers_list.tdb.
Tudo isso acontece em segundo plano, e após a conclusão desse processo, as consultas subsequentes passam a retornar as impressoras corretamente. Mas não é viável fazer isso manualmente concorda ?
A solução
Se o samba não inicia “samba-bgqd” quando um cliente (windows ou smbclient) se conecta, então vamos fazer isso e deixa-lo em execução.
1. Crie o seguinte arquivo “/etc/systemd/system/samba-printer.service”:
nano /etc/systemd/system/samba-printer.serviceE adicione a seguinte configuração:
[Unit]
Description=helper program performing asynchronous printing-related jobs.
Documentation=man:samba-bgqd(8)
After=smbd.service
[Service]
Type=simple
ExecStart=/usr/libexec/samba/samba-bgqd --foreground
ExecStop=/bin/kill -TERM $MAINPID
Restart=on-failure
RestartSec=5s
StandardOutput=journal
StandardError=journal
KillMode=process
TimeoutStopSec=20
[Install]
WantedBy=multi-user.target2. Salve as alterações e execute o comando a seguir para o systemd relê o arquivo que foi criado:
systemctl daemon-reload3. Habilite para iniciar durante o boot e startar a unit para samba-bgqd ficar em execução:
systemctl enable --now samba-printer.serviceE a última etapa é alterar a configuração do samba para que o cache (printer_list.tdb) não demorar tanto para ser atualizado.
Edite o arquivo “/etc/samba/smb.conf”:
nano /etc/samba/smb.confE adicione na seção “[global]” a seguinte configuração:
printcap cache time = 60Salve alterações e reinicie a unit smbd.service:
systemctl restart smbd.serviceO parâmetro printcap cache time recebe como valor um número em segundos que o samba vai esperar antes do subsistema de impressão (cups) ser consultado novamente.
Na prática quer dizer o seguinte: O samba vai esperar 60 segundos, após esse tempo o sistema de impressão (CUPS) é consultado para obter a lista de impressoras instaladas no sistema e em seguida o arquivo printer_list.tdb é atualizado.
Agora que o printer_list.tdb atualiza a cada 1 minuto, o windows vai receber a lista de impressoras do cache. Teste a conexão com o samba, o resultado esperado é mostrar todas as impressoras compartilhadas.

E lembre-se, após instalar ou remover impressoras do sistema, vai demorar 1 minuto para a lista aparecer atualizada para o cliente.
Para instalar uma das impressoras no windows, usando um usuário com permissão administrativa, dê dois cliques com o botão esquerdo do mouse na impressora e instale o driver.
Compartilhar somente uma impressora no ubuntu
Em algumas situações, em vez de compartilhar todas as impressoras configuradas no sistema você pode querer compartilhar somente uma impressora.
Para essa tarefa, primeiro é necessário saber o nome da impressora que será compartilhada. Verifique quais impressoras estão instaladas localmente utilizando o comando:
lpstat -p
No exemplo do artigo, a impressora “HP-laserjet-5000” será compartilhada. Edite o arquivo de configuração do samba:
nano /etc/samba/smb.confAltere na seção “[global]” o valor do parâmetro “load printers” para “no”:
load printers = noO valor “no” para o parâmetro “load printers” informa ao samba que não é para disponibilizar automaticamente todas as impressoras conectadas ao ubuntu.
Em seguida, crie uma nova seção, que deve ter o mesmo nome da impressora como aparece no sistema. No exemplo do artigo, é a impressora “HP-Laserjet-5000”, então a seção (compartilhamento) vai se chamar “[HP-Laserjet-5000]”.
[HP-Laserjet-5000]
path = /var/tmp
printable = yes
Após incluir essa configuração salve as alterações e reinicie o daemon smbd para aplicar as configurações.
systemctl restart smbd.serviceTestando acesso a partir do cliente windows
Após concluir a configuração para compartilhar impressoras com samba no ubuntu, você pode testar a conexão a partir de um cliente windows.
Utilize uma conta de usuário com permissão administrativa no windows, em seguida acesse o compartilhamento: abra o gerenciador de arquivos do windows, e digite na barra de endereço:
\\IP_do_desktop_ubuntu.
No exemplo do tutorial, o IP da máquina com ubuntu é 192.168.213.194, então o endereço completo é: \\192.168.213.194.

O resultado esperado é aparecer a(s) impressora(s) compartilhada(s) no ubuntu. A última configuração feita somente a impressora “HP-Laserjet-5000” estava compartilhada, então somente ela apareceu.
Para instalar a impressora no windows, utilizando um usuário com privilégios, dê dois cliques com o botão esquerdo do mouse na impressora que será instalada e instale seu driver.
Conclusão
Ao longo deste artigo você aprendeu a instalar o Samba, compartilhar impressoras com samba no ubuntu e também realizar o processo de compartilhar impressora no ubuntu individualmente para cenários mais específicos.
Também foi ensinado a configurar o serviço de firewall ufw do ubuntu para autorizar somente acessos aos compartilhamentos do samba.
E para se aprofundar mais vale a pena conhecer o nosso guia completo de estudos sobre o Servidor Samba para que conheça outras funções do samba e saiba implementa-las.
Se este guia ajudou você a configurar seu ambiente, deixe seu comentário abaixo com dúvidas, sugestões ou até mesmo compartilhe sua experiência para ajudar outras pessoas.

