miércoles, 23 de enero de 2008

tema 5b

4. Copias de seguridad
Realizar copias de seguridad es una de las tareas más importantes del administrador
del sistema Es casi inevitable que se produzcan pérdidas de información, debido a,
entre otras causas:
deterioro o borrado accidental por parte de un usuario autorizado
ataque intencionado por parte de personas no autorizadas
fallo del software o el hardware
incendio, robos, y desastres naturales, etc.
es imprescindible poder recuperar la información perdida
En esta sección veremos los comandos básicos para realizar copias de seguridad
en UNIX/Linux; para más información:
Backup & Recovery, W. Curtis Preston, O'Reilly, 2007
Linux System Administrators Guide: Capítulo 12, Backups
4.1. Estrategias para las copias de seguridad
Una buena estrategia para copias de seguridad debe tener las siguientes características:
Ser fácil de usar, preferiblemente si totalmente automática
Eficiencia y rapidez:
 compromiso entre el tiempo de backup y el tiempo de recuperación
Facilidad de restauración
Capacidad de vericar las copias
 difícil si el sistema está siendo usado continuamente
Tolerancia a fallos en los medias de almacenamiento (cintas, etc.)
necesidad de mantener al menos dos copias de los backups completos
del sistema
al menos una de las copias debe almacenarse en otro sitio
Portabilidad
 posibilidad de recuperar la información en diferentes sistemas
Componentes de las copias de seguridad
Hay básicamente tres componentes que intervienen en una copia de seguridad:
El planicador: decide que información se copia y cuando
El programa de copia: los comandos que mueven los datos de los discos
a los medios
Los medios de almacenamiento: cintas, CDs, etc.
El planicador: Decide cuando realizar el backup y cuanta informacióncopiar
normalmente el gestionado mediante cron
Según la información que salvemos podemos hablar de los siguientes tipos de
backup:
Completo se salva toda la información del sistema
Parcial sólo se salva la información más importante y difícil de recuperar
los ficheros de usuario,
los ficheros de conguración, p.e. /etc/passwd
directorios de correo, web, etc.
Incremental sólo se salvan los cheros modicados desde el último backup
completo o incremental
la copia de seguridad necesita menos tiempo y espacio
para restaurar los datos necesitaremos el último backup completo
y todos los incrementales
Diferencial se salvan los cheros modicados desde el último backup completo
los backups son más grandes que en el caso incremental para restaurar sólo necesitamos el backup completo y el último diferencial
Programa de copia: Se encarga de copiar los ficheros seleccionados en el
medio de almacenamiento; dos mecanismos básicos
Basado en imagen: accede al disco a bajo nivel
 normalmente copias más rápidas, pero mas lento restaurar ficheros individuales
 programas específicos para diferentes filesystems
comandos de este tipo son dump y dd
Fichero fichero
 acceden a los ficheros a través de llamadas al SO
 copias más lentas, pero restauración de ficheros individuales más
simple
comandos de este tipo son tar, cpio o afio
Medios de almacenamiento: Dispositivos donde se guarda la informaci
ón; los más populares son:
Cintas, principalmente cintas de 8 mm o DAT de 4mm con capacidades
hasta 72 GB
Dos dispositivos: cinta con no-rebobinado y con rebobinado (en
Linux para cintas SCSI /dev/nstX y /dev/stX respectivamente,
en Solaris /dev/rmt/X y /dev/rmt/X )
 Las cintas pueden controlarse a través del comando mt
Discos duros externos
Discos ópticos (CDs, DVDs)
 necesitan software adicional como mkisofs (crea imágenes ISO) y
cdrecord (graba en CDs o DVDs)
buenos cuando la cantidad de datos no es excesivamente elevada
4.2. Comandos básicos
Veremos los comandos básicos para hacer backups en UNIX: tar, cpio y dump
Comandos dump y restore
Comandos más comunes para copias de seguridad
comandos originales de BSD UNIX
dependen del tipo de filesystem
Comando dump: Hace copias de un sistema de archivos entero, con las
siguientes características:
Pueden ser copias multivolumen
Puede salvar ficheros de cualquier tipo (incluido ficheros de dispositivos)
Los permisos, propietarios y fechas de modicación son preservados
Puede realizar copias incrementales
También puede usarse para salvar cheros individuales (no es lo usual)
El formato y los argumentos de dump dependen de la versión utilizada, pero
en general es:
dump [-nivel] [opciones ] [ficheros_a_salvar ]
Nivel de dump: entero entro 0-9:
0 implica backup completo
 mayor que 0 implica copiar sólo los ficheros nuevos o modicados
