Aprenda Linux, 302 (Entornos mixtos): Servicios de impresión

Cree y gestione intercambios de impresión de Samba en un entorno mixto

En preparación para tomar el examen de certificación LPI-302 de Linux Professional Institute para administradores de sistemas, aprenda cómo configurar impresoras y compartirlas entre clientes de Linux y Microsoft.

Sean A. Walberg, Senior Network Engineer

Author photoSean Walberg es un ingeniero en redes y el autor de dos libros sobre las redes. Ha trabajado en varias industrias, incluyendo el cuidado de la salud y los medios de comunicación.



09-04-2012

Sobre esta serie

Esta serie de artículos le ayuda a aprender las tareas de administración de sistemas Linux. También puede usar el material en estos artículos para prepararse para los exámenes de Linux Professional Institute Certification nivel 3 (LPIC-3).

Vea nuestro roadmap de developerWorks para LPIC-3 para obtener una descripción y un enlace de cada artículo en esta serie. El roadmap está en progreso y refleja los objetivos actuales (noviembre de 2010) para los exámenes de LPIC-3. A medida que cada artículo es completado, es añadido al roadmap.

Visión General

En este artículo, aprenda a:

  • Crear y configurar el intercambio de impresoras
  • Configurar la integración entre Samba y Common UNIX® Print System (CUPS)
  • Gestionar controladores de impresión de Windows® y configurar descargas de controladores de impresión
  • Configurar el intercambio [print$]
  • Entender las preocupaciones de seguridad con el intercambio de impresoras
  • Configurar y gestionar la contabilidad de impresión

Este artículo le ayuda a prepararse para el Objetivo 312.3 en el Tema 312 del examen de Especialidad en Entorno Mixto de Linux Professional Institute (302). El objetivo tiene un peso de 2.

Requisitos Previos

Para obtener el máximo de los artículos en esta serie, debe tener un conocimiento avanzado de Linux y un sistema Linux funcional en el cual pueda practicar los comandos cubiertos en este artículo. Además, debe tener acceso a un entorno de Windows que pueda usar para probar el acceso al archivo y de impresión.


Configurando un intercambio de impresora

Configurar un intercambio de impresora de Samba es muy parecido a configurar un intercambio de archivo. Usted define una sección, establece algunos parámetros y conecta sus clientes. Sin embargo, debido a que la impresión está involucrada, existen algunas diferencias sutiles. El Listado 1 muestra una configuración bastante típica dentro de smb.conf.

Listado 1. Configuración de impresión típica
[global]
  load printers = yes
  printing = sysv
[printers]
  comment = Printers
  path = /var/spool/samba
  writable = no
  printable = yes

Sobre el examen optativo LPI-302

Linux Professional Institute Certification (LPIC) es como muchas otras certificaciones en las que se ofrecen distintos niveles, con cada nivel requiriendo más conocimiento y experiencia que el anterior. El examen LPI-302 es un examen de especialidad optativo en el tercer nivel de la jerarquía de LPIC y requiere un nivel avanzado de conocimiento de administración del sistema Linux.

Para obtener su certificación de LPIC nivel 3 (LPIC-3), debe pasar los dos exámenes de primer nivel (101 y 102), los dos exámenes de segundo nivel (201 y 202) y el examen principal de LPIC-3 (301). Después de que haya obtenido este nivel, puede tomar los exámenes de especialidad optativos, tales como LPI-302.

El Listado 1 no define ninguna impresora específica. En su lugar, le dice a Samba que cargue la lista de impresoras del sistema, después define una sección de plantilla llamada [printers]. Recuerde del artículo anterior que la sección [homes] es usada como una plantilla para directorios de inicio. La sección [printers] hace lo mismo por las impresoras.

A nivel global, el parámetro load printers le dice a Samba que busque impresoras del sistema y las configure como intercambios. printing = sysv significa usar el sistema de impresión de SysV anterior. Esto servirá por ahora, pero después aprenderá cómo configurar CUPS más modernos.

