Aprenda Linux, 302 (Ambientes Mistos): Serviços de Impressão

Crie e gerencie compartilhamentos de impressão do Samba em um ambiente misto

Na preparação para fazer o exame de certificação LPI-302 do Linux Professional Institute para administradores de sistema, aprenda a configurar impressoras e compartilhá-las entre clientes Linux e Microsoft.

Sean A. Walberg, Senior Network Engineer

Author photoSean Walberg é engenheiro de redes e autor de dois livros sobre rede. Trabalhou em vários segmentos de mercado, como assistência médica e mídia.



06/Set/2011

Sobre esta série

Esta série de artigos ajuda você a saber mais sobre as tarefas de administração de sistemas Linux. Também é possível usar o material desses artigos para se preparar para os exames de certificação do Linux Professional Institute nível 3 (LPIC-3).

Consulte o developerWorks roadmap for LPIC-3 para ver uma descrição de cada artigo da série e um link para cada um desses artigos. O roteiro está em andamento e reflete os objetivos atuais (novembro de 2010) em relação aos exames LPIC-3. À medida que cada artigo é concluído, eles são adicionados ao roteiro.

Visão geral

Neste artigo, aprenda a:

  • Criar e configurar compartilhamento de impressora
  • Configurar a integração entre o Samba e o Common UNIX® Print System (CUPS)
  • Gerenciar drivers de impressora do Windows® e configurar downloads de drivers de impressora
  • Configurar o compartilhamento [print$]
  • Entender as preocupações de segurança com o compartilhamento de impressora
  • Configurar e gerenciar a conta de impressão

Este artigo é útil para preparar o Objetivo 312.3 no Tópico 312 do exame (302) Especialidade do Ambiente Misto do Linux Professional Institute(LPI) O objetivo tem peso 2.

Pré-requisitos

Para aproveitar ao máximo os artigos desta série, é necessário ter um conhecimento avançado de Linux e um sistema Linux funcional, no qual seja possível praticar os comandos mencionados neste artigo. Além disso, é preciso ter acesso a um ambiente Windows que será usado para testar o acesso a arquivos e impressão.


Configurando um Compartilhamento de Impressora

A configuração de um compartilhamento de impressora do Samba é muito parecida com a configuração de um compartilhamento de arquivo. Você define uma seção, configura alguns parâmetros e conecta seus clientes. Como impressão está envolvida, no entanto, há algumas diferenças sutis. A Listagem 1 mostra uma configuração razoavelmente típica dentro do smb.conf.

Listagem 1. Configuração de impressão típica
[global]
  load printers = yes
  printing = sysv
[printers]
  comment = Printers
  path = /var/spool/samba
  writable = no
  printable = yes

Sobre o exame elegível LPI-302

O Linux Professional Institute Certification (LPIC) é como muitas outras certificações, pois também oferece certificações em níveis diferentes, e cada nível requer mais conhecimento e experiência que o anterior. O exame LPI-302 é um exame elegível especial no terceiro nível da hierarquia do LPIC, e requer um nível avançado de conhecimento de administração de sistema Linux.

Para obter a certificação LPIC nível 3 (LPIC-3), é necessário passar nos dois primeiros exames do primeiro nível (101 e 102), nos dois exames do segundo nível (201 e 202) e no exame principal do LPIC-3 (301). Depois de alcançar esse nível, é possível fazer os exames elegíveis especializados, como o LPI-302.

A Listagem 1 não define nenhuma impressora específica. Em vez disso, ela informa ao Samba para carregar a lista de impressoras do sistema, em seguida, define uma seção do modelo denominado [printers]. Lembre-se do artigo anterior que a seção [homes] é usada como um modelo para os diretórios home. A seção [printers] faz a mesma coisa para impressoras.

No nível global, o parâmetro load printers informa ao Samba para procurar impressoras do sistema e configurá-las como compartilhamentos. printing = sysv significa usar o sistema de impressão SysV antigo. É isso o que você fará por agora, mas posteriormente, aprenderá a configurar CUPS mais modernos.