desde el último backup de nivel inferior
 dump guarda información sobre los backups realizados en el chero
/etc/dumpdates o /var/lib/dumpdates
Algunas opciones:
-f especifica el dispositivo o fichero donde salvar la copia
 -u actualiza el chero dumpdates después de una copia correcta
 -a determina automáticamente el n de la cinta (opción por defecto)
 -j, -z usa compresión con bzlib o zlib (sólo en algunas versiones)
Ejemplo: backup de nivel 0 de la partición /home
# dump -0u -f /dev/st0 /home
Ejemplo: backup en una máquina remota usando ssh como transporte
# export RSH=ssh
# dump -0u -f sistema_remoto :/dev/st0 /home
Comando restore: Restaura cheros salvados por dump
Formato:
restore acción [opciones ] [ficheros_a_recuperar]
Acciones principales:
r restaura la copia completa
t muestra los contenidos de la copia
 x extrae sólo los cheros indicados
i modo interactivo
permite ver los ficheros de la copia
con add indicamos los ficheros a extraer y con extract los
extraemos
usar ? para ayuda
Algunas opciones:
-f especifica el dispositivo o fichero de la copia
-a no pregunta de que volumen extraer los fichero lee todos los
volúmenes empezando en 1)
Ejemplo: restaurar el backup de /dev/st0
# restore -rf /dev/st0
Ejemplo: restaurar el backup desde un sistema remoto
# export RSH=ssh
# restore -rf sistema_remoto :/dev/st0
Ejemplo: restaurar sólo un chero
# restore -xaf /dev/st0 fichero
Archivo restoresymtable: Se crea cuando se restaura un filesystem completo,
en el directorio donde se restaura
Contiene información sobre el sistema restaurado
Puede eliminarse una vez finalizada la restauración
Planicación de los backups
Podemos seguir diferentes estrategias a la hora de planificar los backups
Ejemplo 1: copia de nivel 0 mensual, de nivel 9 diaria y de nivel 5
semanal
necesita 6 o 9 cintas: una para el 0, 4 para los niveles 5 y 1 o 4
para los niveles 9
para restaurar necesitamos restaurar en orden:
1. la copia de nivel 0
2. la última copia de nivel 5, y
3. la última de nivel 9, después de la de nivel 5
Ejemplo 2: copia de nivel 0 mensual, de nivel 2 semanal y de niveles 3,
4, 5 y 6 cada día
necesita al menos 9 cintas
para restaurar necesitamos restaurar en orden:
1. la del nivel 0
2. la del último viernes (nivel 2)
3. las diarias desde el último viernes de forma consecutiva
Prácticas
Utilizando dump haz un backup de nivel 0 de la partición /home en un
fichero en el directorio tmp
 Como usuario, modica algún chero en el directorio home
 Haz una copia de nivel 9 de la partición /home
Borra los ficheros del directorio /home y restauralos a partir de las
dos copias de seguridad
Comando tar (Tape ARchiver)
Permite almacenar varios cheros en uno sólo, manteniendo la estructura de
directorios:
Sintaxis:
tar [-]función [modificador ] fichero [directorio ]
Ejemplo: crea un fichero tar conteniendo los ficheros del directorio /etc
tar cvf copia.tar /etc
Puede indicarse un fichero o un dispositivo (p.e. /dev/fd0)
tar conserva las propiedades de los ficheros: permisos, usuario/grupo,
fechas, etc.
Funciones principales:
c crea un nuevo archivo tar
x extrae los ficheros del archivo
t lista los ficheros del archivo
 r añade nuevos cheros al nal del archivo tar
 u almacena sólo los cheros nuevos o modicados respecto a los
del archivo tar
 A añade un fichero tar a otro
d obtiene las diferencias entre los ficheros de la copia y los del disco
--delete borra un fichero del archivo tar
Algunas opciones:
 v verbose, muestra lo que está haciendo
f para indicar el nombre del fichero tar; por defecto toma - que
representa la entrada/salida estándar
z comprime la copia con gzip
-- bzip2 o j comprime la copia con bzip2
 l almacena sólo los cheros locales (útil con NFS)
k no sobreescribe los ficheros existentes al extraer
T o --files-from F obtiene la lista de ficheros a guardar del
fichero F
X o --exclude-from=F excluye los ficheros que concuerdan con
los patrones listados en el fichero F
 N o --newer DATE sólo guarda los cheros más nuevos que DATE
