No se puede imprimir desde un cliente

Un cliente guadalinfo no imprime desde ningún programa.

Suponiendo que la red esté correctamente configurada, es decir, podamos acceder a la carpeta /publico y que hemos obtenido un nombre correcto (cliente-x), desde una terminal comprobaremos si existen trabajos «atascados» esperando a imprimirse con:

lpq

Este mandato nos muestra las colas de impresión y qué ficheros se están imprimiendo. Si vemos que al imprimir algo se añade a la cola pero nunca se imprime, probablemente la cola esté detenida.
Para activarla, desde un Mozilla, apuntaremos a localhost (config. de las impresoras mediante CUPS). Basta con ir a Printers y activar la impresora. Habrá que autenticarse como root y proporcionar la clave de root.

j j j

No puedo ver informac. de last ni lastb

Cuando llamamos a last / lastb para conocer las últimas entradas en nuestro sistema, nos responde con:

last 
last: /var/log/wtmp: No such file or directory 
Perhaps this file was removed by the operator to prevent logging last info.

leyendo en la página de manual, nos encontramos que los ficheros /var/log/last y /var/log/lastb deben estar creados. Para ello basta con un simple:

# touch /var/log/wtmp 
# touch /var/log/btmp

A partir de aquí, last funciona de nuevo.

j j j

No puedo imprimir desde GGV

Al intentar imprimir desde GGV un PDF falla, aunque desde OpenOffice.org si podemos.

El programa GGV no tiene configurada la impresora. En Editar·Preferencias del visualizador Postcript, solapa Impresión, basta con introducir el comando de impresión «lpr» (sin las comillas) para que imprima por la impresora por defecto.

j j j

NFS a través de un firewall

El cliente de nfs al conectarse es comprobado mediante las reglas que tenga el servidor en su fichero /etc/exports. Si estamos entre las IPs que se pueden conectar, el portmapper (/sbin/portmap del servidor) nos dará el siguiente puerto libre para montar (mountd) la carpeta nfs.

Este es el funcionamiento por defecto, pero podemos forzar a mountd a ligarse a un puerto determinado. Si cambiamos /etc/default/nfs-kernel-server (en el servidor) y ponemos algo como:

# Number of servers to start up

RPCNFSDCOUNT=8
# Options for rpc.mountd

RPCMOUNTDOPTS="--port 2000"

Obligamos a mountd a ligarse a ese puerto. De esa forma, en el firewall, bastará con abrir el puerto 2000 (además del 2049 nfs y el 111 del portmap) para que todo funcione,

Un par de utilidades: pmap_dump (o bien rcpinfo -p localhost) que muestra los puertos a los que están ligados el portmapper, mountd, etc. y pmap_set que los cambia.

# pmap_dump

100000 2 tcp 111 portmapper

100000 2 udp 111 portmapper

100024 1 udp 793 status

100024 1 tcp 796 status

100003 2 udp 2049 nfs

100003 3 udp 2049 nfs

100003 4 udp 2049 nfs

100003 2 tcp 2049 nfs

100003 3 tcp 2049 nfs

100003 4 tcp 2049 nfs

100021 1 udp 32773 nlockmgr

100021 3 udp 32773 nlockmgr

100021 4 udp 32773 nlockmgr

100021 1 tcp 38611 nlockmgr

100021 3 tcp 38611 nlockmgr

100021 4 tcp 38611 nlockmgr

100005 1 udp 2000 mountd

100005 1 tcp 2000 mountd

100005 2 udp 2000 mountd

100005 2 tcp 2000 mountd

100005 3 udp 2000 mountd

100005 3 tcp 2000 mountd

Enlaces relacionados

nfs.sourceforge.net/nfs-howto/security.html

j j j

iptables, ipchains y Netfilter ? Diferencias ?

Extraído de la página oficial de Shorewall firewall