A seção [printers] define como cada compartilhamento de impressora se parecerá. A menos que seja necessário oferecer opções especiais por impressora, por exemplo, restringir usuários, é possível normalmente ficar afastado do modelo. O texto path é para uso do Samba. Quando você imprime para uma impressora do Samba, o smbd coloca o arquivo em spool para o diretório que o parâmetro path especifica antes de enviar a tarefa para o recurso de impressão do sistema. Em seguida, você deve ter certeza de que o compartilhamento não seja writable e que ele seja printable de modo que o Samba possa usá-lo como um compartilhamento de impressora.

Agora, se você procurar o seu servidor, poderá ver a lista de impressoras. Se você tiver o driver de impressora correto instalado no seu cliente Windows, poderá prosseguir para instalar essa impressora e usá-la pela rede.


Integrando Samba e CUPS

Desenvolva sua própria alimentação

É possível desenvolver uma alimentação RSS, Atom ou HTML customizado para receber uma notificação sobre a inclusão de novos artigos ou a atualização do conteúdo. Acesse as alimentações RSS do developerWorks. Selecione Linux como zona e Articles como tipo, e digite Linux Professional Institute como palavra-chave. Em seguida, escolha o tipo preferencial de alimentação.

O CUPS substituiu o sistema de impressão SysV na maioria das distribuições do Linux. O CUPS é mais flexível e amigável para o usuário do que a impressão SysV, e oferece uma camada de compatibilidade que integra de modo transparente com a impressão de legado. Se estiver usando os comandos lp ou lpq, é provável que você passe pelo CUPS.

Um modo que o CUPS melhora a impressão de legado é sua capacidade de pré-processar as tarefas de impressão. Por exemplo, se você enviar um arquivo PDF para uma impressora, o CUPS poderá entender o formato do arquivo, enviar a saída por meio de algo como GhostScript e converter esse arquivo em um idioma que a impressora possa compreender. Antigamente, isso era possível com muito trabalho de hacker, mas agora está tudo sintetizado no CUPS.

A configuração mais simples exigia ativar a impressão CUPS como mostrado na Listagem 2.

Listagem 2. Ativando o suporte CUPS
[global]
printing = cups
printcap = cups

A Listagem 2 funciona no modo global. Primeiro, a impressão é feita por meio das bibliotecas CUPS em vez do lpr. O último comando informa o Samba para buscar sua lista de impressoras do daemon CUPS em vez do arquivo printcap do sistema. Ainda é possível ter um arquivo printcap mesmo se você usar o CUPS, visto que o CUPS mantém esse arquivo de compatibilidade sem nenhum aplicativo do CUPS.

Mesmo com o Samba integrado com o CUPS, você usará as ferramentas CUPS para gerenciar as filas de impressão. Se você não souber seu caminho ao redor do CUPS, esta é uma visão geral dos comandos mais importantes:

  • lp. Envia a saída para a impressora. (Você normalmente canaliza a saída de um comando para este comando, por exemplo, cat /etc/motd | lp.)
  • cupsenable e cupsdisable. Inicia e para as impressoras, respectivamente. (Estes são comandos ideais para reconfigurar uma impressora, também.)
  • cupsreject. Rejeita ou aceita tarefas para uma impressora. (Este comando não altera o status da impressora; em vez disso, ele informa ao CUPS para rejeitar as tarefas recebidas.)
  • lpadmin. Permite a definição de valores de configuração em uma impressora, por exemplo, a designação de cotas.
  • lpq. Mostra as entradas em fila para determinada impressora.
  • lprm. Permite cancelar as tarefas de uma impressora.

Configuração bruta versus inteligente

As impressoras normalmente compreendem uma Page Description Language (PDL) como o Adobe® PostScript® ou Printer Command Language (PCL). Assim, as impressoras podem usar um PDL específico do fornecedor. Ele é a tarefa do driver da impressora do Windows para converter os comandos de impressão do aplicativo na PDL que a impressora fala. Sem o driver da impressora, os comandos que o aplicativo gera serão impressos diretamente como texto, resultando em montões de lixo.

Esse método de ter o processo do cliente do documento em um formato pronto para a impressora é denominado impressão bruta. Nesse modo, o Samba meramente copia os bytes do cliente para a impressora. Essa abordagem tem dois lados:

  • O cliente deve ter driver específico da impressora para imprimir.
  • É difícil para o Samba entender o que a tarefa está fazendo, por exemplo, registrar quantas páginas foram impressas.