M o --multi-volume permite crear copias multivolumen (por ejemplo,
varios disquetes) para más opciones ver la página de info (info tar)
Ejemplos:
Extrae todos los ficheros de copia.tar
tar xvf copia.tar
Extrae el el fichero passwd de copia.tar
tar xvf copia.tar etc/passwd
Copia el contenido de /tmp directamente a un disquete
tar cvf /dev/fd0 /tmp
Copia un directorio completo
(cd dir1 && tar cf - .) | (cd dir2 && tar xvf -)
 Copia los cheros más nuevos que un chero control
find dir -newer control ! -type d -print | tar cvfT
f.tar -
Problemas con tar
 Algunas versiones no admiten opciones como la compresión o copia
multivolumen
 Algunas versiones tienen problemas con paths muy largos (más de
100 caracteres)
Comando cpio
El comando cpio es similar a tar en funcionalidad
crea y extrae archivos, o copia ficheros de un lugar a otro
maneja archivos en formato cpio y formato tar
Tres funciones primarias:
1. Copy-out: copia ficheros a un archivo, con la opción -o
Ejemplo: copia todos los directorios desde el actual en el chero
tree.cpio
$ find . | cpio -ov > tree.cpio
para usar un dispositivo en lugar de un fichero, sustituir tree.cpio
por /dev/dispositivo
2. Copy-in: extrae los cheros de un archivo, con la opción -i
$ cpio -idv < tree.cpio
la opción d crea los directorios al ir extrayendo
3. Copy-pass: usado para copiar cheros de un árbol de directorios a otro,
con la opción -p
Ejemplo: copia los cheros del directorio actual y subdirectorios a
un nuevo directorio new-dir
$ find . -depth -print0 | cpio --null -pvd new-dir
la opción -depth procesa primero el contenido del directorio y
después el directorio (mejor para restaurar)
las opciones -print0 y --null evitan problemas con nombres de
cheros que contengan un carácter de newline
-print0 termina los nombres de los cheros con un '\0' en
vez de '\n'
--null o -0 lee una lista de ficheros terminados por un '\0'
Para más opciones y uso de cpio ver la página de información: info
cpio
Comando afio
Variación de cpio, con varias mejoras:
Permite hacer copias multivolumen
Permite archivar los ficheros comprimiendolos de uno en uno
No comprime los ficheros que no interesa comprimir por que ya lo
están (reconoce por extensión) Permite vericar la copia con el original (opción -r)
Modos de funcionamiento similares a cpio
-o guarda a archivo, -i extrae de un archivo y -p copia directorios
otras opciones: -r verica el archivo con el filesystem; -t muestra el
contenido del archivo
Ejemplos:
Salvar a disquete multivolumen comprimido
$ find . | afio -ov -s 1440k -F -Z /dev/fd0
Comprobar con el original una copia comprimida en varios disquetes
$ afio -rv -s 1440k -F -Z /dev/fd0
Muestra el contenido del archivo:
$ afio -tv -s 1440k -F -Z /dev/fd0
Extrae el contenido del archivo
$ afio -iv -s 1440k -F -Z /dev/fd0
Copia los ficheros del directorio actual y subdirectorios a un nuevo
directorio new-dir
$ find . -depth -print0 | afio -p0xa directorio_nuevo
Para opciones ver la página de manual
Comando dd
Comando de copia y conversión de ficheros
Sintaxis.
dd [if=fichero_entrada ] [of=fichero_salida ] [opciones]
Por defecto, copia de la entrada estándar a la salida estándar
Algunas opciones:
 ibs=b lee b bytes de cada vez (tamaño de bloque, por defecto
512)
obs=b escribe b bytes de cada vez
bs=b lee y escribe b bytes de cada vez
 cbs=b especica el tamaño del bloque de conversión
skip=n salta n bloques del fichero de entrada antes de la copia
seek=n salta n bloques del fichero de salida antes de la copia
 count=n copia sólo n bloques del chero de entrada
 conv=conversión convierte el formato del chero de entrada seg
ún el valor de conversión :
ascii Convierte EBCDIC a ASCII
ebcdic Convierte ASCII a EBCDIC
swab Intercambia cada par de bytes de la entrada
 lcase Cambia las letras mayúsculas a minúsculas
 ucase Cambia las letras minúsculas a mayúsculas
 noerror Continúa después de producirse errores de lectura
