Enlaces
Esta en:

documentos
Arriba
Bind-9
Bind-8
Ad+bind
Dhcp
Kdephp
Shell
Trucos
Php
Imagenes
Documentos
Cuestiones php
Fedora
Legal
Resumen
W2000 xp
COMOS
Errores dns
Foros
dns.bdat.net

Directorio

Configuración de impresión extendida

A continuación vamos a ver una configuración algo más detallada para la impresión sobre un entorno BSD. Vamos a anaizar y explicar los distintos parámetros de configuración. Elegimos aquí el estilo BSD porque es aun el más utilizado en las instalaciones estándares. Las nuevs instalaciones usan CUPS primordialmente, que se trata aparte. MUchos de los parámetros no tendremos que especificarlos para usar los valores preestablecidos y el fichero smb.conf queda más limpio. También puede usar testparm o SWAT para optimizar el fichero smb.conf quitando todos los parámetros fijados con valores preestablecidos.

Ejemplo de configuración de impresión estilo BSD extendida

[global]

printing = bsd

load printers = yes

show add printer wizard = yes

printcap name = /etc/printcap

printer admin = @ntadmin, root

total print jobs = 100

lpq cache time = 20

use client driver = no

[printers]

comment = All Printers

printable = yes

path = /var/spool/Samba

browseable = no

guest ok = yes

public = yes

read only = yes

writable = no

[my_printer_name]

comment = Printer with Restricted Access

path = /var/spool/Samba_my_printer

printer admin = kurt

browseable = yes

printable = yes

writable = no

hosts allow = 0.0.0.0

hosts deny = turbo_xp, 10.160.50.23, 10.160.51.60

guest ok = no

Esto es un ejemplo de configuración. Puede que no coincida con la configuración que trae su sistema. Los parámetros preestablecidos de Samba son bastante sensatos. Para ver todos los valores, como root, use testparm que además muestra avisos sobre posibles errores.

Explicación detallada de los parámetros

A continuación analizamos los valores del anterior ejemplo:

La sección [global]