A despeito dessas duas dificuldades, a impressão bruta é fácil de configurar. Os drivers da impressora podem ser distribuídos do servidor Samba com algum esforço adicional.


Distribuindo Drivers para Clientes Windows

Fazer com que o Samba distribua drivers de impressora é um assunto complicado. A melhor abordagem é instalar um driver de impressora PostScript universal e usar esse para todas as suas impressoras. O CUPS cuidará da conversão do PostScript do cliente em algo que a impressora entende por meio do seu sistema de impressão inteligente. Você também obterá insight no número de páginas impressas, usando essa abordagem em vez de drivers nativos.

Será necessário fazer download dos drivers do CUPS: o arquivo atual é cups-windows-6.0-1.i386.rpm (consulte Recursos para obter um link). Esse pacote instala os seguintes arquivos em /usr/share/cups/drivers:

  • cups6.inf
  • cups6.ini
  • cupsps6.dll
  • cupsui6.dll

Os drivers do CUPS suportam apenas clientes Microsoft® Windows 2000 e posteriores, o que normalmente está correto, mas o utilitário do Samba usado posteriormente está codificado permanentemente para procurar drivers da Microsoft do legado e falhar se eles não estiverem presentes. Os seguintes arquivos estarão em seu sistema, e também deverão ser copiados para /usr/share/cups/drivers:

  • ps5ui.dll
  • pscript5.dll
  • pscript.hlp
  • pscript.ntf

Esses arquivos estão normalmente no diretório C:\WINDOWS\ServicePackFiles\i386.

Agora que todos os oito arquivos estão do diretório de drivers do CUPS, você criará o compartilhamento print$. Esse compartilhamento está codificado permanentemente nos clientes Windows, e é aí onde os clientes procuram drivers de impressora quando uma impressora é instalada. O compartilhamento da impressora é um compartilhamento fidedignamente padrão, como mostrado na Listagem 3.

Listagem 3. O compartilhamento print$
[print$]
  comment = Printer Driver Export
  path = /etc/samba/drivers
  browseable = yes
  guest ok = no
  read only = yes
  write list = root

A Listagem 3 mostra um compartilhamento simples que é somente leitura para todos, exceto para o usuário raiz. Não se esqueça de reiniciar o Samba para efetivar esse compartilhamento.

Por fim, use o comando cupsaddsmb para instalar os drivers da impressora. Para o compartilhamento Downstairs_Laser, simplesmente excute cupsaddsmb -v Downstairs_Laser. Você receberá um prompt para a senha raiz e a tela mostrará uma série de atividades.

Os clientes podem agora navegar para o servidor Samba e clicar duas vezes na impressora. Eles serão capazes de usar a impressora sem nenhuma etapa extra, por exemplo, a identificação da impressora e a instalação do driver.

Drivers Específicos do Fornecedor