Ejemplo: imagen de floppy de 3.5, con 18 sectores por pista, dos cabezas
y 80 cilindros:
$ dd bs=2x80x18b if=/dev/fd0 of=/tmp/floppy.image
la b representan bloques de 512 bytes (en total 1474560 bytes)
la copia se realiza de una sola vez
Ejemplo: extrae los datos de una cinta con error
$ dd conv=noerror if=/dev/st0 of=/tmp/bad.tape.image
Ejemplo: tar del directorio actual y copia en cinta en el sistema remoto
$ tar cjf - . | ssh remoto dd of=/dev/st0
Comando mt
Permite la manipulación directa de la unidad de cinta
Sintaxis.
mt [-f unidad_de_cinta ] operación [número ]
con -f indicamos la unidad de cinta a utilizar:
si se omite se toma la definida en la variable TAPE
Algunas operaciones:
stat(us) muestra el estado de la unidad de cinta
rew(ind) rebobina la cinta hasta el principio
 ret(ension) alisa y da tensión a la cinta (rebobina hasta el principio,
luego hasta el final y nuevamente al principio)
erase borra la cinta entera
 fsf/bsf se avanza/retrocede el número de archivos especicado
por número
eom salta hasta el final de parte grabada
4.3. Otras aplicaciones
Existen otros comandos que permiten hacer backups y sincronizar ficheros:
bacula, rdist, rsync, etc.
Bacula
Sosticado sistema de backup en red con diseño modular
Permite hacer copias de seguridad de todas las máquinas de una LAN
a diferentes medios de backups (cinta, disco,. . . )
Soporta MySQL, PostgreSQL o SQLlite para el catálogo
Hace backups de sistemas UNIX, Linux y Windows
Para más información, ver www.bacula.org/dev-manual/What_is_Bacula.html
o la sección 9.8 del libro UNIX System Administration Handbook, Evi
Nemeth et al.
Amanda
Amanda: Advanced Maryland Automatic Network Disk Archiver
Sofisticado sistema de backup en red Permite hacer copias de seguridad de todas las máquinas de una LAN a una unidad de cinta en un servidor
Está disponible en la mayoría de los UNIX y soporta muchos tipos de medios de backup
Puede hacer uso de SAMBA para copias de sistemas Windows NT
Se basa en dump y tar
Para más información, ver www.amanda.org/docs
Flexbackup
Flexbackup Herramienta de backup exible para instalaciones de pequeño y
medio tamaño
Más simple de congurar y utilizar que Amanda para sitios con un número no muy alto de sistemas
Usa distintos formatos de archivo: dump, afio, GNU tar, cpio, zip, etc.
Permite backups completos e incrementales, como dump
Permite backups remotos a través de rsh o ssh
Para más información, ver exbackup.sourceforge.net
rdffi-backup
rdiff-ackup copia un directorio en otro, permitiendo copias remotas
Hace una copia exacta de los directorios (mirror ), guardando las propiedades
de los ficheros (propietario, permisos, etc.)
Guarda las diferencias entre copias de los ficheros para poder recuperar
unfichero antiguo (incremental )
Sólo transmite las diferencias de los cheros (similar a rsync)
Para más información ver www.nongnu.org/rdi-backup
DAR
DAR Disk ARchiver comando para hacer backups de árboles de directorios
y ficheros
Permite copiar un filesystem entero a un archivo
Permite hacer backups completos y diferenciales
Permite hacer copias multivolumen:
divide en archivo en varios ficheros (slices) parando antes de crear
cada nuevo slice
interesante para hacer copias en floppy, CD o DVD
Más información en: dar.linux.free.fr
Comando rdist
Permite distribuir cheros desde un servidor central a varias máquinas
sólo copia los cheros modicados, preservando el propietario, grupo,modo y fechas de modicación
las versiones actuales pueden funcionar sobre ssh (las antiguas funcionaban
sobre rlogin, con problemas de seguridad)
utiliza un fichero distfile que especifica las acciones a realizar
Ejemplo de distfile
SYS_FILES = (/etc/passwd /etc/group /etc/mail/aliases)
HOME_DIRS = (/home/tomas /home/al*)
GET_ALL = (maquina1 maquina5 maquina6)
GET_SOME = (maquina2 maquina8)
all: ${SYS_FILES} -> ${GET_ALL}
notify tomas@localhost;
special /etc/mail/aliases /usr/bin/newaliases;
some: ${SYS_FILES} -> ${GET_SOME}
except /etc/mail/aliases;
ejemplo de uso:
# rdist -f distfile
Comando rsync
Similar a rdist aunque funciona de forma diferente
más eciente que rdist, sólo transmite las diferencias entre cheros
no usa chero de conguración: funciona de forma similar a rcp
ejemplo:
# rsync -av /home/tomas maquina1:/tmp
ver la página de manual de rsync para más detalles
Unison
Aplicación para sincronizar cheros y directorios entre sistemas
puede sincronizar entre sistemas Windows y UNIX
no requiere permisos de root
permite sincronización en los dos sentidos
las transferencias se optimizan usando una versión de rsync
tiene un interfaz gráco sencillo
para ver un tutorial de uso, hacer:
$ unison -doc tutorial
Imágenes del sistema
Herramientas que nos permiten obtener imágenes completas del sistema para
copias de seguridad o réplicas (clones)
Norton Ghost herramienta comercial de Symantec para copias de seguridad
e imágenes del sistema
Partimage salva particiones completas a un fichero de imagen
permite recuperar la partición completa en caso de errores
permite realizar clones de un PC
Clonezilla aplicación opensource para hacer clones masivos
permite hacer clones de múltiples PCs (40 o más) simultáneamente
puede usar multicast para distribuir las imágenes
basado en DRBL (Diskless Remote Boot in Linux ) y Partimage
SystemImager herramienta para automatizar la instalación de Linux y la
distribución de software en una red de PCs
usado en clusters, granjas de servidores o redes en general
5. Servicios de impresión
Los sistemas UNIX/Linux aceptan normalmente varios sistemas de impresión:
BSD LPD (Line Printer Daemon) o LPR diseñado para UNIX BSD:
 uno de los sistemas más utilizados, aunque un tanto anticuado
