Compartir impresoras con Samba

Publicado en Linux, Windows el 26 de May, 2009 por Fran. (4 comentarios)

Estos días en el trabajo me ha tocado lidiar con la configuración de un servidor que tenemos para almacenamiento e impresión, con sus directorios compartidos e impresora compartida.

Hasta hace poco este servidor utilizaba Windows 2003, hasta que un día decidió morir en extrañas circunstancias, así que como los que nos encargamos de dicho servidor nos manejamos mejor en Linux decidimos instalar Debian Lenny y utilizar Samba para los directorios compartidos y la impresora compartida, ya que en nuestra red tenemos variedad de Windows y Linux.

Instrucciones

Hay que tener instalado CUPS. Una vez instalado, realizar los siguientes pasos para configurar CUPS:

  1. Añadir la siguiente línea al archivo /etc/cups/cupsd.conf, suponiendo que nuestra red sea 192.168.0.0/255.255.255.0:
    Allow From 192.168.0.*
  2. Descomentar la siguiente línea del archivo /etc/cups/mime.convs:
    application/octet-stream application/vnd.cups-raw  0 - 

De este modo, CUPS permitirá compartir remotamente la impresora. Ahora hay que configurar Samba para que las máquinas con Windows puedan usar la impresora, así que a seguir los siguientes pasos:

Editar el archivo /etc/samba/smb.conf de modo que quede similar a este que muestro:

[global]
  workgroup = GRUPO-DE-TRABAJO
  netbios name = NOMBRE-NETBIOS-MAQUINA

  #this section is only to share the printer
  printcap name = cups
  disable spoolss = yes
  show add printer wizard = no
  printing = cups

[printers]
  comment = Printer in Linux
  path = /var/spool/samba
  create mode = 0700
  guest ok = yes
  print ok = yes
  use client driver = yes
  browseable = yes
  public = yes

El directorio /var/spool/samba se debe crear si no existe y tener permisos 0777.

Con esta configuración se comparte la impresora sin necesidad de autenticarse, ya que el nivel de seguridad lo permite (security = share) y se permite autenticarse como invitado (guest ok = yes). El elemento printers permite que samba comparta automáticamente todas las impresoras conectadas con las propiedades que se le indiquen en dicho elemento.

Si se quisiera obligar a autenticarse para poder usar la impresora, habría que añadir un usuario a samba ejecutando:

# smbpasswd -a usuario

Además, habría que cambiar el nivel de seguridad (con quitar la propiedad security valdría) y no permitir la autenticación como invitado (guest ok = no).

Para finalizar, sólo habría que reiniciar CUPS y Samba:

# /etc/init.d/cups restart
# /etc/init.d/samba restart

Basado en Sharing a printer to XP clients with Samba and Cups de Debian Administration (en inglés).