Conteúdo


Aprenda Linux, 302 (Ambientes Mistos)

Serviços de Impressão

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

Comments

Conteúdos da série:

Esse conteúdo é a parte # de # na série: Aprenda Linux, 302 (Ambientes Mistos)

Fique ligado em conteúdos adicionais dessa série.

Esse conteúdo é parte da série:Aprenda Linux, 302 (Ambientes Mistos)

Fique ligado em conteúdos adicionais dessa série.

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

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

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 para download


Temas relacionados

  • A versão da Web da smb.conf man page é mais conveniente do que a versão da linha de comandos.
  • Revise o material de estudo do developerWorks para Tópico 107 para obter uma introdução sobre a impressão de linha de comandos.
  • Capítulo 21 do Samba-HOWTO descreve o suporte de impressão "clássico", que é o que você tinha antes do CUPS estar envolvido. Este site também tem um exemplo resolvido de inclusão de um driver de impressora do Windows.
  • Capítulo 22 do Samba-HOWTO tem informações extras no CUPS e integração do Samba.
  • A seção page_log da documentação do CUPS lista todos os campos dentro do log da página, apenas no caso de haver algo que precisa ser relatado.
  • No site do programa LPIC você encontra objetivos detalhados, listas de tarefas e amostras de perguntas referentes aos três níveis da certificação em administração de sistemas Linux do LPI. Especificamente, veja os objetivos detalhados do LPI-302 e as tarefas e amostras de perguntas.
  • Revise toda a série de preparação para os exames LPI no developerWorks, para saber mais sobre os fundamentos do Linux e se preparar para a certificação de administrador de sistemas, com base nos objetivos do exame LPI anteriores a abril de 2009.
  • Exam Preparation Resources for Revised LPIC Exams fornece uma lista de outros recursos de treinamento para certificação mantidos pelo LPI.
  • 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.
  • Na zona Linux do developerWorks, encontre vários artigos de instruções e tutoriais, bem como downloads, fóruns de discussão e muitos outros recursos para desenvolvedores e administradores Linux.
  • 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.
  • Siga o DeveloperWorks no Twitter, ou inscreva-se em um feed de tweets sobre Linux no developerWorks.

Comentários

Acesse ou registre-se para adicionar e acompanhar os comentários.

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