ApresentaçãoEmbora exista uma infinidade de tutoriais tratando desse assunto, quando precisei fazer o procedimento verifiquei que a maioria deles não funcionou. Diante disso, pesquisando muito, encontrei uma solução satisfatória que permite o compartilhamento de impressora local instalada em máquina com Ubuntu, para outras máquinas clientes, com Ubuntu ou Windows.
O procedimento foi testado com Ubuntu 14.04LTS, compartilhando com Ubuntu 14.04LTS, 12.04LTS, Windows 7, Windows 8.1 e Windows 10.
IntroduçãoUma situação comum. Você é um dos poucos que utiliza Linux e deseja utilizá-lo num escritório, onde todos usam Windows. Dependendo da situação, é cada um na sua, mas quando se precisa compartilhar as poucas impressoras disponíveis com os demais, a situação muda. Nem adianta demonstrar aos demais as vantagens do Ubuntu aos colegas se na hora de compartilhar a impressora a coisa aperta.
Então, como todo bom usuário Ubuntu, você procura tutoriais. A maioria diz que é simples, que basta abrir a configuração das impressoras e configurar o servidor de Impressão para publicar e permitir o acesso
Seria perfeito se fosse tão simples e se essa configuração, pela interface gráfica, funcionasse...
O fato é que para habilitar o compartilhamento de impressora local instalada em máquina como Ubuntu é preciso editar os arquivos de configuração do CUPS (Common Unix Printing System), para permitir que o sistema operacional funcione como um servidor de Impressão.
Configurando o servidor de impressãoPara tanto é preciso saber o endereço IP da máquina que vai compartilhar a Impressora. Rodando o terminal a partir dela:
ifconfig
xluisfernando@ASUS-X550CA:~$ ifconfig
eth0 Encapsulamento do Link: Ethernet Endereço de HW 00:40:F4:25:ED:AD
inet end.: 192.168.0.3 Bcast:192.168.0.255 Masc:255.255.255.0
endereço inet6: fe80::240:f4ff:fe25:edad/64 Escopo:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1
pacotes RX:6912 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:1389 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:1000
RX bytes:1928860 (1.8 MiB) TX bytes:272540 (266.1 KiB)
IRQ:11 Endereço de E/S:0x4000
lo Encapsulamento do Link: Loopback Local
inet end.: 127.0.0.1 Masc:255.0.0.0
endereço inet6: ::1/128 Escopo:Máquina
UP LOOPBACK RUNNING MTU:16436 Métrica:1
pacotes RX:27174 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:27174 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:0
RX bytes:10998642 (10.4 MiB) TX bytes:10998642 (10.4 MiB)
Sabendo o IP, que no exemplo é o 192.168.0.3 numa conexão ethernet, temos a referência alvo para os computadores clientes.
Em seguida, editamos o arquivo /etc/cups/cupsd.conf
sudo gedit /etc/cups/cupsd.conf
É preciso alterar o começo do arquivo e as referência Location, com atenção a linha
Allow From 192.168.0.* que deve ser adequada ao endereço IP. O arquivo completo da configuração modificada é esse:
DefaultCharset notused
LogLevel info
Printcap /var/run/cups/printcap
User cupsys
Group lpadmin
RunAsUser No
Port 631
Include cupsd-browsing.conf
BrowseAddress @LOCAL
SystemGroup lpadmin
<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.*
</Location>
<Location /jobs>
AuthType Basic
AuthClass User
</Location>
<Location /admin>
AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
</Location>
<Policy default>
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
<Limit Create-Job Print-Job Print-URI Validate-Job>
Order deny,allow
</Limit>
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
<Limit CUPS-Authenticate-Job>
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
<Limit All>
Order deny,allow
</Limit>
</Policy>
<Policy authenticated>
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
<Limit Create-Job Print-Job Print-URI Validate-Job>
AuthType Default
Order deny,allow
</Limit>
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
<Limit Cancel-Job CUPS-Authenticate-Job>
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
<Limit All>
Order deny,allow
</Limit>
</Policy>
Após editar e salvar é preciso criar uma Impressora RAW, que será a compartilhada, editando o arquivo /etc/cups/printers.conf
Nessa edição é preciso copiar o conteúdo do arquivo da Impressora local e colá-lo na linha abaixo, alterando somente o nome da impressora para uma referência qualquer. No exemplo, o arquivo ficou assim:
sudo gedit /etc/cups/printers.conf
# Printer configuration file for CUPS v1.5.3
# Written by cupsd
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
##Trecho Original##
<Printer HP-Deskjet-2050-J520-series>
UUID urn:uuid:111bf167-8925-3f42-5e06-76f3f9f17d55
Info HP-Deskjet-2050-J520-series
Location /usr/local/printerSpool
MakeModel HP Deskjet 2050 J520 series, hpcups 3.12.2
DeviceURI hp:/usb/HP-Deskjet-2050-J520-series?serial=BR725GR0D304KV
State Idle
StateTime 1439385310
Type 4
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy retry-job
</Printer>
##Cópia editada##
<Printer HP-Deskjet-2050-J520-Compartilhada>
UUID urn:uuid:111bf167-8925-3f42-5e06-76f3f9f17d55
Info HP-Deskjet-2050-J520-series
Location /usr/local/printerSpool
MakeModel HP Deskjet 2050 J520 series, hpcups 3.12.2
DeviceURI hp:/usb/HP-Deskjet-2050-J520-series?serial=BR725GR0D304KV
State Idle
StateTime 1439385310
Type 4
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy retry-job
</Printer>
Feito isso, é preciso reiniciar o servidor de impressão CUPS
sudo /etc/init.d/cups restart
Configuração nos clientes UbuntuA partir da máquina cliente, abra o utilitário “Impressoras” digitando seu nome no Dash ou acessando o item “Configurações do sistema”
Clique em "Adicionar Impressora"
Clique na opção "Digite a URI"
Preencha o endereço da impressora na rede (IPP), coloando o IP da máquina do servidor / printers/ Impressora. No exemplo ficou assim:
ipp://192.168.0.3/printers/HP-Deskjet-2050-J520-Compartilhada
Escolha o drive adequado Impressora
Configuração nos clientes Windowso método mais fácil de instalar a Impressora compartilhada pelo Ubuntu é localizar a máquina na rede, sem procurar pelo explorer.
Digitando a tecla Super (Logo Windows)+R para acessar executar um comando
Digita-se \\ e o IP do servidor de Impressão. No caso do exemplo:
\\192.168.0.3
Isso fará com que o Windows Explorer abra uma janela com a conexão para a máquina do servidor. Nela, clica-se com o botão direito sobre o ícone da impressora e seleciona-se a opção "Conectar".
Com isso aparece uma caixa de diálogo para confirmação da instalação da Impressora e em seguida a janela para seleção do modelo.
Considerações FinaisNuma rede caseira clássica, com roteador DHCP ou mesmo ADSL, o provedor da Conexão atribui um endereço IP para a conexão externa (algo como 177.95.190.31), mas internamente, o roteador atribui endereços mais fixos, que permanecem até que o roteador seja reiniciado. Assim, no caso de queda de energia, por um tempo suficiente para que o roteador perdesse suas configurações, seria necessário repetir o procedimento.
Referênciashttp://wiki.ubuntu-br.org/Compartilhando_Impressorahttp://www.edivaldobrito.com.br/como-compartilhar-uma-impressora-ubuntu-14-04/