La sección [printers] define cómo se verá cada intercambio de impresora. A menos que necesite ofrecer opciones especiales por impresora, como restringir usuarios, normalmente usar la plantilla será suficiente. La ruta es para el uso de Samba. Cuando imprime en una impresora de Samba, smbd hace spool del archivo hacia el directorio que el parámetro path especifica antes de enviar el trabajo al recurso de impresión del sistema. Después, debe asegurarse de que el intercambio no es escribible y que es imprimible de forma que Samba pueda usarlo como intercambio de impresora.

Ahora, si navega hacia su servidor, puede ver la lista de impresoras. si tiene el controlador de impresora correcto instalado en su cliente de Windows, puede proceder con la instalación de esa impresora y usarla en la red.


Integrando Samba y CUPS

Construya su propio feed

Puede construir un feed personalizado de RSS, Atom o HTML, de forma que sea notificado a medida que añadimos nuevos artículos o actualizamos el contenido. Vaya a los feeds RSS de developerWorks. Seleccione Linux para la zona y Articles para el tipo, y escriba Linux Professional Institute para las palabras clave. Después, elija su tipo de feed preferido.

CUPS ha sustituido el sistema de impresión de SysV en la mayoría de las distribuciones de Linux. CUPS es más flexible y fácil de usar que la impresión de SysV y ofrece una capa de compatibilidad que se integra perfectamente con la impresión de legado. Si está usando los comandos lp o lpq , probablemente está usando CUPS.

Una forma en la que CUPS mejora la impresión de legado es su habilidad para pre-procesar trabajos de impresión. Por ejemplo, si envía un archivo PDF a una impresora, CUPS puede entender el formato del archivo, enviar la salida mediante algo como GhostScript y traducir el archivo en un lenguaje que la impresora pueda entender. Esto fue posible con muchos ataques de piratas informáticos en los viejos tiempos, pero todo eso ha sido considerado en CUPS.

La configuración más simple requerida para habilitar la impresión de CUPS es mostrada en el Listado 2.

Listado 2. Habilitando el soporte de CUPS
[global]
printing = cups
printcap = cups

El Listado 2 funciona en modo global. Primero, imprimir es realizado mediante las bibliotecas de CUPS en lugar de lpr. El último comando le dice a Samba que capte su lista de impresoras del daemon de CUPS en lugar de del archivo de printcap del sistema. Tal vez aún tenga un archivo de printcap aún si usa CUPS, ya que CUPS mantiene este archivo para compatibilidad con aplicaciones que no son de CUPS.

Aún con Samba integrado con CUPS, usted aún usa herramientas de CUPS para gestionar las colas de impresión. Si no está familiarizado con CUPS, esta es una visión general de los comandos más importantes:

  • lp. Envía la salida a la impresora. (Usted normalmente conduce la salida de un comando a este comando, tal como cat /etc/motd | lp.)
  • cupsenable y cupsdisable. Inicia y detiene las impresoras, respectivamente. (Estos son buenos comandos también para restablecer una impresora.)
  • cupsreject. Rechaza o acepta trabajos para una impresora. (Este comando no cambia el estado de la impresora; en su lugar, le dice a CUPS que rechace los trabajos entrantes.)
  • lpadmin. Le permite establecer valores de configuración en una impresora, tales como asignar cuotas.
  • lpq. Muestra las entradas en cola para una impresora dada.
  • lprm. Le permite cancelar trabajos de una impresora.

Configuración en bruto vs configuración inteligente

Las impresoras generalmente entienden un Lenguaje de Descripción de Página (PDL), tal como Adobe® PostScript® o Printer Command Language (PCL). Algunas impresoras pueden usar un PDL de proveedor específico. Es responsabilidad del controlador de impresora de Windows traducir los comandos de impresión de la aplicación en el PDL que habla la impresora. Sin el controlador de la impresora, los comandos que la aplicación genera se imprimirán directamente como texto, resultando en resmas o basura.