utiliza los comandos lpr, lpq, lprm y lpc para enviar, borrar y
ver los trabajos de impresión
 el demonio lpd gestiona las colas y el proceso de impresión
puede combinarse con software como el Ghostscript para dar soporte
a impresoras no-PostScript
Ghostscript (comando gs) permite convertir ficheros PostScript
o PDF al PDL (Page Description Language) de una
impresora no-PostScript
System V Printing sistema de impresión de UNIX System V
menos utilizado (p.e. Solaris), aunque, por compatibilidad, la mayor
ía de los sistemas lo soportan utiliza comandos como lp, lpadmin, lpstat, cancel, accept,
reject, etc.
el demonio lpsched determina donde y cuando un trabajo debeimprimirse
LPRng mejora sobre el BSD LPR mantiene los mismos comandos que el BSD, aunque permite usar comandos tipo System V  la conguración es similar a BSD y es compatible con LPR
introduce importantes ventajas:
 permite correr gran parte del sistema de impresión como usuario
sin privilegios (no root)
 produce mejores mensajes de diagnóstico y error
 soporta autenticación de sistemas remotos mediante SSL, Kerberos o PGP
 incorpora herramientas grácas de conguración como LPRng-Tool
 Para más información www.lprng.com
CUPS (Common Unix Printing System) nueva arquitectura de impresión para sistemas UNIX
 nuevo sistema de conguración, aunque mantiene los comandos de BSD y SV
 diseñado para que clientes y servidores usen CUPS  puede descubrir impresoras en red de forma automática (CUPS Browsing)  usa el protocolo IPP (Internet Printing Protocol ) para impresión remota
utiliza drivers PPD (PostScript Printer Description ) para identificar las capacidades de la impresora (tanto PostScript como noPostScript)
 tiene muchos interfaces gráficos de configuración (Kups gnome-cups-manager
o ESP Print Pro (comercial)) incluido un interfaz web a través del
puerto 631
5.1. BSD LPD
Dos ficheros básicos de conguración:
fichero de definición de impresoras /etc/printcap
permisos de acceso en red: /etc/hosts.lpd
contiene una lista de los hosts (estacion1.tudominio.org, etc), uno
por línea, a los que se les permite utilizar los servicios lpd del servidor
Fichero /etc/printcap
Define una serie de entradas, cada una indicando una cola del sistema de
impresión:
Ejemplo de /etc/printcap
lp|local|Impresora local genérica:\
:lp=/dev/lp0:\
:sd=/var/spool/lpd/lp:\
:af=/var/log/lp-acct:\
:lf=/var/log/lp-errs:\
:mx#0:\
:sh:
lpremota|jumilla-lp|Impresora remota en jumilla:\
:lp=:\
:rm=jumilla:\
:rp=lp:\
:sd=/var/spool/lpd/lpremota:\
:mx#0:\
:sh:
Alguna de las variables de printcap son:
 lp dispositivo al que está conectado la impresora (/dev/lp0 primer
puerto paralelo)
rm y rp nombre o IP del sistema remoto que gestiona la impresora,
y nombre de la impresora en ese sistema
sd directorio de spool ; debe tener el mismo nombre que la impresora
lf y af fichhero de log de error y de contabilidad
 mx tamaño máximo del chero aceptado (un 0 indica ilimitado)
 sh si presente, suprime cabeceras en la impresión