Você deve usar o driver PostScript genérico do CUPS, de modo que o CUPS possa entender o que está sendo impresso. Se decidir distribuir drivers do Windows, o procedimento será similar. Primeiro, você não usa o cupsaddsmb . Você copia os drivers para /etc/samba/drivers por conta própria, mas deve colocar-lhes em um diretório de arquitetura específica (o cupsaddsmb fez isso para você. Por exemplo, W32X86 é usado para drivers de 32 bits.

Use o comando rpcclient para informar ao Samba sobre o driver. É necessário informar o nome dos arquivos de driver de impressora e o nome oficial da impressora. Consulte Recursos para obter um exemplo resolvido.


Contabilidade e Segurança

A contabilidade, quando se trata de impressoras, é realmente sobre controlar e restringir o uso de página por usuário. Segurança faz referência à capacidade de saber quem está usando suas impressoras e limitar o acesso quando necessário. Esse acesso pode ser a capacidade de imprimir para a impressora ou a capacidade de cancelar tarefas de outras pessoas.

Segurança da Impressora

A função do Samba no processo de impressão é obter um arquivo de impressão do cliente, por exemplo, PostScript, e enviá-lo ao CUPS. Qualquer coisa que o Samba faça, como mostrar o status da fila de impressão para um cliente, ele faz por meio do CUPS. O CUPS coloca os arquivos em fila; o CUPS controla a impressora. A tarefa do samba é ser um conduíte entre o CUPS e o cliente.

É possível fazer com que os clientes imprimam diretamente para CUPS usando o Internet Printing Protocol. No entanto, a facilidade de instalação da impressora do Microsoft Network Neighborhood não pode ser subestimada. Lembre-se simplesmente de que quaisquer controles implementados no nível do Samba pode ser potencialmente substituído no nível do CUPS se os clientes se conectarem diretamente ao CUPS.

Considere um compartilhamento de impressora que tenha sido protegido usando valid users = alice, bob para permitir que apenas dois usuários imprimam. Se o usuário mallory tentar imprimir usando o Samba, a solicitação será negada. Se o CUPS não tiver sido configurado com permissões similares, mallory poderá imprimir para a impressora por meio da fila do CUPS.

Uma outra consideração de segurança é o uso de usuários guest. Se for possível autenticar cada usuário que precisa de impressão, assegure que guest ok = no esteja na seção de configuração [printers]; desse modo, apenas os usuários autenticados serão capazes de imprimir. Caso contrário, usuários desconhecidos poderão imprimir nas suas impressoras.

Cotas de Impressão

Como as tarefas de impressão, o CUPS manipula o trabalho de contabilidade, não o Samba. O CUPS leva em consideração o uso de cotas da impressora, que limitam o número de páginas impressas por usuário em um período de tempo. A Listagem 4 mostra como impor uma cota em uma impressora.

Listagem 4. Impondo uma cota em uma impressora
# lpadmin -p Downstairs_Laser -o job-quota-period=604800 -o job-page-limit=100 \
 job-k-limit=50000

A Listagem 4 configura as três opções na impressora. A primeira é o período de cota da tarefa, que é de 604.800 segundos (1 semana). A segunda é o limite de página durante o período da cota: aqui é de 100 páginas. Uma terceira opção limita a quantidade de impressão a 50MB. Este último não é necessário, especialmente porque é um valor difícil de medir, mas fornece opções para pessoas que desejam limitar a impressão de arquivos com gráficos intensos.

Para verificar ou consultar a cota em uma impressora, examine /etc/cups/printers.conf; você verá as opções QuotaPeriod, PageLimite KLimit com os valores incluídos acima. Para remover cotas, configure os valores como 0.

Cada tarefa de impressão faz registros em um arquivo denominado page.log, que pode ser encontrado com frequência em /var/log/cups. Uma linha típica se parece com a Listagem 5.

Listagem 5. Log de contabilidade de página típica
Downstairs_Laser 755 sean [26/Apr/2011:15:02:27 -0500] 1 1 - localhost smbprn.0019.FWqosE

A parte esquerda da linha é mais relevante para a contabilidade da impressora. Os campos , na ordem, são:

  • O nome da impressora
  • O número da tarefa designado à tarefa de impressão
  • O usuário que imprimiu
  • A data no GMT e o deslocamento de fuso horário
  • O número de páginas impressas
  • O número de cópias enviadas

Assim o número de páginas usadas é o número de páginas impressas vezes o número de cópias enviadas. Consulte Recursos para obter uma descrição dos campos remanescentes.

Observação: A maior limitação das cotas do CUPS é que elas se aplicam a todos os usuários.


Progredindo

O próximo objetivo do exame, 312.4, abordará detalhes de como fazer o Samba agir como e em conjunto com controladores de domínio primário e de backup da Microsoft.

Recursos

Aprender

Obter produtos e tecnologias

  • Faça download do driver do Windows CUPS.
  • Obtenha a última versão do Samba de modo que você esteja atualizado com os últimos recursos.
  • Avalie produtos IBM da maneira que for melhor para você: faça download da versão de teste de um produto, avalie um produto on-line, use-o em um ambiente de nuvem ou passe algumas horas na SOA Sandbox aprendendo a implementar Arquitetura Orientada a Serviços de modo eficiente.

Discutir

  • Participe da comunidade My developerWorks. Entre em contato com outros usuários do developerWorks, enquanto explora os blogs, fóruns, grupos e wikis orientados ao desenvolvedor.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux
ArticleID=755893
ArticleTitle=Aprenda Linux, 302 (Ambientes Mistos): Serviços de Impressão
publish-date=09062011