Este método de hacer que el cliente procese el documento en un formato listo para la impresora es llamado impresión en bruto. En este modo, Samba simplemente copia los bytes del cliente a la impresora. Este enfoque tiene dos desventajas:

  • El cliente debe tener el controlador específico de la impresora para poder imprimir.
  • Es difícil para Samba entender lo que el trabajo está haciendo, como registrar cuántas páginas fueron impresas.

A pesar de estas dos desventajas, la impresión en bruto es fácil de configurar. Los controladores de impresora pueden ser distribuidos desde el servidor de Samba con un poco de esfuerzo adicional.


Distribuyendo controladores a los clientes de Windows

Hacer que Samba distribuya sus controladores de impresora es una tarea complicada. El mejor enfoque es instalar un controlador de impresora de PostScript universal y usarlo para todas sus impresoras. CUPS se encargará de convertir el PostScript del cliente en algo que la impresora entienda mediante su sistema de impresión inteligente. También ganará conocimientos sobre el número de páginas impresas al usar este enfoque en lugar de controladores nativos.

Necesitará descargar los controladores de CUPS: el archivo actual es cups-windows-6.0-1.i386.rpm (vea Recursos para obtener un enlace). Este paquete instala los siguientes archivos en /usr/share/cups/drivers:

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

Los controladores de CUPS sólo soportan Microsoft® Windows 2000 y clientes posteriores, lo que normalmente está bien, pero la utilidad de Samba usada más tarde está codificada para buscar los controladores de Microsoft de legado y falla si no están presentes. Los siguientes archivos estarán en su sistema y también deben ser copiados en /usr/share/cups/drivers:

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

Estos archivos están normalmente en su directorio C:\WINDOWS\ServicePackFiles\i386.

Ahora que los ocho archivos están en su directorio de controladores de CUPS, usted crea el intercambio print$. Este intercambio está codificado en clientes de Windows y es aquí donde los clientes buscan los controladores de impresora cuando una impresora es instalada. El intercambio de impresora se puede considerar un intercambio estándar, como se muestra en el Listado 3.

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

El Listado 3 muestra un intercambio simple que es de sólo lectura para todos excepto para el usuario de raíz. No olvide reiniciar Samba para que este intercambio tenga efecto.

Finalmente, use el comando cupsaddsmb para instalar los controladores de impresora. Para el intercambio Downstairs_Laser, simplemente ejecute cupsaddsmb -v Downstairs_Laser. Se le solicitará su contraseña de raíz y después su pantalla mostrará actividad intensa.

Los clientes ahora pueden navegar hacia su servidor de Samba y hacer doble clic en la impresora. Podrán usar la impresora sin ninguna etapa adicional, tal como la identificación de impresora y la instalación del controlador.

Controladores específicos del proveedor

Debe usar el controlador genérico de PostScript de CUPS, de forma que CUPS pueda entender lo que se está imprimiendo. Si decide distribuir controladores de Windows, el procedimiento es similar. Primero, no use el comando cupsaddsmb . Copie los controladores a /etc/samba/drivers usted mismo, pero también póngalos en un directorio de arquitectura específica (cupsaddsmb hizo esto para usted). Por ejemplo, W32X86 es usado para controladores de 32-bits.

Use el comando rpcclient para decirle a Samba sobre el controlador. Debe pasar el nombre de los archivos del controlador de la impresora y el nombre oficial de la impresora. Consulte Recursos para obtener un ejemplo resuelto.


Contabilidad y seguridad

La contabilidad, cuando se habla de impresoras, se trata realmente de realizar el seguimiento y de la restricción del uso de páginas por usuario. La seguridad se refiere a la habilidad de saber quién está usando sus impresoras y limitar el acceso cuando sea necesario. Este acceso puede ser la habilidad de imprimir en la impresora o la habilidad de cancelar los trabajos de otras personas.

Seguridad de la impresora

El rol de Samba en el proceso de impresión es tomar el archivo de impresión de un cliente, tal como PostScript, y enviarlo a CUPS. Todo lo que Samba hace, tal como mostrar el estado de la fila de impresión a un cliente, lo hace a través de CUPS. CUPS hace una cola de los archivos; CUPS controla la impresora. El trabajo de Samba es ser un conducto entre CUPS y el cliente.