Comandos de impresión BSD
Principales comandos en BSD
lpr envía un trabajo a la cola de impresión por defecto
la impresora por defecto denfinida en la variable PRINTER
 con la opción -P podemos especicar otra cola
Ejemplo:
$ lpr -Pepson datos.txt
lpq muestra los trabajos existentes en la cola de impresión
$ lpq -Pepson
epson is ready and printing
Rank Owner Job File(s) Total Size
active tomas 375 datos.txt 8192 bytes
lprm elimina un trabajo de la cola:
$ lprm -Pepson 375
lpc permite activar/desactivar colas y/o impresoras, mover trabajos en
el orden de las colas, ver el estado de las impresoras, etc.
debe ejecutarse como root
dentro de lpc, usando help vemos las opciones
lpc> help
Commands may be abbreviated. Commands are:
abort enable disable help restart status topq ?
clean exit down quit start stop up
lpc> status
lp:
queuing is enabled
printing is enabled
no entries
printer idle
5.2. CUPS
Funcionamiento básico:
Scheduler se encarga de gestionar los trabajos y las colas de impresión
implementa IPP (Internet Printing Protocol ), aceptando trabajos
remotos
incorpora un módulo de autorización
Sistema defiltrado convierte los datos a imprimir en el PDL (Page description
language) de la impresora particular
utiliza tipos MIME para definiir los tipos de ficheros conocidos y
las aplicaciones para procesarlos los ficheros pueden ser convertidos a PostScript o directamente adatos raster (bitmap)
el PostScript es tratado por un pre-filtro ps-to-ps para indicar opciones de impresión (páginas a imprimir, etc.) y convertido a CUPS-raster por un filtro tipo Foomatic1 o Ghostscript
1foomatic es un nuevo sistema que permite integrar drivers de impresoras en los sistemas de impresión de UNIX (LPD, CUPS, LPRng, etc.)
Ficheros de conguración
Los archivos de conguración de CUPS están en el directorio /etc/cups:
/etc/cups/cupsd.conf archivo de conguración del servidor cups
permite especificar el control de acceso a las impresoras
/etc/cups/client.conf archivo de conguración del lado cliente
permite indicar el servidor cups a utilizar
/etc/cups/printers.conf especica la denición de las impresoras
/etc/cups/mime.types define los tipos de ficheros conocidos por CUPS
/etc/cups/mime.convs indica los programas que procesarán cada tipo
MIME
Conguración de un servidor CUPS en Debian
1. Instalar el paquete cupsys
2. Instalar la impresora mediante interfaz web
a) Conectarse a http://127.0.0.1:631
b) Ir a Tareas de administración y entrar con el usuario root
c) Seleccionar Añadir Impresora e indicar los datos de la nueva impresora:
Nombre de la cola de impresión, ubicación física de la impresora
y descripción de la misma
d) Seleccionar el tipo de conexión:
AppSocket/HP JetDirect Dispositivo especial para acceder a impresoras
remotas a través de una conexión HP JetDirect
Internet Printing Protocol (IPP o HTTP) Para acceder a una
impresora remota a través del protocolo de impresión de Internet,
bien directamente (IPP) o bien a través de HTTP
LPD/LPR Host or Printer Impresora remota conectada a un servidor
LPD/LPR, o que soporta directamente LPD
Parallel Port #1, USB Printer impresora local conectada a puerto
paralelo o USB
e) Indicar el URI para conexión remota:
Un servidor de impresión LPD requiere la sintaxis lpd://hostname/queue
Una impresora HP JetDirect requiere la sintaxis
socket://hostname o socket://nombre_ordenador:9100
Una impresora IPP requiere la sintaxis
http://hostname:631/ipp/queue o ipp://hostname/ipp/queue
f ) Indicar el fabricante y modelo de impresora:
podemos obtener cheros PPD para más modelos en www.linuxprinting.org
estos ficheros se guardan en /usr/share/cups/model
en Debian podemos instalar paquetes como cupsys-driver-gutenprint o foomatic-filters-ppds
g) Una vez añadida, podemos configurarla en el menú de Impresoras
3. Dar permisos de acceso a los clientes en el fichero
/etc/cups/cupsd.conf
Si queremos que los sistemas de nuestra red local puedan imprimir
a través de este servidor, debemos modicar el chero de la
siguiente forma:
# Permitir acceso remoto a la impresora
Listen *:631

