Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > sysadmin > Anotaciones sobre cups

Anotaciones sobre cups

CUPS es el sistema de impresión moderno empleado en sistemas GNU/Linux.

Problemas

cupsdoprint ... client-error-not-authorized

Fragmento del registro de CUPS donde aparece dicho error:

D [ ... ] cupsdAcceptClient: 12 from 192.168.0.1:631 (IPv4)
D [ ... ] cupsdReadClient: 12 GET /printers/hp2100.ppd HTTP/1.1
D [ ... ] cupsdAuthorize: No authentication data provided.
D [ ... ] cupsdCloseClient: 12
D [ ... ] cupsdAcceptClient: 12 from 192.168.0.1:631 (IPv4)
D [ ... ] cupsdReadClient: 12 POST /printers/hp2100 HTTP/1.1
D [ ... ] cupsdAuthorize: No authentication data provided.
D [ ... ] Print-Job ipp://localhost/printers/hp2100
D [ ... ] [Job ???] Auto-typing file...
I [ ... ] [Job ???] Request file type is application/postscript.
D [ ... ] Print-Job client-error-not-authorized: La impresora o clase no está compartida.
D [ ... ] cupsdProcessIPPRequest: 12 status_code=403 (client-error-not-autorized)
D [ ... ] cupsdCloseClient: 12

Y nos fijamos en el que el error es efectivamente client-error-not-authorized, pero no habíamos visto el resto del mensaje, traducido además al idioma local del sistema: impresora ... no está compartida.

Fragmento del mismo registro con una impresión satisfactoria en una impresora conectada de la misma forma al servidor:

D [ ... ] [29/Dec/2009:10:45:45 +0100] cupsdAcceptClient: 12 from 192.168.0.1:631 (IPv4)
D [ ... ] [29/Dec/2009:10:45:45 +0100] cupsdReadClient: 12 POST /printers/hpk5400 HTTP/1.1
D [ ... ] [29/Dec/2009:10:45:45 +0100] cupsdAuthorize: No authentication data provided.
D [ ... ] [29/Dec/2009:10:45:46 +0100] cupsdAcceptClient: 14 from 192.168.0.1:631 (IPv4)
D [ ... ] [29/Dec/2009:10:45:46 +0100] Print-Job ipp://localhost/printers/hpk5400
D [ ... ] [29/Dec/2009:10:45:46 +0100] [Job ???] Auto-typing file...
I [ ... ] [Job ???] Request file type is application/postscript.
D [ ... ] [29/Dec/2009:10:45:46 +0100] [Job 147166] Loading attributes...
...
... multitud de líneas más y un trabajo impreso :-)
...

Ahora vamos a ver dónde está la diferencia en la configuración de las dos impresoras revisando el archivo /etc/cups/printers.conf ya que así evitamos malas interpretaciones en capas superiores.

Las entradas para ambas impresoras muestras discrepancias en los campos Info, DeviceURI, StateTime y Shared. Los tres primeros son obvios puesto que son máquinas diferentes pero el último es el definitivo: en la impresora hpk5400 (y en todas las otras impresoras del servidor) el valor es Yes mientras que para la hp2100 el valor es No.

La documentación indica que el atributo shared significa que el servidor no anunciará a la red la existencia de dicha impresora ó clase de impresoras. Y bueno, vale, hasta ahí bien, pero ¿ por qué rechaza la impresión ? No se dice nada sobre impedir la impresión, sólo sobre anunciar la cola de impresión en red.

En cualquier caso para cambiar dicho valor sin reiniciar el servidor podemos emplear lo siguiente desde un terminal con acceso:

# /usr/sbin/lpadmin -P hp2100 -o printer-is-shared=yes

Cups no detecta los puertos locales

Si cuando conectamos una impresora a un puerto paralelo ó a un puerto USB CUPS no lo detecta es posible que tengamos un simple problema de permisos.

Conviene revisar si en el registro de actividades de CUPS (/var/log/cups/error_log generalmente) encontramos la siguiente advertencia:

I [12/Nov/2009:10:58:33 +0100] Loaded configuration file "/etc/cups/cupsd.conf"
N [12/Nov/2009:10:58:33 +0100] Group and SystemGroup cannot use the same groups!
I [12/Nov/2009:10:58:33 +0100] Resetting Group to "root"...

en otros casos el grupo puede fijarse a nogroup y casi es peor, pero de cualquier forma eso significa problemas para acceder a los diferentes dispositivos locales.

En Debian la configuración correcta es:

SystemGroup     lpadmin

User            lp
Group           lp

dentro de /etc/cups/cups.conf.

Algunos sitios donde ampliar la información: