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.
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 |
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.
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 comocat /etc/motd | lp.)cupsenableycupsdisable. 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.
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.
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.
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.
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.
Aprender
- La versión web de la man page de smb.conf es más conveniente que la versión de línea de comandos.
- Revise el material de estudio de developerWorks para el Tema 107 para obtener una actualización sobre la impresión de línea de comandos.
-
El Capítulo 21 del Samba-HOWTO describe el soporte de impresión "clásico", que es lo que tenía antes de que CUPS se involucrara. Este sitio también tiene un ejemplo resuelto para añadir un controlador de impresora de Windows.
-
El Capítulo 22 del Samba-HOWTO tiene información extra sobre la integración de CUPS y Samba.
- La sección page_log de la documentación de CUPS lista todos los campos dentro del registro de página, sólo en caso de que haya algo más sobre lo que necesite informar.
- En el sitio del Programa de LPIC , encuentre objetivos detallados, listas de tareas y preguntas de muestra para los tres niveles de certificación de administración de sistemas Linux de LPI. En particular, observe los objetivos detallados de LPI-302 y las tareas y preguntas de muestra.
- Revise toda la serie de preparación de exámenes LPI en developerWorks para aprender los fundamentos de Linux y prepararse para la certificación de administrador de sistemas con base en los objetivos del examen LPI anteriores a abril de 2009.
-
Exam Preparation Resources for Revised LPIC Exams proporciona una lista de otros recursos de capacitación de certificación mantenidos por LPI.
- En la zona Linux de developerWorks,
encontrará cientos de artículos "cómo hacer" y tutoriales, así como descargas, foros de discusión, y gran cantidad de otros recursos para desarrolladores y administradores Linux.
- Permanezca actualizado(a) con los Eventos técnicos y webcasts de developerWorks enfocados en una variedad de productos IBM y de temas de la industria TI.
- Asista a una sesión informativa gratuita de developerWorks
en vivo para actualizarse rápidamente sobre productos y herramientas IBM y sobre las tendencias de la industria de TI.
- Vea demostraciones developerWorks on-demand que van desde demostraciones sobre instalación y configuración de productos para principiantes, hasta funcionalidades avanzadas para desarrolladores experimentados.
- Siga a DeveloperWorks en Twitter o suscríbase a un feed de tweets de Linux en developerWorks.
Obtener los productos y tecnologías
- Descargue el controlador de CUPS de Windows.
- Obtenga la versión más reciente de Samba para que esté actualizado con los dispositivos más recientes.
-
Evalúe productos de IBM de la forma que mejor se ajuste a usted: Descargue una prueba de producto, ensaye un producto en línea, use un producto en un entorno en nube, o pase algunas horas en el
SOA Sandbox aprendiendo a implementar la Arquitectura Orientada a Servicios con eficiencia.
Comentar
- Participe en la Comunidad My developerWorks.
Conéctese con otros usuarios developerWorks mientras explora los blogs, foros, grupos y wikis dirigidos a desarrolladores.