Order Deny,Allow
Deny All
Allow localhost
Allow @LOCAL # podemos indicar direcciones como 193.144.84.*

Si estamos interesados en la administración remota:

Order Deny,Allow
Deny All
Allow localhost
Allow @LOCAL

Para poder cambiar los cheros de conguración:

AuthType Basic
Require user @SYSTEM
Order deny,allow
Deny all
Allow localhost
Allow @LOCAL

Las directivas BrowseXXX permiten que publiquemos en la red,
mediante broadcasts, las impresoras que hemos definido
 Browsing On activa el envío de información sobre las impresoras
BrowsePort n puerto usado para los broadcasts UDP
BrowseInterval t intervalo en segundos entre broadcasts
Podemos usar el programa cupsdconf para congurar estas opciones
Conguración de un cliente CUPS en Debian
1. Instalar el paquete cupsys-client
proporciona comandos de impresión tipo System V
2. Modificar el fichero /etc/cups/client.conf
Indicar el nombre o la IP del servidor CUPS:
ServerName nombre_del_servidor
3. Imprimir usando los comandos System V:
Ver las impresoras a las que tenemos acceso:
lpstat -a
Seleccionar una impresora por defecto:
lpoptions -d impresora
Imprimir un fichero:
lp -d impresora fichero
4. Si queremos usar los comandos BSD instalar el paquete cupsys-bsd
6. El sistema X Window
Entorno operativo gráco con soporte en red
Desarrollado en el MIT a partir del proyecto Athena
En 1987, lanzada la versión X11
En 1988 se constituye X Consortium para controlar el desarrollo de X
En 1994, versión X11R6 (X11 Release 6 )
En 1998, el gobierno de X pasa a The Open Group, que, en 1999, forma X.Org
Versiones de X usadas en Linux: XFree86 y Xorg Server
XFree86 originada en 1992 a partir de X386, versión de X para PCs
 En febrero de 2004 sale la versión XFree86 4.4 con una licencia
más restrictiva
 Última versión 4.7.0 (agosto 2007)
En 2004 se constituye The X.Org Foundation, para proporcionar una
versión open source del sistema X Window
 Primera versión de Xorg Server : X11R6.7.0, basada en XFree86
4.4RC2 y X11R6.6
 Última versión X11R7.3 (o 1.4.0) de septiembre 2007
 Las últimas distribuciones Linux instalan normalmente Xorg
6.1. Arquitectura de X window
Sistema cliente-servidor
 el servidor muestra la aplicación que se está ejecutando en el cliente  servidor/cliente pueden residir en la misma máquina o en máquinas distintas
 El servidor ejecuta el módulo X server
En el cliente se ejecutan aplicaciones que se conectan al servidor
X para visualización
Gestores de ventanas
El servidor permite que las aplicaciones cliente se muestren, pero no proporciona
mecanismos de control de ventanas
necesidad de un gestor de ventanas
proporciona funcionalidades como bordes de ventanas, iconos, escritorios
virtuales, etc.
 existen múltiples gestores de ventanas a elegir por el usuario como
twm, Afterstep, Blackbox, Fluxbox, Enlightenment, XFCE,
Fvwm, Dtvwm, Icewm, Metacity, etc.
Los entornos de escritorio como KDE o GNOME proporcionan tambi
én un conjunto de aplicaciones como gestores de cheros, paneles de
control, etc.
todas mantienen un mismo look-and-feel
Fichero de conguración
El fichero de conguración principal está en /etc/X11 y es XF86Config o
XF86Config-4 para XFree v4 y xorg.conf para Xorg
Fichero dividido en secciones con sintaxis:
Section "Nombre_de_sección "
Opciones
EndSection
las secciones permiten configurar entre otros:
 el monitor y la tarjeta gráca (secciones Monitor, Device y Screen)
 los dispositivos de entrada: teclado, ratón, etc. (secciones InputDevices)
 módulos para OpenGL, DRI (Direct Rendering Infrastructure )
