Recientemente decidí instalar una (vieja) impresora para mi pequeña red doméstica (3 equipos: 1 FC6/FC7 + 2 Windows XP/Vista). La opción más simple (ah, cuan equivocado estaba) era instalarla en mi servidor linux y dejar los otros equipos como clientes.

No fue tarea sencilla, al menos no tan sencilla como se supone debería ser. Aquí algunas cosas que pueden ayudar a quienes tengan un problema similar.

Primero, instalar la impresora (no entraré en detalles aquí) y por supuesto, el servidor samba:

# yum install samba

Luego, crear contraseñas samba para los usuarios que tendrán acceso al servidor linux (supongo aquí que los usuarios existen en el equipo linux):

# smbpasswd -a <username>

Ahora configuramos samba. Después de algo de prueba y error este es mi /etc/samba/smb.conf (mínimo) para permitir a los usuarios imprimir

[global]
workgroup = MYHOME
server string = %h Samba Server(%v)
netbios name = linuxserver
security = user
dns proxy = no
obey pam restrictions = yes
passdb backend = tdbsam
passwd program = /usr/bin/passwd %u
show add printer wizard = no
invalid users = root

[homes]
comment = Home Directories
browsable = no
writable = yes

Después de verificar que un usuario en Windows podía acceder a su partición en el equipo linux, pasé a la parte de compartir la impresora. Como ya dije, no es necesario que un usuario tenga una carpeta en el equipo linux, es sólo una elección personal, y además simplifica algunas cosas.

Para compartir la impresora decidí hacerlo en forma específica y no general (usando [printers]) pues hay más de una impresora instalada a mi equipo linux pero sólo quiero compartir una de ellas.

[LexmarkE210]
printer = LexmarkE210
comment = LexmarkE210
printing = cups
printable = yes
path = /var/spool/samba
writable = no
valid users = <username1> <username2> ....
use client driver = yes

Hasta aquí todo marchaba muy bien, los clientes windows podía acceder e instalar la impresora de red.
No obstante, cuando intentaba imprimir algo simplemente nada sucedía. Revisando el /var/log/samba/access_log de samba, podía ver el error:

Print-Job client-error-document-format-not-supported

Lo que apuntaba a un problema de CUPS. Para resolverlo, simplemente se deben editar los archivos /etc/cups/mime.convs y /etc/cups/mime.types, y asegurarse de que las lineas que empiezan con:

application/octet-stream

no estén comentadas! Esto permite imprimir directamente a CUPS sin necesidad de la opción -oraw.

Eso es todo.

Si hay problemas, revisar SELinux. Si éste está en modo ‘enforcing’, debe agregarse samba a los servicios confiables (trusted services). O, simplemente desactivar SELinux (hará todo mucho, insisto, mucho más sencillo).


No Responses to “Samba (Imprimir desde un Equipo Windows a un Servidor Linux)”  

  1. No Comments

Leave a Reply