Tempo de leitura: 11 minutos
Sempre houve a necessidade de compartilhar impressoras para Rede Microsoft através do Linux. E para isso usamos o samba.
O que muita gente se perde é no momento de configurar os drivers, e acabam por instalar manualmente. Veremos nesse Post como compartilhar driver Microsoft para impressora configura no Linux.
A primeira coisa a ser feita é a própria instalação do Servidor de Impressão. O samba, seja ele o 3 ou 4, suporta vários servidores de impressão, mas o padrão atual de servidor de impressão é o CUPS (Common Unix Printer System ), mas o samba suporta ainda : SYSV, AIX, HPUX, BSD, QNX, PLP, LPRNG, CUPS.
Estes valores normalmente estão relacionados com o próprio sistema Operacional. Um destes valores deve ser especifica no parâmetro printing, está é a opção padrão já do Samba para sistema Debian e Red Hat.
O servidor Cups deve estar instalado, seu pacote é o Cups, tanto no Red Hat como no Debian, seu arquivo de configuração fica em /etc/cups/cupsd.conf. Normalmente não é necessário fazer nada neste arquivo, mas existem algumas linhas que devem ser alteradas para que você possa configura-lo de qualquer local da rede interna pelo menos. As opções que devem ser alteradas são:
- Listen deve-se alterar para deixar somente a porta 631, que é a porta padrão utilizado pelo Cups.
- <Location …> Existem vários Locations, que são configurações especificas para / (raiz), admin (administração geral), admin/conf. Para todos esses se deve dar permissão de acesso para sua rede em alguns casos e na administração no mínimo para sua máquina, usando a sintaxe Allow IP. Veja abaixo um exemplo:
| Listen 631
<Location /> </Location>
<Location /admin> </Location> |
Com isso já temos o suficiente para poder administrar nossas impressoras. Não se esqueça de reiniciar o serviço do Cups para validar as alterações.
Para qualquer configuração agora, inclusive adicionar impressoras, que acredito ser o caso, basta acessar o endereço https://servidorcups:631, onde o servidor Cups é o endereço IP do Servidor.
Trabalhando com o Samba e Cups
Agora que já estamos com o nosso servidor Cups ok, vamos ver as configurações do samba.
Existem vários opções no samba, para controle de impressão: printing, load printers, lpq command, lprm command, lppause command, print command, entre outros. Para nós os mais importantes são :
- printing Informa qual o sistema usado para impressão, em nosso caso Cups.
- load printers Carrega todas as impressoras configuradas no Cups, o padrão é yes.
- printer admin Usuário que poderá administrar (pausar, apagar) Jobs de impressão.
Todos esses acima já estão configurados, com exceção do printer admin, que é individual, por impressora, normalmente, mas pode ser colocado na área global, de forma que o administrador seja único para todas as impressoras.
O local de impressão poderá continuar o mesmo, sem alteração, como abaixo:
| [printers] comment = All Printers
browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 |
Bom, digamos que configuramos uma impressora, uma HP D 640. Uma impressora simples lógico, mas poderia ser qualquer uma, lembrando que no caso de impressoras onde o Windows não possui drivers, neste momento será necessário a utilização do CD com os drivers, há não ser que a este Cliente Windows já possua drivers instalado para a impressora em questão.
Fica muito mais fácil, fazer uma instalação local primeiramente em um cliente Windows, e depois através do procedimento que irei passar , instalar o drivers no Servidor Samba.
Enfim, vamos à configuração de uma impressora única no servidor. O primeiro passo é instalar a impressora no Cups, pode-se usar o próprio gerenciador WEB, ou simplesmente instalar na linha de comando.
Este comando abaixo , vai instalar uma impressora chama HP640, sem driver, imprimindo na porta LPT1 (lp0).
lpadmin -p hp640 –E -v parallel:/dev/lp0
Obs.: O Cups suporta vários locais de instalação, como USB, print server, Cups, Microsoft, etc. É importante o nome de a impressora ter o mesmo nome do compartilhamento no samba.
Agora que já criamos nossa impressora no Cups, vamos fazer a configuração da mesma. Lembrando novamente, que poderia ser qualquer impressora, e principalmente uma que os Clientes Windows não possuam drivers por padrão.
No samba o processo do compartilhamento é bem simples também, vamos ao nosso arquivo de configuração smb.conf:
| [hp640 ] printable = yes
write list = root browseable = yes path = /var/spool/samba |
No exemplo acima estamos configura a hp640, como um compartilhamento de impressão (printable), onde somente o root poderá escreve nesse compartilhamento, isso é necessário para que o Administrador possa alterar configurações da impressora, diretamente no Windows. É possível delegar esse tipo de permissão quando se fala de PDC samba ou AD samba, através da permissão SePrintOperatorPrivilege (Veja ao final do Post: Curso Samba).
Reiniciando os serviços teremos já nossa impressora pronta para uso, mas os drivers ainda serão instalados localmente, através dos próprios drivers do Windows, ou através de CD de instalação.
Então vamos ao passo seguinte.
Compartilhando Drivers Windows
Por padrão o Windows vai buscar os drivers de impressora na pasta print$ na raiz do servidor, seja ele um Servidor Microsoft, uma estação compartilhando impressora, ou ainda no Samba. Para isso podemos criar um compartilhamento dentro do nosso arquivo de configuração do Samba. Alias, ele já vem por default configurado, mas não pronto de fato para que possamos gravar os drivers diretamente do Windows nesse compartilhamento e depois distribui-los por todos clientes.
Então teremos que alterar a configuração deste, veja abaixo como deverá ficar :
| [print$] comment = Point and Print Printer Drivers
path = /var/lib/samba/printers read only = No write list = root +Admins +Domain Admins |
No exemplo acima a pasta print$ de rede, está localizada em /var/lib/samba/printers (Que não existe por padrão), é permitido gravar desde que seja o root, ou usuários dos grupos Admins e Domains Admins.
Devemos criar as pastas e subpastas necessários para o compartilhamento do drivers. Estás pastas vão estar dentro de /var/lib/samba/printers, e armazenaram drivers por plataforma, como W32X86, x64, WIN40. Obviamente para instalar drivers de todas plataformas ou pelo menos de mais de um, estes drivers devem estar disponíveis no CD de instalação ou na máquina Cliente que irá enviar os drivers para o Servidor.
Então abaixo o comando para criar as pastas necessárias:
mkdir –p /var/lib/samba/ /print/{COLOR,IA64,W32ALPHA,W32MIPS,W32PPC,W32X86,WIN40,x64
Depois de criado está pasta, já podemos ir para o Cliente Microsoft para enviar os drivers. Neste Post estou usando um Windows XP. É interessante logar como Administrador do Linux, no caso o root, e se estivermos falando de PDC ou AD, logar com um usuário do grupo Domain Admins.
Ao acessar a máquina, podemos já ir ao nosso servidor. Acesse o servidor via menu iniciar-> Executar -> \servidor ( No meu caso Servidor2), em seguida acessar a pasta Impressoras e Aparelhos de Fax. Após abrir os compartilhamentos de impressora, vá em Arquivo -> Propriedades do Servidor.
Já com as propriedades abertas, podemos ir direto em Drivers.
Funciona como se fosse adicionar um impressora padrão, ou seja devemos selecionar Adicionar, escolher o modelo, se caso for através do CD de Instalação, escolher Com Disco, e finalizar normalmente. Em meu caso usei o driver local do Windows, ao final da instalação teremos a seguinte imagem:

Podemos ver acima que o driver já está disponível no servidor. Para visualizar os drivers no Samba, tendo em vista que uso um Windows XP 32 Bits, o drivers estarão salvas na pasta adequada:
| ls -l /var/lib/samba/printers/W32X86/3/total 5300
-rwxr–r– 1 root root 26817 Jul 22 2001 AGACCST1.PPD -rwxr–r– 1 root root 20758 Jul 22 2001 HPD640.GPD -rwxr–r– 1 root root 1058816 Mai 15 2007 PCL5ERES.DLL -rwxr–r– 1 root root 728576 Abr 13 2008 PS5UI.DLL -rwxr–r– 1 root root 543232 Abr 13 2008 PSCRIPT5.DLL -rwxr–r– 1 root root 24460 Set 19 2007 PSCRIPT.HLP -rwxr–r– 1 root root 1060548 Mai 15 2007 PSCRIPT.NTF -rwxr–r– 1 root root 14362 Mai 15 2007 STDNAMES.GPD -rwxr–r– 1 root root 698 Mai 15 2007 TTFSUB.GPD -rwxr–r– 1 root root 373248 Abr 13 2008 UNIDRV.DLL -rwxr–r– 1 root root 17410 Set 19 2007 UNIDRV.HLP -rwxr–r– 1 root root 744448 Abr 13 2008 UNIDRVUI.DLL -rwxr–r– 1 root root 761344 Mai 15 2007 UNIRES.DLL |
Mas o processo não finalizou ainda. Lembra que não instalamos nenhum driver no Cups ?!! Então devemos informar ao Samba para usar um dos drivers instalados em determinada impressora.
Para isso vá as propriedade da impressora HP 640 e em Avançado selecione o driver correto para impressora:

Agora sim. Depois de aplicar o processo está finalizado, e qualquer cliente Windows, inclusive o próprio Cliente que usamos, ira trazer os drivers diretamente de nosso servidor Samba.
O processo inicialmente parece complexo, mas a facilidade que ele irá nos trazer posteriormente será muito maior.
Você poderá fazer um teste de impressão, e localiza-lo diretamente na Guia Jobs do Cups Web, ou ainda, executar o comando abaixo :
| tail -f /var/log/cups/page_loghp640 1 root [18/Feb/2013:12:30:39 -0300] 1 1 – ::ffff:192.168.0.106 smbprn.00000001 Página de teste – – |
Existe ainda a possibilidade de controlar permissões, cota entre outros. Mas isso é assunto para outro POST.
Curso Samba
Agora aproveitando o tema, gostaria de informar a todos que em breve estarei lançando o Curso Online na modalidade gravado de Samba.
Este curso irá abordar tanto o samba 3 como Samba 4.
Já está em vias de conclusão, acredito que na mais tardar duas semanas já estarei disponibilizando.
Entre os assuntos abordados , teremos:
- Conhecendo o Samba
- smb.conf
- variáveis
- Valores possíveis
- Compartilhamento (lógico )
- Impressoras
- Modos do Samba 3 ( share, user, server,domain,ADS)
- Membro NT
- Membro AD
- Servidor Wins
- Winbind – Mapeando usuários do AD
- Cliente Linux no AD
- Ferramentas
- Swat
- pdbedit
- smbpasswd
- Comando NET
- Log
- Impressão
- Samba como PDC
- Gerenciando Usuário e Grupos com User Manager
- Gerenciando Usuários e Grupo com o comando net do samba
- Script Logon
- Profile
- Flags ( Desabilitando, troca de senha , tempo de troca, etc)
- Polices
- Privilégios
- Diretivas
- Migrando NT para Samba
- Samba 4
- Instalação e Configuração
- Subindo um Domain Controler
- Ferramentas
- Active Directory User e Computers
- Grupo Polices
- Gerenciando com os comandos net
- Gerenciando com o comando samba-tools
- Adicionando um novo Domains Controler num domínio Windows
- Migrando samba 3 PDC para samba 4 AD
- Distribuições Linux com Samba 4
- Instalação e Configuração
- Gerenciamento de usuários , grupos e Politicas.
- Pelo menos 2 distribuições Livres serão vistas.
Bom pessoal, coloquei os tópicos que acho que são de grande importância, mas foi resumido. Realmente , até eu estou surpreso com a quantidade de informações que este Curso terá.
Além lógico, do foco no desenvolvimento do trabalho, ou seja, para atuar no mercado de trabalho, este curso tem um forte apelo para LPI 302, onde mais de 90% do conteúdo cobrado pelo prova está disponível nesse curso. Acredito que até mais, mas somente saberei ao final do curso.
Serão disponíveis inicialmente 12 vagas, onde as aulas serão gravadas em dois ambientes: Aulas teóricas WizIq e aulas Práticas no próprio Blog. Todo acesso é controlado através do ambiente de aula Moodle em aula.stato.blog.br.
Qualquer dúvida ou reserva enviem um e-mail para [email protected].
Espero que tenham gostado do Post, e até a próxima.
André Stato Filho
Link permanente
Bom dia,
As impressoras da empresa em que trabalho imprimem sem problemas em máquinas Windows, porém, em máquinas Linux estão ocorrendo muitos problemas, chegamos a conclusão que os drivers Linux não estão funcionando direito.
Seria possível através de um servidor de impressão com SAMBA imprimir a partir de máquinas Linux em impressoras instaladas e compartilhadas no Windows ? Sem a necessidade de drivers instalados no Linux?
Link permanente
Bom, se vc tem necessidade de imprimir a partir de uma máquina com Linux, seja ela um Cups server ou um simples cliente, tem que ter driver para Linux. Talvez existam drivers mais novos para sua impressora, ou até o fabricante de repente forneça.
Mas infelizmente é assim, quando for Windows imprimindo usa-se driver windows e para Linux a mesma coisa.