etc. (sección Modules)
 ficheros necesarios: módulos, base de datos RGB, fuentes (sección
Files) dispositivos de entrada/salida que se usarán en la sesión (sección
ServerLayout)
Para más información ver man XF86config-4 o man xorg.conf
Este fichero puede modificarse a mano, o usando herramientas de configuración como:
XF86Setup, xf86cfg o xorgcfg: herramienta de conguración gráca
xf86config o xorgconfig herramienta de conguración en modo texto
xvidtune ajuste fino de la imagen
en Debian dpkg-reconfigure xserver-xfree86 o dpkg-reconfigure
xserver-xorg
Para obtener información sobre el servidor X que está ejecutándose: xdpyinfo
6.2. Inicio de X
Hay varias formas de iniciar una sesión X11:
Iniciar sólo el servidor (comando X) y después las aplicaciones
Iniciar el entorno (servidor + gestor de ventanas): comando startx
Correr un Display Manager como XDM
Comando startx
El comando startx es un script que:
fija variables, como el gestor de ventanas a utilizar y llama al comando xinit que inicializa el sistema X Window
startx usa los siguientes ficheros para establecer la conguración:
$HOME/.xinitrc (en Debian $HOME/.xsession) para determinar el
cliente a usar (entorno de escritorio, gestor de ventanas, etc.)
si no existe, se usa /etc/X11/xinit/xinitrc que suele llamar a
/etc/X11/Xsession o Xclient
$HOME/.xserverrc que especifica la forma de llamar al servidor X
si no existe, se usa /etc/X11/xinit/xserverrc
Display managers
Un display manager permite realizar la autenticación del usuario en modo
gráco
El DM por defecto de XFree86 es XDM
Los entornos KDE y GNOME tienen sus propios DM: KDM y GDM
respectivamente
Cada DM tiene sus propios cheros y herramientas de conguración:
el fichero de configuracion de XDM es /etc/X11/xdm/xdm-config
 el chero de conguración de GDM es /etc/gdm/gdm.conf y puede
configurarse mediante el comando gdmsetup
6.3. Ejecución remota de clientes
Para poder ejecutar un cliente X remoto es necesario dar autorización en el
servidor:
X soporta diferentes mecanismos de autorización
el control de acceso es usualmente inicializado por el display manager
Mecanismos de autorización básicos.
 el más simple es mediante el comando xhost
 otra opción es mediante MIT-MAGIC-COOKIE-1 o XDM-AUTHORIZATION-
1 y el comando xauth
 ssh también permite conexiones X seguras
 Mejor opción: conectarse mediante Display Manager y usar
ssh para correr aplicaciones X remotas
 Para más información:
 página de manual de Xsecurity (XFree) y xauth
Remote X Apps mini-HOWTO
Comando xhost
Permite controlar el acceso a un servidor X
Sintaxis:
xhost [[+-] sistemas_remotos ]
Sin opciones muestra el estado de las autorizaciones
+ da permisos y - los quita
Problema: los permisos se establecen por máquina, no por usuario
todos los usuarios del sistema remoto tienen acceso al servidor X
para dar acceso por usuario usar xauth o ssh
Ejemplo
$ xhost + jumilla montilla
jumilla being added to access control list
montilla being added to access control list
$ xhost
access control enabled, only authorized clients can
connect
INET:jumilla
INET:montilla
$ xhost +
access control disabled, clients can connect from any
host
$ xhost -
access control enabled, only authorized clients can
connect
En el cliente tenemos que indicarle quien es el servidor, mediante la
variable DISPLAY
$ export DISPLAY=servidor:0.0
El formato es:
DISPLAY=Nombre_o_IP :display.screen
 si sólo un usuario está usando el servidor X display es 0
 screen sólo se usa en entornos multipantalla
 También se puede lanzar la aplicación cliente como:
xcliente -display Nombre_o_IP :display.screen
XDMCP
El protocolo XDMCP (X Display Manager Control Protocol ) permite acceder
directamente al Display Manager desde un sistema remoto
el DM debe estar configurado adecuadamente para soportar XDMCP
XDMCP usa UDP puerto 177
desde el sistema remoto ejecutar, simplemente:
# X -query server_name
Puede buscar en la red local un servidor corriendo XDMCP
# X -broadcast
Puede utilizarse mediante un selector, que nos muestra una lista de
hosts corriendo XDMCP a los que conectarnos
# X -indirect server_name
Para más informacion ver el XDMCP HOWTO