La sección [global] es una de las cuatro secciones especiales (junto con [[homes], [printers] y [print$]...). La sección [global] contiene todos los parámetros generales que se aplican al servidor. Es el lugar para los parámetros que tienen sólo un significado global. También puede contener parámetros asociados a servicios que definen el comportamiento preestablecido. Esto último es útil para simplificar el fichero de configuación y evitar incluir el valor repetidas veces. En cada sección individual o servicio también se puede asignar un valor a un parámetro si queremos que tome un valor distinto al establecido de forma global.

printing = bsd

Hace que Samba use la orden de impresión estándar aplicable al sistema de impresión BSD (también conocido como estilo RFC 1179 o LPR/LPD). En general el parámetro printing informa a Samba sobre el subsistema de impresión que debería encontrar. Samba admite CUPS, LPD, LPRNG, SYSV, HPUX, AIX, QNX y PLP. Cada uno de estos sistema tiene una orden de impresión distinta así como otras para el control de la cola.

Precaución

El parámetro printing normalmente es para un servicio, pero si se especifica en la sección [global] tendrá efecto para todos los servicios de impresión que no lo tengan definido de forma individual. Samba-3 ha descartado el soporte para sistemas de impresión SOFTQ.

load printers = yes

Para indicar a Samba que cree automáticamente todos los servicios de impresión disponibles. Las impresoras disponibles se localizan analizando el fichero printcap file. Todos los servicios de impresión también se cargan y aparecen como rescurso de red. Cada servicio de impresión creado automáticamente duplica las opciones de configuración que encuantra en la sección [printers]. El valor de load printers = no le permite especificar cada impresora UNIX como un servicio separado en el caso que no quiera que todas sean públicamente visibles y disponibles.

show add printer wizard = yes

Esta parámetro normalmente está activo d forma preestablecida, aunque no se especifique en smb.conf. Su efecto es que aparezca el icono "Asistente para agregar impresora" en la carpeta de impresoras del servicio de Samba (como muestra el "Entorno d Red" o mediante net view command). Para desactivarlo tienen que ponerlo explicitamente como no (poner un comentario no es suficiente). Add Printer Wizard permite cargar driver de impresoras al servicio [print$] compartirlos y asociarlos a una impresora, si existe la respectiva cola antes de la acción, o cambiar un driver de impresora previamente cargado.

total print jobs = 100

Fija el límite superior a 100 trabajos de impresión activos simultáneos en el servidor Samba. Si un cliente envía un trabajo que super aeste límite se encuentra con un error de espacio en el servidor. Una valor 0 indica un número ilimitado.

printcap name = /etc/printcap

Indica a Samba donde buscar una lista de nombres de impresoras disponibles. Cuando se usa CUPS asegúrese de que existe un fichero printcap. Esto se controla mediante la directiva Printcap en el fichero cupsd.conf.

printer admin = @ntadmin

Los miembros del grupo ntadmin podrían añadir controladores y modificar las propiedades de las imporesoras (ntadmin es sólo un nombre ejemplo, tiene que ser un nombre de grupo UNIX válido); root is implícitamente un printer admin. El signo @ que precede al nombre indica que estamos especificando un grupo y no un usuario. Un administrador de impresón puede hacer cualquier cosas con las impresoras a través de las interfaces de MS-RPC (ver más adelante). En grandes instalaciones, el parámetro printer admin normalmente se usa por servicio. Así podemos administrar diferentes impresoras mediante grupos distintos.

lpq cache time = 20

Control el tiempo de cache pra el resultado de la orden lpq command. Evita que la orden lpq command se llame con demasiada frecuencia y reduce la carga en sevidores de impresión con mucho trabajo.

use client driver = no

Si toma el valor yes, sólo tiene efecto sobre clintes Windows NT/200x/XP (y no con Win 95/98/ME). Su valor preestablecido es No (o False). No debería activarse en impresoras compartidas (con un yes o true) que tengan controladoresr válidos instalados en el Servidor Samba. Para más detalles, consulte la página de manual de smb.conf.


La sección[printers]

Esta es la segunda sección especial. Si aparece en el fichero smb.conf una sección con este nombre, los usuarios podrán conectarse a cualquier impresora especificada en el fichero printcap del host de Samba, ya que al iniciar Samba crea un servicio de impresión para cada nombre de impresora que encuentre el el fichero printcap. Este servicio se puede utilizar para compartir todas las impresoras con una configuración mínima. Es también un contenedor para los valores predefinidos de los parámetros. Los parámtros que se especifican en esta sección tienen que tener un carácter de servicio y no global. Para más detalles, consulte la página de manual de smb.conf.

comment = All printers

El comentario que se muestra junto al servicio cuando el cliente consulta al servidor, bien mediante el entorno de red o con la orden net view para ver los servicios disponibles.

printable = yes

El servicio [printers] tiene que declararse como printable. Si especifica otro smbd no lo cargará en el inicio. Este parámetro permite a los clientes abir, escribir y enviar ficheros a la cola en un directorio especificado con el parámetro path. Este parámetro lo usa Samba para distinguir serviciso de ficheros de servicios de impresión.

path = /var/spool/Samba

Debe apuntar a un directorio que utiliza Samba para encolar los ficheros de impresión. NO puede ser el mismo directorio que utiliza la cola del sistema de impresión UNIX. Esta ruta normalmnte apunta a un directorio con permiso de escritura global, con el sticky bit activo.

browseable = no

Siempre tiene que estar como no si printable = yes. Hace del servicio [printer] invisible en la lista de servicios en una orden net view o mediante el Explorer. Por supuesto que se ven las impresoras individuales.

guest ok = yes

Si este parámetro esta como yes, no hace falta contraseña para conectar al servicio de impresión. Se ofrece acceso con los privilegios de guest account. En muchos sistemas la cuenta de invitado (guest account) se asocia al usuario nobody. Este usuario normalmente se encuentra en el fichero passwd de UNIX y sin contraseña. En algunos sistemas la cuenta puede no tener privilegios para imprimir. Lo puede comprobar iniciado la sesión como el usuario invitado usando su - invitado y ejecutando una orden de impresión como:

lpr -P printername /etc/motd

public = yes

Es un sinónimo de guest ok = yes. Como ya tenemos guest ok = yes, esto no es necesario. Esto lleva a interesante cuestión ¿Qué ocurre si por error tengo dos definiciones contradictorias en el mismo servicio?. La respuesta es que la última que encuentre Samba gana. Testparm no se queja de diferentes asignaciones al mismo parámetro para el mismo servicio. Puede comprobarlo incluyendo múltiples líneas con el parámetro guest account y diferentes nombres de usuarios y ejecute testparm para ver cual es el que usa Samba.

read only = yes

Normalmente (para otros tipos de servicios) evita que los usuarios creen o modifiquen ficheros en el directorio del servicio.,Sin embargo en servicios printable, siempre se le permite escribir en el directorio (si los privilegios del usuario permiten la conexión), pero sólo a traves de las operaciones spools. Las operacinoes de escitura normal no están permitidas.

writable = no

Es un sinónimo de read only = yes.


Secciones [mi_nombre_impresora]

Si aparece un nombre de sección en el fichero smb.conf uqe contenga el parámetro printable = yes entonces Samba lo configura como servicio de impresión. Los clientes Windows 9x/Me pueden tener problemas con las conexiones o al cargar los controladores de la impresoras si el nombre contiene más de ocho caracteres. No poga un nombre que pueda entrar en conflicto con el nombre de otro servicio o usuario. Cuando un cliente inicia una conexión, Samba siempre intenta primero encontrar los servicios para nombres de ficheros. Si lo encuentra no se conectará a él ignorando el de impresión que tenga el mismo nombre. to a printer with the same name!

comment = Impresora con acceo restingido

El comentario lo dice todo.

path = /var/spool/Samba_my_printer

Define el área de la cola de esta impresora en un directorio distinto al preestablecido. No es necesario establecerlos diferentes, pero existe la opción.

printer admin = kurt

La definición de printer no es diferente para este servicio de impresión explícito que para el definido en el servicio [printers]. No es un requisito, lo ponemos para mostrar que existe la posibilidad.

browseable = yes

Esto hace que aparezca el recurso visible para clientes en el Entorno de red.

printable = yes

Los mismos comentarios anteriores.

writable = no

Los mismos comentarios anteriores.

hosts allow = 10.160.50.,10.160.51.

Aquí iniciamos un cierto grado de control de acceso utilizando hosts allow y hosts deny. Esto no es seguro, esta no es la forma de asegurar sus impresoras. Esta línea acepta todos los clientes de una cierta subred en una primera evaluación del control de acceso.

hosts deny = turbo_xp,10.160.50.23,10.160.51.60

Todos los host listados no tienen permiso, aunque pertenezca a la subred autorizada. Como puede ver, puede usar la dirección IP o el nombre NetBIOS.

guest ok = no

La impresora no está disponible para guest account.


Órdenes de impresion

En cada sección que defina una impresora o en la sección [printers], se puede definir un parámetro print command para fijar una orden para procesar los ficheros que haya en la cola Samba de esa impresora. El directorio de la cola, si recuerda, se definía con el parámetro path. Normalmente esta orden envia el fichero en cola al subsistema de impresión UNIX de la misma máquina mediante la orden adecuada. Pero esto no es un requisito. Para depurar u otros motivos podemos poner culaquier otra cosa distintita a la orden de impresión. Un ejemplo sería una orden que copie el fichero a una ubicación temporal para una posterior investigación cuando hay que depurar la impresión. Si desarrolla sus propias órdenes de impresión o scripts, compruebe que los ficheros imprimidos se borran o corre el riesgo de agotar el espacio disponible.

Órdenes del sistema de impresión UNIX

Ya sabe por lo visto hasta el momento que Samba, en la mayoría de los casos, usa los valores preestablecidos para los parámetros si no puede encontrar una definición explícita en el fichero de configuración. Esto mismo es cierto para print command. El print command preestablecido varía dependiendo del valor del parámetro printing. En las órdenes listadas podrá observar que algunos parámetros toman valores de la forma %X donde X es p, s, J, .... Estas letras reflejan el nombre de la impresora, fichero de la cola e identificador del trabajo respectivamente. Más adelante se explican con detalle.

Tabla . Valores predeterminados de impresión

Valores

Orden de impresión preestablcida

printing = bsd|aix|lprng|plp

print command es lpr -r -P%p %s

 

printing = sysv|hpux

print command es lp -c -P%p %s; rm %s

 

printing = qnx

print command es lp -r -P%p -s %s

 

printing = bsd|aix|lprng|plp

lpq command es lpq -P%p

 

printing = sysv|hpux

lpq command es lpstat -o%p

 

printing = qnx

lpq command es lpq -P%p

 

printing = bsd|aix|lprng|plp

lprm command es lprm -P%p %j

 

printing = sysv|hpux

lprm command es cancel %p-%j

 

printing = qnx

lprm command es cancel %p-%j

 

printing = bsd|aix|lprng|plp

lppause command es lp -i %p-%j -H hold

 

printing = sysv|hpux

lppause command (...es vacío)

 

printing = qnx

lppause command (...es vacío)

 

printing = bsd|aix|lprng|plp

lpresume command es lp -i %p-%j -H resume

 

printing = sysv|hpux

lpresume command (...es empty)

 

printing = qnx

lpresume command (...es empty)

 

Aquí excluimos el caso de CUPS porque se trata de forma independiente. Para printing = CUPS, si Samba está compilado con libcups, entonces usa la API de CUPS API para enviar los trabajos. Es buen idea también poner printcap = cups en el caso de que su cupsd.conf esté configurado para un fichero printcap autogenerado en una ubicación no estándar. En otro caso, Samba asocia las órdenes de impresión System V con la opción -oraw con las órdenes para imprimir, es decir usar lp -c -d%p -oraw; rm %s. Con printing = cups, y si Samba está compilado con libcups, cualquier print command manual se ignora.

Órdenes de impresión personalizadas

Una vez finalizado el encolado de un trabajo de impresión, Samba usa la orden print command mediante una llamada al sistema para procesar el fichero. Normalmente la orden especificada envía el fichero al subsistema de impresión del host. Pero no siempre tiene que ser este el caso. El subsistema de impresión puede no eliminar el fichero de su propia cola. Tiene que asegurarse que la orden que especifica borra el fichero de la cola una vez procesado.

No hay ningún problema para utilizar una orden de impresión personalizada con los sistemas tradicionales de impresión. Sin embargo, si no quiere complicarse, debería conocer las órdenes predeterminadas que usa Samba para cada uno de los distintos sistemas, como se indica enla anterior tabla. En todas las órdenes listadas con anterioridad aparecen parámetros de l forma %X. Estos son macros o referencias que se sustituyen por sus valores reales. Durante la ejecución de un programa con una macro Samba inserta el valor adecuado automáticamente. Las órdenes de impresión admiten todas las macros, pero tienen una especial relevancia:

  • %s, %f la ruta del fichero de la cola.

  • %p el nombre apropiado de la impresora.

  • %J el nombr del trabajo transmitido por el cliente.

  • %c el número de páginas impresas del trabajo encolado, si se saben.

  • %z el tamaño del trabajo de impresión encolado, en bytes.

print command tiene que contener %s o %f. El %p es opcional. Si no se pasa un nombre de impresora, el %p se descarta de la orden de impresión. En este caso el trabajo se envía a la impresora predeterminada del sistema.

Si se especifica en la sección global [global], este print command se usará para todos los servicios de impresión que no tengan su propio print command. Si no se inclyen ni uno ni otro, un servicio de impresión creará el fichero en la cola pero no lo procesará. Más importante, los ficheros de immmpresión no se borran por lo que estarán consumiendo espacio.

La impresión puede fallar en algunos sistemas UNIX cuando usa la cuenta de usuario nobody. Si sucede esto, cree una cuenta alternativa para el servicio de invitado y con provilegios para imprimir. Configure esta cuenta de invitado en la sección [global] con el parámetro guest account.

Puede construir órdenes complejas de impresión. Sólo tiene que darse cuenta que el valor de print commands simplemente se pasa a una shell de UNIX. La shell puede expandir las variables de entorno incluidas de forma normal. La sintaxis para incluir la variable de entorno UNIX $variable en la orden print command es %$variable. Para mostrar un ejemplo de print command funcional, el siguiente registra los trabajos de impresión en /tmp/print.log, imprime el fichero y después lo elimina. El punto y coma (;) es el separador de órdenes en una shell.

print command = echo Printing %s >> \

/tmp/print.log; lpr -P %p %s; rm %s

Puede que tenga que modificar considerablemente su propia orden con respecto a la anterior dependiendo de como imprime normalmente sus páginas en el sistema. El print command preestablecido varía dependiendo del valor del parámetro printing. Otro sejemplo sería:

print command = /usr/local/Samba/bin/myprintscript %p %s


Página Principal
Google

Web
dns.bdat.net

Visita nuestro proveedor:
www.bdat.net

Publicidad:
Alquiler de motos en Ibiza.

ISO 9000 documentación y asesoría

Impresenteibols:Humor Jazz, música en vivo