Netfilter – the packet filter facility built into the 2.4 and later Linux kernels.
ipchains – the packet filter facility built into the 2.2 Linux kernels. Also the name of the utility program used to configure and control that facility. Netfilter can be used in ipchains compatibility mode.
iptables – the utility program used to configure and control Netfilter. The term ‘iptables’ is often used to refer to the combination of iptables+Netfilter (with Netfilter not in ipchains compatibility mode).

j j j

Preguntas inocentes

Sucedió el pasado Domingo 24 de Julio. Mi mujer se había descargado de Internet unos documentos en formato PDF que quería imprimir. Mala suerte, porque el autor de los PDF los había protegido para que no se pudieran imprimir, de forma que tuvieras que leerlos en la pantalla del ordenador. Yo estoy acostumbrado a mirar la pantalla durante horas, por lo que no entiendo que a alguien le cueste. Pero les cuesta. Además, a mi me gusta leer los libros de informática con forma de libro.

Es entonces cuando surgió la pregunta inocente: «Diego, ¿estos PDF no se pueden imprimir de alguna manera?». Yo aún no sabía cuánto dolor estaba encerrado en esas diez palabras.

«Bueno, puedo intentarlo» – le contesté.

Sencillo, a fin de cuentas, para un freaky de la informática como yo. Bastaba con copiar uno de los PDF a la carpeta compartida pública de mi servidor Linux (mi mujer usa Windows XP). Para ser totalmente ordenado, dentro de /public creé una carpeta Paqui. Una vez situado, desde una terminal tecleé:

$ cd /public/Paqui $ pdf2ps nombre-fichero.pdf

¡Exito! El fichero se había convertido de PDF a PS (PostScript) y ahora sí que se podía imprimir usando el visor de PostScript de GNOME gvv (Gnome Ghostview). Ahora mismo alguien de la audiencia estará pensando «bueno, sí, eres muy listo, pero eso es precisamente lo que el autor del PDF quería impedir». Pues sí, me confieso. Los casados entre la audiencia me entenderán.

Un momento de triunfo

Exultante por mi triunfo (conseguido en apenas cinco minutos) me dirigí a la mesa de mi mujer con los papeles prueba de mi triunfo en la mano. «Listo» – le dije con una gran sonrisa.

«Gracias, está muy bien, pero… ¿y cuándo tú no estés?. ¿No hay alguna manera de automatizar el proceso para que lo pueda hacer yo sola?»

El mundo pareció enmudecer. Me sentía cada vez más pequeño. Ese es el tipo de preguntas inocentes que suelen hacer los usuarios y que normalmente suelen llevar aparejados un tremendo marrón.

Volví cabizbajo a mi servidor Linux y pensé. «Bueno, probablemente con un pdf2ps *.pdf esté todo solucionado. Me equivocaba. pdf2ps no admite comodines. Luego para procesar varios ficheros hay que hacerse un pequeño script.

«Ese peaso de script»

Bueno, nada más fácil que un pequeño script. En cinco minuto (más) tuve escrito algo como ésto:

#!/bin/bash
 PROGRAM=pdf2ps
for f in $1
do
echo $PROGRAM $f $f.ps
$PROGRAM $f $f.ps
done
nautilus /public/Paqui

El lector avezado en programación de la BASH Linux sabrá que el bucle for recorre todos los ficheros que coincidan con un patrón, pasado como parámetro en $1. Luego este script se usa así:

$ multiple-pdf2ps.sh *.pdf

generando un fichero pdf.ps por cada pdf.

¡Bueno, segundo momento de triunfo! Ya estaba todo listo. O casi. Subí el nuevo script a la rama correspondiente del CVS y me puse a pensar.

Mi reino por un visor de PostScript para Xp

Pues eso. La conversión había tenido éxito. Pero no quería que mi mujer tuviera que lidiar con CUPS y la impresión desde Linux (entre otras cosas porque aún no he configurado el driver de impresión para sacar dos páginas por hoja, pero ese es otro tema). Luego necesitaba un visor de PostScript para XP.