Es posible hacer que los clientes impriman directamente en CUPS usando el Protocolo de Impresión de Internet. Sin embargo, la facilidad de la instalación de impresoras de Microsoft Network Neighborhood no debe ser subestimada. Sólo recuerde que cualquier control que implemente al nivel de Samba puede sufrir potencialmente una alteración temporal al nivel de CUPS si los clientes se conectan directamente a CUPS.

Considere un intercambio de impresora que ha sido protegido usando valid users = alice, bob para permitir que sólo dos usuarios impriman. Si el usuario mallory intenta imprimir mediante Samba, la solicitud será denegada. Si CUPS no fue configurado con permisos similares, mallory puede imprimir en la impresora mediante la fila de CUPS.

Otra consideración de seguridad es el uso de usuarios invitados. Si puede autenticar todos los usuarios que necesiten imprimir, asegúrese de que guest ok = no esté en su sección de configuración [printers] ; así, sólo los usuarios autenticados podrán imprimir. De otra manera, usuarios desconocidos pueden imprimir en sus impresoras.

Cuotas de impresión

Igual que en los trabajos de impresión, CUPS maneja el trabajo de contabilidad, no Samba. CUPS permite el uso de las cuotas de impresora, las cuales limitan el número de páginas impresas por usuario para un periodo de tiempo. El Listado 4 muestra cómo imponer una cuota en una impresora.

Listado 4. Imponiendo una cuota en una impresora
# lpadmin -p Downstairs_Laser -o job-quota-period=604800 -o job-page-limit=100 \
 job-k-limit=50000

El Listado 4 establece tres opciones en la impresora. La primera es el periodo de la cuota de trabajo, que es de 604.800 segundos (1 semana). La segunda es el límite de páginas durante el periodo de esa cuota: aquí, es de 100 páginas. Una tercera opción limita la cantidad de impresión a 50MB. La última no es requerida, especialmente porque es un valor difícil de medir, pero sí proporciona opciones para personas que desean limitar la impresión de archivos que hagan uso intensivo de gráficos.

Para verificar la cuota en una impresora, busque en /etc/cups/printers.conf; verá las opciones QuotaPeriod, PageLimit y KLimit con los valores que añadió anteriormente. Para eliminar las cuotas, establezca los valores en 0.

Cada trabajo de impresión se registra en un archivo llamado page.log, el cual es frecuentemente encontrado en /var/log/cups. Una línea típica se ve como en el Listado 5.

Listado 5. Un registro típico de contabilidad de página
Downstairs_Laser 755 sean [26/Apr/2011:15:02:27 -0500] 1 1 - localhost smbprn.0019.FWqosE

La parte izquierda de la línea es la más relevante para la contabilidad de impresión. Los campos, en orden, son:

  • El nombre de la impresora
  • El número de trabajo asignado al trabajo de impresión
  • El usuario que imprimió
  • La fecha en GMT y el desplazamiento de zona horaria
  • El número de páginas impresas
  • El número de copias enviadas

Así, el número de páginas usadas es el número de páginas impresas por el número de copias enviadas. Consulte Recursos para obtener una descripción de los campos restantes.

Nota: la limitación más grande de las cuotas de CUPS es que se aplican a todos los usuarios.


Avanzando

El siguiente objetivo de examen, 312.4, profundizará en los detalles de hacer que Samba actúe como y con controladores de dominio principales y de copia de seguridad de Microsoft.

Recursos

Aprender

Obtener los productos y tecnologías

Comentar

  • Participe en la Comunidad My developerWorks. Conéctese con otros usuarios developerWorks mientras explora los blogs, foros, grupos y wikis dirigidos a desarrolladores.

Comentarios

developerWorks: Ingrese

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


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

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

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Linux
ArticleID=808755
ArticleTitle=Aprenda Linux, 302 (Entornos mixtos): Servicios de impresión
publish-date=04092012