Sencillo: Google me llevó a http://www.cs.wisc.edu/~ghost/ de donde me descargué el visor Ghostview para Windows y el propio GhostScript (un intérprete de PostScript Software Libre; PostScript es de Adobe y los visores de PostScript valen pasta o en cualquier caso no son Software Libre). Dejé los ficheros en /public/Paqui y desde el XP instalé ambos ficheros (por cierto, la conexión por red a \einstein\public la había automatizado con una unidad de red, F: concretamente: otra tarea de «un minuto»).

La prueba fue un éxito absoluto: podía imprimir dos páginas por hoja abriendo el .PS desde XP. ¡Triunfo! ¿Ya? No, falta algo…

Un usuario en Linux

Claro. Si quiero que mi mujer pueda hacer ésto cuando yo no esté, debe poder entrar en el servidor. Bueno, sencillo, adduser Paqui, le pongo una clave, entro en su sesión de GNOME, le pongo un escritorio bonito, le creo un lanzador en el escritorio que ponga «convertir los PDFs» y que llame al script y listo. Otros cinco minutos.

Probemos. ¡Cómo!?. No puedo acceder a los ficheros de /public/Paqui. Horror. Al montar la unidad en Linux, tengo una línea en el /etc/fstab como:

/dev/hdc1 /mnt/hdc1-xp vfat auto,user,exec,uid=1000,gid=1000 0 0

que, entre otras cosas, monta la unidad /dev/hdc1 con el usuario de uid 1000 como propietario, o sea, yo. Por eso el usuario de mi mujer no puede leer /public

Solución: meter a los dos usuarios en el grupo users (de GID 100) y en el fstab poner:

/dev/hdc1 /mnt/hdc1-xp vfat auto,user,exec,gid=100,umask=002 0 0

de ésta forma, el propietario de la carpeta es ahora el grupo 100 (al que pertenecen los dos usuarios de Linux) y la umask permite unos permisos de lectura y escritura para el grupo. Todo solucionado.

Epílogo

Hay que ver lo que puede originar una preguntita inocente. Son los «poyaques». Es decir «po ya que puedo convertir de pdf a ps, vamos a convertir en masa», «po ya que he convertido en masa, que se haga con otro usuario», «po ya que …».

Muchas veces los «poyaques» ocupan más tiempo en los proyectos que las especificaciones originales. Ojo con los «poyaques» y las preguntas inocentes. Antes de decir «sí, si eso son sólo cinco minutos» piensa no vaya a ser que sean cinco tras otros cinco tras otros cinco….

j j j

¡He recibido mis diez copias de Ubuntu!

Los CDs de Ubuntu junto con el que últimamente es mi libro de cabecera: el archifamoso NAG en formato arbol muerto.

Comprobado, el envío de CDs de Ubuntu funciona. Entras en la web (www.shipit.ubuntu.com), pides los que quieras, introduces los datos para el envío (dirección, nombre y esas cosas) y pasado un tiempo, te llega un sobre con los CDs.

He pedido diez para compartirlo con mis amigos. Este verano (en Agosto) una de las cosas que quiero hacer es instalarme Ubuntu y probarla a fondo. Tengo esperándole un fantástico disco duro IDE de 4 GB. ¡Qué derroche!

j j j

No se puede imprimir desde ningún programa

Tenemos una impresora, en red o conectada directamente, pero no imprime.

Suponiendo que la red esté correctamente configurada, desde una terminal comprobaremos si existen trabajos «atascados» esperando a imprimirse con:

# lpq

Este mandato nos muestra las colas de impresión y qué ficheros se están imprimiendo. Si vemos que al imprimir algo se añade a la cola pero nunca se imprime, probablemente la cola esté detenida.

Para activarla, desde un navegador Mozilla, apuntaremos a http://localhost:631 (config. de las impresoras mediante CUPS). Basta con ir a Printers y activar la impresora. Habrá que autenticarse como root y proporcionar la clave de root.

j j j