%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
%                       Legal Notice                            %
%                                                               %
% This document is copyright (C) Olaf Kirch, okir@monad.swb.de  %
%                                                               %
% For copying conditions, please refer to the file COPYING.     %
%                                                               %
% The author is not liable for any damages, direct or indirect, %
% resulting from the use of information provided in this        %
% document.                                                     %
%                                                               %
% Spanish translation by Pedro Soria-Rodriguez,                 %
% sorrodp@ece.wpi.edu, December 8, 1996.                        %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% When viewing this document with vi on an 80-columns screen,   %
% do a ':se nonumber' first.                                    %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
% Traduccion realizada en 8-Diciembre-1996 por:                 %
%   Pedro Soria-Rodriguez <sorrodp@ece.wpi.edu>                 %
% Revisado en 31-Marzo-1997 por:                                %
%   Juan Jose Amor <jjamor@ls.fi.upm.es>                        %
% Revisado en 11-Octubre-1998 por:                              %
%   Juan Jose Amor <jjamor@ls.fi.upm.es>                        %
% Revisado en 22-Marzo-1999 por:                                %
%   Juan Jose Amor <jjamor@ls.fi.upm.es>                        %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
%               S T A R T   O F   C H A P T E R                 %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Warning - these are not _all_ occurences of UUCPLIBDIR. There
% are more references to it in verbatim environments.
\def\uucplib{\file{/usr/lib/uucp}}
\def\uucpspool{\file{/var/spool/uucp}}
\def\publicspool{\file{/var/spool/uucppublic}}
\def\pubdir{\file{uucppublic}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Administraci\'on de Taylor UUCP}
\label{uucp}
\index{configurar!UUCP|(}
\index{UUCP|(}


\section{Historia}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Versiones de UUCP, y \linux{} vienen con BNU.                 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

UUCP fue dise\~nado a finales de los a\~nos setenta por Mike Lesk en los
laboratorios Bell de AT\&T con el objetivo de crear una simple red sobre
l\'{\i}neas de tel\'efonos para conectarse mediante llamadas telef\'onicas.  Dado
que la mayor\'{\i}a de la gente que quiere tener correo electr\'onico y
noticias de Usenet en sus ordenadores personales todav\'{\i}a se comunican
por m\'odem, UUCP ha seguido siendo muy popular.  Aunque hay muchas
implementaciones funcionando en una gran variedad de plataformas
y sistemas operativos, todas son bastante compatibles.


Sin embargo, como con cualquier programa que se ha convertido en
``est\'andar'' con el tiempo, no hay un UUCP que se pueda denominar
\emph{el} UUCP.  Ha sufrido un continuo proceso de evoluci\'on desde la
primera versi\'on que fue implementada en 1976.  En la actualidad hay
dos especies principales que se diferencian principalmente en su
soporte del {\it hardware} y en su configuraci\'on.  A su vez, hay varias
implementaciones de estas dos clases, todas con ligeras diferencias
respecto a sus familiares.


\index{UUCP!Versi\'on 2}
Una de las clases es la llamada ``UUCP Versi\'on 2'', que es una
implementaci\'on de 1977 de Mike Lesk, David A. Novitz, y Greg Chesson.
Aunque es bastante antigua, todav\'{\i}a se usa frecuentemente.  Las 
implementaciones m\'as recientes de la Versi\'on 2 ofrecen muchas de las
caracter\'{\i}sticas de los tipos m\'as nuevos de UUCP.


\index{UUCP!HDB}
\index{UUCP!BNU}
\index{Utilidades B\'asicas de Red|see {UUCP, HDB}}
\index{HoneyDanBer|see {UUCP, HDB}}
\index{HDB|see {UUCP, HDB}}
\index{BNU|see {UUCP, HDB}}
La segunda clase de UUCP se desarroll\'o en 1983, y se conoce com\'unmente
como BNU (Utilidades B\'asicas de Red)\footnote{
  N. del T.: BNU son las siglas de Basic Network Utilities.
},  HoneyDanBer UUCP, o HDB abreviado.  El nombre fue derivado de los
nombres de los autores,  P.~Honeyman, D.~A.Novitz, y B.~E.~Redman.
HDB fue creado para eliminar algunas deficiencias de la Versi\'on 2.  
Por ejemplo, se a\~nadieron nuevos protocolos de transferencia,
y el directorio de cola fue dividido de manera que ahora s\'olo haya
un directorio para cada ordenador con el que mantega tr\'afico de UUCP.


\index{UUCP!Taylor}
\index{Taylor, Ian}
La implementaci\'on de UUCP que se distribuye con \linux{} es Taylor 
UUCP~1.04,\footnote{
  Escrito por Ian Taylor en 1993.
% Puede contactar con Ian Taylor en \email{ian@airs.com}.
} que es la versi\'on en la que se basa este cap\'{\i}tulo.  La versi\'on 1.04
de Taylor UUCP esta disponible desde Febrero de 1993.  Ademas de los
tradicionales ficheros de configuraci\'on, Taylor UUCP tambien se puede
compilar para que use ficheros de configuraci\'on de un nuevo 
estilo: el estilo ``Taylor''.


La versi\'on 1.05 ha aparecido recientemente, y pronto se incluir\'a
en la mayor\'{\i}a de las distribuciones.  Las diferencias entre estas
versiones afectan en su mayor parte a aspectos que usted nunca usar\'a,
as\'{\i} que con lo poco que contamos aqu\'{\i} le deber\'{\i}a
bastar para configurar Taylor UUCP~1.05 en su sistema.


Tal y como se incluye en la mayor\'{\i}a de las distribuciones de \linux{},
el Taylor UUCP viene compilado para ser compatible con BNU, con
el estilo de configuraci\'on de Taylor, o ambos.  Dado que el segundo 
es mucho m\'as flexible, y probablemente mas f\'acil de entender que los
usualmente oscuros ficheros de configuraci\'on de BNU, describir\'e
aqu\'{\i} el estilo Taylor.


El prop\'osito de este cap\'{\i}tulo no es ofrecer una explicaci\'on exhaustiva
de las opciones de la l\'{\i}nea de comando para los comandos de UUCP y lo
que hacen, sino darle una introducci\'on sobre c\'omo poner en marcha 
un nodo de UUCP.  La primera secci\'on presenta una introducci\'on
de c\'omo UUCP implementa ejecuci\'on remota y transmisi\'on de ficheros.
Si usted tiene ya algunos conocimientos de UUCP, quiz\'a desee saltarse esto y
continuar con la secci\'on~``\ref{uucp.config.files}'', que explica los
distintos ficheros usados para configurar UUCP.


Sin embargo, asumiremos que usted est\'a familiarizado con los
programas de usuario del paquete UUCP.  \'Estos son \prog{uucp} y
\prog{uux}. Si no los conoce suficientemente, consulte las
correspondientes p\'aginas de manual.


Aparte de los programas de usuario, \prog{uux} y
\prog{uucp}, el paquete UUCP contiene algunos comandos m\'as, usados
solamente para fines administrativos.  Se usan para observar el 
tr\'afico de UUCP en su nodo, deshacerse de viejos ficheros de registro,
o crear estad\'{\i}sticas.  No describiremos ninguna de estas utilidades,
porque son perif\'ericas a las tareas principales de UUCP.  Dichas
utilidades est\'an bien documentadas y son bastante f\'aciles de entender.
Sin embargo, hay una tercera categor\'{\i}a, que forma los 
``motores'' del UUCP.  \'Estas son \prog{uucico} (donde 
``cico'' significa ``copy-in copy-out''), y \prog{uuxqt}, que ejecuta trabajos
enviados desde sistemas remotos.

% Taylor UUCP 1.04 soporta conexiones serie (directas o v\'{\i}a m\'odem)
% y conexiones TCP/IP, y tiene controladores para los protocolos
% tradicionales g, e, f, y t, as\'{\i} como para un par de nuevos protocolos.
% Todos esos ser\'an tratados m\'as adelante en este cap\'{\i}tulo.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{M\'as Informaci\'on Sobre UUCP}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Aquellos que no encuentren todo lo que necesiten en este cap\'{\i}tulo
pueden leer la documentaci\'on que viene con el paquete.  Viene en
un grupo de ficheros de {\tt texinfo} que describen la configuraci\'on usando
el estilo de configuraci\'on de Taylor.  Los ficheros texinfo se pueden
convertir a DVI y a ficheros ``GNU info'' usando \prog{tex} y
\prog{makeinfo} respectivamente.


\index{HOWTO!UUCP}
Si quiere usar ficheros de configuraci\'on de BNU o incluso de la
Versi\'on~2 (!), existe un libro muy recomendable, ``Managing UUCP 
and Usenet'' (\cite{reilly-uucp}).  Es muy \'util.  Otra buena fuente
de informaci\'on sobre UUCP en Linux es el UUCP-HOWTO de Vince Skahan,
que aparece regularmente en \ngrp{comp.os.linux.announce}.


Tambi\'en hay un grupo de noticias sobre UUCP, llamado \ngrp{comp.mail.uucp}.
Si usted tiene preguntas espec\'{\i}ficas sobre Taylor UUCP, puede que sea
mejor que las pregunte en ese grupo, en vez de en los grupos
\ngrp{comp.os.linux}.


% Hay una lista de correo para usuarios de Taylor UUCP.  Para suscribirse
% (o dejarla), env\'{\i}e un correo a \email{taylor-uucp-request@gnu.ai.mit.edu}.
% Tenga en cuenta que este correo es procesado por un ser humano.  Para
% escribir un mensaje a la lista, simplemente env\'{\i}elo a
% \email{taylor-uucp@gnu.ai.mit.edu}.  Los informes sobre errores tambi\'en
% se pueden enviar a esta lista.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introducci\'on}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Disposici\'on de Transferecias de UUCP y Ejecuci\'on Remota}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Una peque\~na introducci\'on sobre trabajos, colas de ficheros	%
% y 'grading'							%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{uucp.intro.grades}

\index{UUCP!trabajo}
El concepto de \emph{trabajos} es vital para entender el UUCP.
Cada transferencia que un usuario inicia con \prog{uucp} o \prog{uux}
se denomina un trabajo.  Se compone de un \emph{comando} para ser
ejecutado en un sistema remoto, y una colecci\'on de \emph{ficheros} para
ser transferidos entre redes.  Una de estas partes puede faltar.


Por ejemplo, el siguiente comando describe un trabajo UUCP, que
conlleva copiar el fichero \file{netguide.ps} en el ordenador
\host{pablo}, y ejecutar luego el comando \prog{lpr} para imprimir el
fichero.

\begin{tscreen}
\begin{verbatim}
$ uux -r pablo!lpr !netguide.ps
\end{verbatim}
\end{tscreen}


\index{UUCP!directorio de cola}
Generalmente UUCP no llama al sistema remoto inmediatamente para
ejecutar el trabajo (se puede hacer con \prog{kermit}).  En lugar de esto,
UUCP guarda la descripci\'on del trabajo temporalmente. Esto se denomina
\emph{spooling}.\footnote{
  N. del T.: \emph{spooling} puede traducirse por ``poner en una cola''.
  Spooling se refiere a la acci\'on de poner varios trabajos en una cola
  para ser usados m\'as tarde.
}  El arbol de directorios en el que se almacenan los trabajos
se llama \emph{directorio de cola}, y se encuentra normalmente en
\uucpspool.  En nuestro ejemplo, la descripci\'on del trabajo contendr\'{\i}a
informaci\'on sobre el comando remoto que hay que ejecutar (\prog{lpr}),
el usuario que ha iniciado la ejecuci\'on, y otro par de cosas.  Ademas
de la descripci\'on del trabajo, UUCP tiene que guardar el fichero de datos
\file{netguide.ps}.


La localizaci\'on exacta y la nomenclatura de los ficheros de cola puede
variar, dependiendo de las opciones de compilaci\'on. Los UUCPs que
son compatibles
con HDB generalmente guardan los ficheros de cola en un directorio llamado
\uucpspool\file{/\var{m\'aquina}}, donde \var{m\'aquina} es el nombre
del ordenador
remoto.  Si fue compilado para usar ficheros de configuraci\'on de Taylor,
UUCP crea subdirectorios bajo el directorio de cola espec\'{\i}fico a un
ordenador para diferentes tipos de ficheros de cola.


En intervalos regulares UUCP se conecta al sistema remoto.  Cuando
se ha establecido una conexi\'on, UUCP transfiere
los ficheros que describen el trabajo, junto con los ficheros de datos.
Los trabajos que entran en el ordenador remoto no se ejecutan de 
inmediato, sino despues de que la conexi\'on haya finalizado.  Esto
lo hace \prog{uuxqt}, que tambi\'en se ocupa de reenviar cualquier
trabajo que est\'e designado para otro ordenador diferente.



\index{UUCP!prioridades}
\index{UUCP!nivel de cola}
\index{UUCP!trabajo}
Para diferenciar trabajos importantes y trabajos menos importantes, UUCP
asocia un \emph{nivel} a cada trabajo.  El nivel es una sola letra o
d\'{\i}gito,
de {\em 0} a {\em 9}, de {\em A} a {\em Z} y de {\em a} a {\em z},
con precedencia decreciente.  El correo
se suele poner en cola con nivel B o C, mientras que las noticias se
suelen poner con nivel N.  Los trabajos con un nivel m\'as alto se
transfieren m\'as pronto.  Los niveles pueden ser asignados usando la
opci\'on \option{-q} cuando se ejecuta \prog{uucp} o \prog{uux}.


Tambi\'en se puede prohibir la transferencia de trabajos bajo 
un cierto nivel a horas determinadas.  Esto tambi\'en se llama
\emph{m\'aximo nivel de cola} permitido durante una conversaci\'on
y el valor por defecto es~{\em z}.  Perc\'atese de la ambig\"uedad
de esta terminolog\'{\i}a: un fichero se transfiere s\'olo si
es \emph{igual o mayor} que el m\'aximo nivel de cola.


\subsection{El Funcionamiento Interno de \prog{uucico}}
\label{uucico.connect}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Esta secci\'on le introduce a la manera en que uucico se	%
% conecta a un sistema y lleva a cabo la tranferencia de	%
% ficheros.  Esta informaci\'on no es necesariamente completamente%
% precisa.							%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!uucico@\prog{uucico}|(}

\blackdiamond
Para comprender por qu\'e \prog{uucico} necesita saber ciertas cosas,
hemos de revisar c\'omo se conecta a un sistema remoto.


Cuando usted ejecuta \prog{uucico -s \var{sistema}} desde la l\'{\i}nea
de comandos, primero tiene que conectarse f\'{\i}sicamente.  Las acciones a
tomar dependen del tipo de conexi\'on a usar~-- por ejemplo, cuando se usa una
l\'{\i}nea telef\'onica, tiene que encontrar un m\'odem, y marcar un n\'umero
de tel\'efono.  Sobre TCP, tiene que llamar \func{gethostbyname(3)} para
convertir el nombre a una direcci\'on de red, averiguar qu\'e puerto abrir,
y conectar la direcci\'on al puerto correspondiente.


\index{UUCP!maestro}
\index{UUCP!esclavo}
Una vez que se ha establecido la conexi\'on, hay que pasar un proceso
de autorizaci\'on.  Normalmente consiste en que el sistema remoto
pide un nombre de usuario y posiblemente una clave.  Esto se llama
el \emph{di\'alogo de entrada}.  El proceso de autorizaci\'on se lleva
a cabo mediante el usual \prog{getty}/\prog{login}, o ~-- en conexiones
 TCP~-- por el propio \prog{uucico}.  Si la autorizaci\'on es permitida,
la parte remota de la conexi\'on ejecuta \prog{uucico}.  La copia local
de \prog{uucico} que inici\'o la conexi\'on se denomina  \emph{maestro},
y la copia remota se denomina \emph{esclavo}.


\index{UUCP!comprobaci\'on de la secuencia de llamada}
\index{UUCP!handshake}
\index{UUCP!negociaci\'on}
\index{UUCP!protocolo}
A continuaci\'on viene la \emph{fase de negociaci\'on}\footnote{
  N. del. T.: Literalmente, del ingl\'es {\it handshake} o ``apret\'on de manos''. En este contexto significa ``negociaci\'on de protocolos'', fase en la
que los programas \prog{uucico} de cada extremo de comunicaci\'on deciden
qu\'e protocolo com\'un usar para enviar los ficheros.
  }:  El maestro env\'{\i}a su nombre, ademas de varias opciones.  El esclavo
comprueba el nombre para ver si tiene permiso para conectarse, para
enviar y recibir ficheros, etc.  Las opciones describen (entre otras cosas)
el nivel m\'aximo de ficheros de cola que hay que transferir.  Si
esta opci\'on est\'a activada, tiene lugar una cuenta de conversaci\'on,
o \emph{comprobaci\'on de la secuencia de llamada}.  Con esta caracter\'{\i}stica,
ambos ordenadores mantienen una cuenta de conexiones exitosas, que se 
comparan.  Si las cuentas no son iguales, la negociaci\'on de
protocolos no tendr\'a lugar. Esto es \'util para protegerse de
impostores.


Finalmente los dos \prog{uucico} tratan de ponerse de acuerdo en un
\emph{protocolo de transferencia} com\'un.  Este protocolo gobierna la
manera en que los datos se transfieren, la manera en que se comprueba
la consistencia de los datos, y la manera en que se retransmiten en
caso de error.  Hacen falta protocolos diferentes debido a los diferentes
tipos de conexiones que se soportan.  Por ejemplo, las l\'{\i}neas de telefono
precisan un protocolo ``seguro'' que es pesimista respecto a errores,
mientras que una transmisi\'on de TCP es fiable y puede usar un protocolo
m\'as eficiente que carece de la mayor\'{\i}a de las comprobaciones de errores.


Una vez que las negociaciones se han completado, comienza la fase de la
verdadera transmisi\'on.  Ambos extremos ponen en funcionamiento
el controlador del protocolo elegido.  Los controladores posiblemente
lleven a cabo alguna secuencia espec\'{\i}fica del protocolo para la
inicializaci\'on.


Primero el maestro env\'{\i}a todos los ficheros en la cola de este sistema
remoto cuyo nivel de cola es suficientemente alto.  Cuando ha finalizado,
informa al esclavo que ha terminado, y que el esclavo puede ahora colgar.
El esclavo puede entonces colgar, o tomar el control de la conversaci\'on.
Esto es un cambio de papeles: ahora el sistema remoto se convierte en
maestro y el local en esclavo.  El nuevo maestro env\'{\i}a ahora sus 
ficheros.  Cuando ha terminado, ambos \prog{uucico}s intercambian 
mensajes de terminaci\'on, y cierran la comunicaci\'on.


No vamos a profundizar en m\'as detalle: para esto, dir\'{\i}jase a las
fuentes o a cualquier buen libro sobre UUCP.  Tambien existe un art\'{\i}culo
muy antiguo en la red, escrito por David A. Novitz, que 
da una descripci\'on detallada del protocolo UUCP.  La FAQ\footnote{
  N. del T.: Del ingl\'es {\it Frecuently Asked Questions} o Lista de
Preguntas Comunes.
  } de Taylor UUCP tambi\'en trata algunos detalles de c\'omo UUCP esta
implementado.  Se puede encontrar regularmente en \ngrp{comp.mail.uucp}.


\subsection{Opciones de la l\'{\i}nea de comandos de \prog{uucico}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Introduce uucico y sus amigos...				%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!uucico@\prog{uucico}}
\index{uucico@\prog{uucico}}
\index{UUCP!marcaci\'on de la llamada}
\index{UUCP!registro de actividad y resoluci\'on de problemas}
\index{resoluci\'on de problemas!configuraci\'on de UUCP}

En esta secci\'on de describen las opciones m\'as importantes de la l\'{\i}nea
de comandos del programa \prog{uucico}.  Para obtener una lista completa,
consulte la p\'agina del manual de \file{uucico(1)}.


\begin{dispitems}
\ditem[\option{-s \var{sistema}}]
	Llamar al mencionado \var{sistema} si no est\'a prohibido por
	restricci\'on de la hora de llamada.

\ditem[\option{-S \var{sistema}}]
        Llamar al \var{sistema} incondicionalmente.

\ditem[\option{-r1}]
	Comenzar \prog{uucico} en modo master.  Este es el valor por
	defecto cuando se usa \option{-s} o \option{-S}.  Por s\'{\i} sola,
	la opci\'on \option{-r1} hace que \prog{uucico} intente llamar
	todos los sistemas en \file{sys}, a no ser que est\'e prohibido
	por la hora de llamada o el n\'umero permitido de reintentos.

\ditem[\option{-r0}]
	Comenzar \prog{uucico} en modo esclavo.  Este es el valor por
	defecto cuando no se usan \option{-s} ni \option{-S}.  En modo
	esclavo, las entrada y salida est\'andar se suponen conectadas
	a un puerto serie, o al puerto de TCP especificado por la opci\'on
	\option{-p} si se usa \'esta.

\ditem[\option{-x \var{tipo}}, \option{-X \var{tipo}}]
	Activar la informaci\'on para resolver problemas del tipo 
	especificado.  Se pueden especificar varios tipos en una
	lista separada por comas.  Los siguientes son tipos v\'alidos:
        \keyword{abnormal}, \keyword{chat}, \keyword{handshake},
        \keyword{uucp-proto}, \keyword{proto}, \keyword{port},
        \keyword{config}, \keyword{spooldir}, \keyword{execute},
        \keyword{incoming} y \keyword{outgoing}.  Usando \keyword{all},
	todas las opciones se activan.  Por razones de compatibilidad
	con otras implementaciones de UUCP, se puede especificar un
	n\'umero en vez del tipo, lo cual activa las \var{n} primeras
	opciones de la anterior lista.


	Los mensajes generados se registran en el fichero \file{Debug}
	bajo \uucpspool.

\end{dispitems}


\index{UUCP!uucico@\prog{uucico}|)}

\section{Ficheros de configuraci\'on de UUCP}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
% Una descripci\'on de todos los ficheros de configuraci\'on de     %
% HoneyDanBer							%
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\namedlabel{uucp.config.files}{Ficheros de configuraci\'on de UUCP}

Al contrario que programas de transferencia de ficheros m\'as simples,
UUCP fue dise\~nado para ser capaz de llevar a cabo todas las
tranferencias autom\'aticamente.  Una vez que est\'a correctamente
configurado, no es necesaria una constante participaci\'on del
administrador.  La informaci\'on necesaria para esto se guarda en
un par de \emph{ficheros de configuraci\'on} que residen en el directorio
\uucplib.  La mayor\'{\i}a de estos ficheros se usan s\'olo para conectarse
a otro ordenador.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Una Ligera Introducci\'on a Taylor UUCP}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!ficheros de configuraci\'on|(}

Decir que la configuraci\'on de UUCP es dif\'{\i}cil ser\'{\i}a una descripci\'on
insuficiente.  Es cierto que es un asunto peliagudo, y el formato
a veces demasiado conciso de los ficheros de configuraci\'on no hace
las cosas m\'as f\'aciles (aunque el formato de Taylor es casi f\'acil
de leer comparado con los formatos m\'as antiguos en HDB o Versi\'on~2).


Para darle una idea de c\'omo se interact\'ua con estos ficheros, le
introduciremos
los m\'as importantes, y echaremos un vistazo a algunos ejemplos.  No
explicaremos ahora todo en detalle; una explicaci\'on mas precisa se
describe en secciones posteriores.  Si quiere configurar su
ordenador para UUCP, puede comenzar con los ficheros de ejemplo, y 
adaptarlos gradualmente.  Puede elegir los que se muestran a continuaci\'on,
o los que se incluyen en su distribuci\'on de \linux{} preferida.


Todos los ficheros descritos en esta secci\'on se guardan en \uucplib{}
o un subdirectorio de \'este.  Algunas distribuciones de \linux{} 
contienen programas de UUCP que tienen soporte para ambos ficheros
de HDB y Taylor, y usan diferentes subdirectorios para cada
grupo de ficheros de configuraci\'on.  Normalmente hay un fichero
\file{README} en \uucplib.


Para que UUCP funcione correctamente, estos ficheros tienen que 
pertenecer al usuario \user{uucp}.  Algunos de ellos tienen claves
y n\'umeros de tel\'efono, y por lo tanto deber\'{\i}an tener permisos de 600.
\footnote{
  Aunque la mayor\'{\i}a de los comandos de UUCP tienen que tener el 
  setuid a \user{uucp}, tiene que asegurarse de que el programa \prog{uuchk}
  \emph{no} lo es.  Si no, los usuarios ser\'{\i}an capaces de ver las claves
  aunque tengan modo 600.
}


El fichero central de configuraci\'on es \uucplib\file{/config}, y se
usa para establecer los par\'ametros generales.  El m\'as importante
de ellos (y por ahora, el \'unico), es el nombre de su ordenador
anfitri\'on de UUCP.  En la Cervecera Virtual, se usa \host{vstout}
como su ordenador de conexi\'on a UUCP.


\begin{tscreen}
\begin{verbatim}
# /usr/lib/uucp/config - Fichero principal de configuracion de UUCP
hostname         vstout
\end{verbatim}
\end{tscreen}


El siguiente fichero de configuraci\'on en importancia es el fichero
\file{sys}.  \'Este contiene toda la informaci\'on espec\'{\i}fica al sistema
de los ordenadores con los que usted se conecta.  Esto incluye
el nombre del ordenador, e informaci\'on sobre la propia conexi\'on, tal
como el n\'umero de tel\'efono cuando se usa una conexi\'on por m\'odem.
Un ejemplo t\'{\i}pico para un ordenador llamado \host{pablo} que se conecta
por m\'odem ser\'{\i}a:


\begin{tscreen}
\begin{verbatim}
# /usr/lib/uucp/sys - Vecinos UUCP
# system: pablo
system          pablo
time            Any
phone           123-456
port            serial1
speed           38400
chat            ogin: neruda ssword: lorca
\end{verbatim}
\end{tscreen}


\keyword{port} especifica el puerto a usar, y \keyword{time} especifica
las horas a las que se puede llamar a ese ordenador.  \keyword{chat}
describe la macro del di\'alogo de entrada~-- la secuencia de caracteres
que hay que intercambiar para permitir a \prog{uucico} que conecte
con \host{pablo}.  Volveremos a las macros m\'as tarde.  El comando
\keyword{port} no usa un nombre de fichero de un dispositivo como 
\file{/dev/cua1}, sino que usa el nombre de una entrada en el fichero
\file{port}.  Se pueden asignar estos nombres como se desee siempre 
y cuando hagan referencia a una entrada v\'alida en \file{port}.


El fichero \file{port} contiene informaci\'on espec\'{\i}fica a la propia
conexi\'on.  Para conexiones por m\'odem, describe el fichero de dispositivo
a usar, el conjunto de velocidades soportadas, y el tipo de equipo
de marcaci\'on conectado al puerto.  La entrada a continuaci\'on describe
\file{/dev/cua1} (o sea, el puerto COM 2), en el cual hay un m\'odem NakWell
conectado que es capaz de funcionar a velocidades de hasta 38400 bps.
El nombre de la entrada se puede elegir para que coincida con el
nombre usado en el fichero \file{sys}.


\begin{tscreen}
\begin{verbatim}
# /usr/lib/uucp/port - puertos de UUCP
# /dev/cua1 (COM2)
port            serial1
type            modem
device          /dev/cua1
speed           38400
dialer          nakwell
\end{verbatim}
\end{tscreen}


La informaci\'on que afecta al propio marcador se mantiene en otro fichero,
llamado \file{dial}.  Para cada tipo de marcador, contiene b\'asicamente
la secuencia de comandos necesarios para llamar a otro ordenador,
dado el n\'umero de tel\'efono.  Una vez m\'as, esto se especifica como
una macro de di\'alogo.  Por ejemplo, la entrada para el anterior NakWell
puede parecerse a esta:


\begin{tscreen}
\begin{verbatim}
# /usr/lib/uucp/dial -  informacion por marcador.
# NakWell modems
dialer          nakwell
chat            "" ATZ OK ATDT\T CONNECT
\end{verbatim}
\end{tscreen}


La l\'{\i}nea que empieza con \keyword{chat} especifica el di\'alogo del m\'odem,
que no es sino la secuencia de comandos enviados y recibidos del m\'odem
para inicializarlo, y para hacerle marcar el n\'umero deseado.  La
secuencia ``\keyword{\bs T}'' ser\'a reemplazada con el n\'umero de tel\'efono
por el programa \prog{uucico}.


\begin{figure}[tbp]
\iftex
 \ifps
  \begin{center}
   \mbox{\epsffile{figures/uucp.epsf}}
  \end{center}
 \else
  \begin{center}
   \input{uucp.eepic}
  \end{center}
 \fi
\else
\fi
\caption{
 \label{uucp.fig.files}
 Interacciones de los Ficheros de Configuraci\'on de Taylor UUCP.
}
\end{figure}

Para darle una idea a grandes rasgos de c\'omo \prog{uucico} utiliza
estos ficheros de configuraci\'on, suponga que utiliza el comando


\begin{tscreen}
\${} uucico -s pablo
\end{tscreen}

\noindent
en la l\'{\i}nea de comandos.  Lo primero que \prog{uucico} hace es 
buscar \host{pablo} en el fichero \file{sys}.  A partir de la entrada
en el fichero \file{sys} para \host{pablo}, el programa ve que deber\'{\i}a
usar el puerto \keyword{serial1} para establecer la conexi\'on.  El fichero
\file{port} le dice que ese puerto es un puerto de m\'odem, y que tiene
un m\'odem NakWell conectado.


\prog{uucico} busca ahora en \file{dial} la entrada que describe
el m\'odem NakWell, y al encontrar una, abre el puerto serie \file{/dev/cua1}
y ejecuta el di\'alogo de marcaci\'on.  Esto es, env\'{\i}a ``\term{ATZ}'',
espera a que el m\'odem responda con ``\term{OK}'', etc.  Cuando 
se encuentre los caracteres ``\keyword{\bs T}'', sustituye el
n\'umero de tel\'efono (123--456) obtenido del fichero \file{sys}.


Cuando el m\'odem devuelve \term{CONNECT}, la conexi\'on se ha establecido,
y el di\'alogo de marcaci\'on se ha completado.  \prog{uucico}  ahora 
vuelve al fichero \file{sys} y ejecuta el di\'alogo de entrada.  En nuestro
ejemplo, esperar\'{\i}a la pregunta ``\term{login:}'',  enviar\'{\i}a su
nombre de usuario (\term{neruda}),  esperar\'{\i}a la pregunta
``\term{password:}'', y enviar\'{\i}a la clave, ``\term{lorca}''.


Tras completar la autorizaci\'on, se suponde que el sistema remoto
ejecuta su propio \prog{uucico}.  Los dos entrar\'an entonces en
la fase de negociaci\'on de protocolos descrita en la secci\'on anterior.


La relaci\'on de dependencia de los ficheros de configuraci\'on 
se puede ver en la figura~\ref{uucp.fig.files}.


\index{UUCP!ficheros de configuraci\'on|)}



\subsection{Lo que UUCP necesita saber}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Ayuda para configurar su m\'odem y encontrar la informacion     %
% necesaria para conectar con otro ordenador			%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{uucp.starting.parameters}

Antes de empezar a escribir los ficheros de configuraci\'on, debe
conseguir cierta informaci\'on que UUCP necesita.


Primero tiene que saber en qu\'e dispositivo serie est\'a su m\'odem.  
Normalmente, los puertos (de DOS) COM1 hasta COM4 se corresponden con
los ficheros de dispositivos \file{/dev/cua0} hasta \file{/dev/cua3}.
La mayor\'{\i}a de las distribuciones, como Slackware, crean un enlace
simb\'olico \file{/dev/modem} al fichero de dispositivo donde esta
el m\'odem, y configuran \prog{kermit}, \prog{seyon}, etc, para que usen
este fichero.  En este caso, usted tambi\'en deber\'{\i}a usar usar \file{/dev/modem}
en la configuraci\'on de UUCP.


La raz\'on para esto es que todos los programas, para llamar por tel\'efono,
usan unos \emph{ficheros cerrojo} para indicar cu\'ando un puerto serie
est\'a en uso.  Los nombres de estos ficheros cerrojo son una concatenaci\'on
del texto \file{LCK..} y el nombre del fichero de dispositivo, por
ejemplo, \file{LCK..cua1}.  Si los programas usasen nombres diferentes
para un mismo dispositivo, no podr\'{\i}an reconocer los ficheros cerrojo 
de los otros programas.  En consecuencia, perturbar\'{\i}an la sesi\'on de
conexi\'on de cada uno si se ejecutan a la vez.  Esto no es raro que
ocurra cuando organiza sus llamadas de UUCP usando una entrada en
el fichero \file{crontab}.


Para obtener m\'as detalles sobre c\'omo configurar sus puertos serie,
lea el cap\'{\i}tulo~\ref{serial}.


A continuaci\'on tiene que averiguar a qu\'e velocidad se comunicar\'an 
su m\'odem y \linux{}.  Tendr\'a que ajustar este valor a la velocidad
de transferencia efectiva m\'axima que espere obtener.  La velocidad
efectiva puede ser mucho mayor que la velocidad f\'{\i}sica de tranferencia
de su m\'odem.  Por ejemplo, muchos modems env\'{\i}an y reciben datos a
2400bps (bits por segundo).  Usando protocolos de compresi\'on como 
V.42bis, la velocidad real de transferencia puede alcanzar los 9600bps.


Por supuesto, si quiere que UUCP sirva de algo, necesitar\'a el
n\'umero de tel\'efono al que llamar.  Tambi\'en necesitar\'a un nombre de
usuario v\'alido y probablemente una clave en el sistema remoto.\footnote{
  Si solo quiere probar UUCP, obtenga el n\'umero de un sistema cercano
  a usted.  Apunte el nombre de usuario y la clave~-- son p\'ublicos
  para permitir posibles transferencias an\'onimas.  En la mayor\'{\i}a
  de los casos, son algo como \user{uucp/uucp} o \user{nuucp/uucp}.
}


\index{UUCP!entrada al sistema}
Tambi\'en necesitar\'a saber \emph{exactamente} c\'omo entrar en el sistema.
Por ejemplo, ?`tiene que pulsar la tecla BREAK antes de que aparezca
la pregunta
de nombre de usuario?.  ?`Muestra el sistema remoto un \term{login:} o
\term{user:}?.  Esto es necesario para escribir la \emph{macro de
di\'alogo}, que es un {\it script} que le dice a \prog{uucico} c\'omo entrar.
Si no lo sabe, o si la macro de di\'alogo normal no funciona, intente
llamar al sistema con un programa como \prog{kermit} o \prog{minicom},
y apunte exactamente lo que tiene que hacer.



\subsection{Nomenclatura de nodos}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Esta seccion trata brevemente la nomenclatura de		%
% los ordenadores y como elegir el nombre de su nodo.		%
%                                                               %
% Unas palabras sobre nomenclatura de dominios deber\'{\i}an		%
% incluirse en la secci\'on sobre correo.  No tiene mucho que	%
% ver con UUCP.							%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{uucp.starting.sitename}
\index{direcci\'on!nombre de nodo UUCP}
\index{elegir!nombre de nodo UUCP}
\index{UUCP!nombre de nodo}
\index{nombre de nodo!UUCP}

Al igual que en redes basadas en TCP/IP, todas las m\'aquinas necesitan
tener un nombre para la red de UUCP.  Mientras s\'olo quiera usar UUCP
para transferencia de ficheros desde y a ordenadores que usted llama
directamente, o en una red local, el nombre no tiene que ajustarse
a ninguna regla.\footnote{
  La \'unica limitaci\'on es que no puede ser m\'as largo que 7~caracteres,
  para no confundir a algunos nodos con sistemas de ficheros que imponen
  un estrecho l\'{\i}mite en los nombres de ficheros.
}


Sin embargo, si usa UUCP para tener una conexi\'on a correo y noticias,
se deber\'{\i}a pensar en registrar el nombre con el proyecto de
Mapa de UUCP, que se describe en el cap\'{\i}tulo~\ref{mail}.
Incluso si usted participa en un dominio, podr\'{\i}a considerar 
el tener un nombre oficial de UUCP para su ordenador.


Frecuentemente la gente elige su nombre de UUCP para que corresponda
con el primer componente de su nombre de dominio completamente
cualificado.  Suponga que la 
direcci\'on de su dominio es \host{swim.twobirds.com}, entonces su
nombre de UUCP podr\'{\i}a ser \host{swim}.  Piense en los nodos de UUCP como
si se conociesen entre ellos por el nombre propio.  Por supuesto,
tambi\'en puede usar un nombre de UUCP completamente desvinculado
de su nombre de dominio, y por consiguiente, un nombre no cualificado.


\index{UUCP!Proyecto de Mapa}
Sin embargo, aseg\'urese de no usar el nombre no cualificado en direcciones
de correo a no ser que lo haya registrado como su nombre de UUCP 
oficial.\footnote{
  El Proyecto de Mapa de UUCP registra todos los nodos de UUCP de todo
  el mundo y comprueba que sean \'unicos.  Para registrar su nombre de UUCP,
  preg\'untele a los responsables del nodo que gestiona su correo; ellos
  podr\'an ayudarle.
} Lo mejor que puede pasar es que el correo dirigido a un nombre de
UUCP no registrado se pierda en alg\'un {\it agujero negro digital}.
Si utiliza un nombre que alguien ya est\'a usando, este correo ser\'a 
dirigido a ese sitio, y le causar\'a al administrador del correo un
sinf\'{\i}n de dolores de cabeza.


Los programas de UUCP usan el nombre devuelto por \prog{hostname} como
el nombre de UUCP por defecto.  Este nombre se encuentra normalmente en
la macro \file{/etc/rc.local}.  Si su nombre de UUCP es diferente del
que le di\'o a su ordenador, tiene que usar la opci\'on \keyword{hostname}
en el fichero \file{config} para indicar a \prog{uucico} su nombre
de UUCP.  Esto se describe a continuaci\'on.


\subsection{Ficheros de configuraci\'on Taylor}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Volvemos ahora a los ficheros de configuraci\'on.  Taylor UUCP obtiene
su informaci\'on de los siguientes ficheros:

\begin{dispitems}
\ditem[\file{config}]
	Este es el fichero principal de configuraci\'on.  Aqu\'{\i}
        puede definir el nombre de UUCP de su ordenador.

\ditem[\file{sys}]
	Este fichero describe todos los nodos conocidos por el sistema.
	Por cada nodo, especifica su nombre, a qu\'e horas llamarlo,
	que n\'umero marcar, que tipo de dispositivo usar, y c\'omo
	entrar.

\ditem[\file{port}]
	Contiene entradas que describen cada puerto disponible, junto
	con la velocidad de l\'{\i}nea soportada y las instrucciones de
	marcaci\'on.

\ditem[\file{dial}] 
	Describe las instrucciones de marcaci\'on usados para establecer
	una conex\'{\i}on telef\'onica.

\ditem[\file{dialcode}] 
	Contiene expansiones simb\'olicas para c\'odigos de marcaci\'on.

\ditem[\file{call}] 
	Contiene el nombre de usuario y la clave a usar cuando llame
	a un sistema. No se suele usar.

\ditem[\file{passwd}] 
	Contiene nombres de usuario y claves que los sistemas pueden
	usar cuando entren en su ordenador.  Este fichero se usa s\'olo
	cuando \prog{uucico} hace su propia comprobaci\'on de claves.

\end{dispitems}


Los ficheros de configuraci\'on de Taylor se componen generalmente
de l\'{\i}neas que contienen pares palabra - valor.  Una almohadilla (\#)
indica un comentario que ocupa toda una l\'{\i}nea.  Para usar una almohadilla
por s\'{\i} misma, puede poner una barra invertida delante de la almohadilla.


Hay unas cuantas opciones que puede ajustar con estos ficheros
de configuraci\'on.  No podemos repasar todos los par\'ametros, sino
que cubriremos s\'olo los m\'as importantes.  Con \'estos usted podr\'a
configurar una conexi\'on de UUCP por m\'odem.  Otras secciones describir\'an
las modificaciones necesarias si quiere usar UUCP en TCP/IP o sobre
una l\'{\i}nea serie.  Junto con el c\'odigo fuente de Taylor UUCP se incluye
una referencia de comandos completa en los documentos Texinfo.


\index{mostrar!configuraci\'on de UUCP}
\index{comprobar!UUCP}
\index{UUCP!comprobar}
Cuando crea que ha configurado su sistema de UUCP completamente, 
puede comprobarlo usando la utilidad \prog{uuchk} (que
se encuentra en \uucplib). \prog{uuchk} lee sus ficheros de configuraci\'on,
e imprime un informe detallado de los valores de configuraci\'on usados
para cada sistema.


\subsection{Opciones Generales de Configuraci\'on~-- el Fichero \file{config}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!fichero de configuraci\'on@fichero \file{config}}
\index{UUCP!nombre de nodo}

Normalmente no usar\'a este fichero para otra cosa que describir su nombre
de nodo UUCP.  Por defecto, UUCP usar\'a el nombre establecido con 
el comando \prog{hostname}, pero generalmente es una buena idea 
configurar el nombre de UUCP expl\'{\i}citamente.  A continuaci\'on mostramos
un fichero de ejemplo:


\begin{tscreen}
\begin{verbatim}
# /usr/lib/uucp/config - fichero principal de configuracion de UUCP
hostname        vstout
\end{verbatim}
\end{tscreen}
 

Por supuesto, tambi\'en existen otros par\'ametros configurables
aqu\'{\i}, como los referentes al nombre del directorio de colas, o
los derechos de acceso para el UUCP an\'onimo. Esto \'ultimo se
describir\'a en una secci\'on posterior.


\subsection{C\'omo informar a UUCP sobre otros sistemas~-- el fichero \file{sys}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Una descripci\'on del fichero systems                           %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{uucp.systems.file}
\index{UUCP!fichero de sistema@fichero \file{sys}}
\index{UUCP!sistema remoto|(}

El fichero \file{sys} describe los sistemas que su ordenador conoce.
Una entrada comienza con la palabra \keyword{system};  las l\'{\i}neas 
siguientes hasta la siguiente \keyword{system} proporcionan detalles
sobre los par\'ametros espec\'{\i}ficos sobre ese sistema o nodo.  Com\'unmente,
una entrada de un sistema definir\'a parametros tales como el n\'umero
de tel\'efono y el di\'alogo de entrada.


Los par\'ametros antes de la primera l\'{\i}nea con \keyword{system} 
determinan los valores por defecto usados para todos los sistemas.
Lo normal es que los par\'ametros de protocolos y similares se 
incluyan en la secci\'on por defecto.


A continuaci\'on se tratan los campos m\'as importantes con cierto detalle.


\subsubsection{Nombre del sistema}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% sistema                                                      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!sistema remoto}
\index{UUCP!nombre de nodo}

El comando \keyword{system} especifica el nombre del sistema remoto.
Tiene que especificar el nombre correcto del sistema remoto, no un 
alias que usted se invente, porque \prog{uucico} lo verificar\'a con
la informaci\'on que reciba del otro sistema una vez se conecte.\footnote{
    Algunas de las versiones 2 de UUCP antiguas no env\'{\i}an su
nombre cuando son llamadas;
    sin embargo, las implementaciones m\'as recientes s\'{\i} lo hacen, y 
    Taylor UUCP tambi\'en.
}


Cada nombre de sistema puede aparecer una sola vez.  Si quiere usar
varias configuraciones para un mismo sistema (por ejemplo, n\'umeros
de tel\'efono diferentes que \prog{uucico} puede usar alternativamente),
puede especificar \emph{alternavias}, que se describen m\'as adelante.


\subsubsection{N\'umero de tel\'efono}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% numero telef\'onico                                             %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!n\'umero de tel\'efono}

Si para conectar con el sistema remoto hace falta una l\'{\i}nea de
tel\'efono,
el campo \keyword{phone} especifica el n\'umero que tiene que marcar
el m\'odem.  Puede incluir varios separadores que son interpretados
por el proceso de marcaci\'on efectuado por \prog{uucico}.  Un signo
igual (=) significa esperar un tono secundario, y un gui\'on genera
una pausa de un segundo.  Por ejemplo, algunas instalaciones de
tel\'efono se atascan si no deja una pausa entre un prefijo de una
compa\~n\'{\i}a y el n\'umero de tel\'efono.


\index{UUCP!fichero dialcode@fichero \file{dialcode}}
Cualquier lista de caracteres se puede usar para esconder informaci\'on
que depende de cada nodo, como el prefijo de provincia.  Estos 
caracteres se traducen en un c\'odigo de marcaci\'on usando el fichero 
\file{dialcode}.  Suponga que tiene el siguiente fichero \file{dialcode}:


\begin{tscreen}
\begin{verbatim}
# /usr/lib/uucp/dialcode - traduccion de codigos de marcacion
Bogoham         024881
Coxton          035119
\end{verbatim}
\end{tscreen}
 

Con estas traducciones, se puede usar un n\'umero de tel\'efono como 
\keyword{Bogoham7732} en el fichero \file{sys}, lo cual hace las
cosas un poco m\'as legibles.



\subsubsection{Puerto y Velocidad}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% velocidad                                                    %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!dispositivo}

Las opciones \keyword{port} y \keyword{speed} se usan para elegir el
dispositivo usado para llamar al sistema remoto, y la velocidad m\'axima
del dispositivo.\footnote{
  La velocidad en baudios del terminal (tty) tiene que ser por lo menos
  igual o mayor que la velocidad m\'axima de transmisi\'on.
}  Una entrada \keyword{system} puede usar cualquiera de las dos opciones
solas, o ambas.  Cuando se busca un dispositivo apropiado en el fichero
\file{port}, s\'olo se eligen aquellos puertos cuyo nombre y/o velocidad
coinciden.


Normalmente es suficiente con usar la opci\'on \keyword{speed}.  Si solo
tiene un dispositivo serie definido en \file{port}, \prog{uucico}, de
cualquier modo, siempre escoger\'a el correcto, as\'{\i} que s\'olo tiene que
especificar la velocidad deseada.  Si tiene varios modems conectados
a su sistema, tampoco es una buena idea nombrar un puerto en particular,
porque si \prog{uucico} encuentra que hay varios puertos con el mismo
nombre, trata de usarlos todos hasta que encuentra uno que no est\'a
en uso.




\subsubsection{El di\'alogo de entrada}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% chat script (di\'alogo de entrada)                              %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!entrada}
\index{UUCP!di\'alogo de entrada}
\index{UUCP!scripts de entrada|(}
\index{script de entrada!UUCP}

Antes ya nos encontramos con la macro del di\'alogo de entrada, que le
dice a \prog{uucico} c\'omo entrar en el sistema remoto.  Consiste de una
lista de palabras clave, que especifican el texto que se espera y el
que se env\'{\i}a por el proceso local de \prog{uucico}.  El objetivo es
hacer que \prog{uucico} espere hasta que la m\'aquina remota env\'{\i}e una
l\'{\i}nea pidiendo el nombre de usuario, y entonces enviar el nombre de
usuario, luego esperar a que pida la palabre clave, y enviar dicha
clave.  Los textos de espera y de env\'{\i}o se dan alternativamente.  
\prog{uucico} autom\'aticamente a\~nade un avance de l\'{\i}nea
(\keyword{\bs r}) a cualquier texto enviado.  Por lo tanto, una macro
de di\'alogo sencilla ser\'{\i}a parecida a esta:

\begin{tscreen}
 ogin: vstout ssword: catch22
\end{tscreen}

D\'ese cuenta de que los campos de texto de espera (\term{ogin:} y 
\term{ssword:}) no contienen el texto completo.  Esto es as\'{\i} para 
asegurarse de que el proceso de entrada se lleve a cabo aunque el
sistema remoto nos env\'{\i}e \term{Login:} en vez de \term{login:}.


\prog{uucico} tambi\'en permite usar estructuras condicionales, por ejemplo
en el caso de que el programa \prog{getty} de la m\'aquina remota
necesite ser reinicializado antes de enviar una pregunta.  Por esta
razon, usted puede a\~nadir un sub-di\'alogo a un texto de espera, separado 
con un gui\'on.  El sub-di\'alogo se ejecuta s\'olo si el primer texto de espera
falla, ej. si expira un temporizador ({\it timeout}).  Una manera de usar esta caracter\'{\i}stica
es enviar un BREAK si el sistema remoto no env\'{\i}a una pregunta de
nombre de usuario.  El siguiente ejemplo muestra un ejemplo de una macro
de di\'alogo que deber\'{\i}a funcionar tambi\'en en el caso de que usted tenga
que pulsar return antes de que aparezca la pregunta de entrada.


\begin{tscreen}
\begin{verbatim}
 "" \n\r\d\r\n\c ogin:-BREAK-ogin: vstout ssword: catch22
\end{verbatim}
\end{tscreen}
 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Tiras de caracteres especiales y caracteres de escape	      %
% soportados por Taylor UUCP 1.03.  Sacado de los ficheros    %
% de texinfo.						      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Hay un par de tiras de caracteres especiales y caracteres de escape
que pueden aparecer en la macro de di\'alogo.  Esta es una lista incompleta
de caracteres legales en la pregunta de espera:


\begin{dispitems}
\ditem[\keyword{\dqt\dqt}]
	La tira vac\'{\i}a.  Le dice a \prog{uucico} que no espere nada,
	sino que siga con la siguiente tira de enviado immediatamente.

\ditem[\keyword{\bs t}]
	Un car\'acter de tabulador.

\ditem[\keyword{\bs r}]
	Un car\'acter de retorno de l\'{\i}nea.

\ditem[\keyword{\bs s}]
	El car\'acter de espacio.  Lo necesitamos para incluir espacios en
	un di\'alogo.

\ditem[\keyword{\bs n}]
	Car\'acter de nueva l\'{\i}nea.

\ditem[\keyword{\bs\bs}]
	Car\'acter de barra invertida.

\end{dispitems}
 
\medskip\noindent
En tiras de caracteres de env\'{\i}o se pueden incluir, ademas de los
mencionados anteriormente, los siguientes caracteres:


\begin{dispitems}
\ditem[\keyword{EOT}]
	Car\'acter de fin de la trasmisi\'on (\term{\car D}).

\ditem[\keyword{BREAK}]
	Car\'acter Break.

\ditem[\keyword{\bs c}]
	Suprime el env\'{\i}o del car\'acter nueva l\'{\i}nea al final de cada tira
	de caracteres.

\ditem[\keyword{\bs d}]
	Retrasar el env\'{\i}o 1 segundo.

\ditem[\keyword{\bs E}]
	Activar la comprobaci\'on de eco.  De esta forma, \prog{uucico}
	esperar\'a a leer el eco de todo lo que escribe en el dispositivo
	antes de que contin\'ue con el di\'alogo.  Se usa principalmente
	en di\'alogos de modems (que veremos m\'as adelante).
	La comprobaci\'on de eco est\'a desactivada por defecto.

\ditem[\keyword{\bs e}]
	Desactivar la comprobaci\'on de eco.

\ditem[\keyword{\bs K}]
	Lo mismo que \keyword{BREAK}.

\ditem[\keyword{\bs p}]
	Pausa de una fracci\'on de un segundo.
\end{dispitems}

\index{UUCP!scripts de entrada|)}



\subsubsection{Alternativas}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!alternativas}

A veces es deseable tener m\'ultiples entradas para un mismo sistema,
por ejemplo si se puede acceder al sistema en diferentes l\'{\i}neas de
m\'odem.  Con Taylor UUCP se puede hacer esto definiendo una
\emph{alternativa}.


Una entrada alternativa mantiene todas las caracter\'{\i}sticas de la entrada
principal, y especifica solamente aquellos valores que tienen que ser
cambiados, o a\~nadidos.  Una alternativa est\'a separada de la entrada 
principal por una l\'{\i}nea que contiene la palabre clave \keyword{alternate}.


Para usar dos n\'umeros de tel\'efono para \host{pablo}, habr\'{\i}a que modificar
su entrada \file{sys} de la siguiente manera:


\begin{tscreen}
\begin{verbatim}
system       pablo
phone        123-456
... lo mismo que antes ...
alternate
phone        123-455
\end{verbatim}
\end{tscreen}


Ahora, cuando llame a \host{pablo}, el programa \prog{uucico} marcar\'a
primero el 123-456, y si no funciona, probar\'a la alternativa.  La entrada
alternativa retiene toda la otra informaci\'on de la entrada de sistema
principal, y altera s\'olo el n\'umero de tel\'efono.


\subsubsection{Restringir horas de llamada}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% organizaci\'on                                                 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!restringir!hora de llamada}
\index{UUCP!hora de llamada}

Taylor UUCP proporciona varios m\'etodos para restringir las horas 
a las que se pueden efectuar llamadas a un sistema remoto.  Una raz\'on 
para hacer esto ser\'{\i}a por las limitaciones que el sistema remoto 
impone en sus servicios durante horas de oficina, o simplemente para
evitar las horas m\'as caras.  Siempre se pueden desactivar las restricciones
con la opci\'on \option{-S} o \option{-f} en el programa \prog{uucico}.


Por defecto, Taylor UUCP no permite conexiones a ninguna hora, as\'{\i} que 
usted \emph{tiene que} especificar alg\'un horario
en el fichero \file{sys}.  Si no le importan las restricciones, puede
especificar la opci\'on \keyword{time} con un valor de \keyword{Any} en
su fichero \file{sys}.


La manera m\'as sencilla de restringir horas de llamada es con la entrada
\keyword{time}, seguida de una tira de caracteres que consta de dos
campos, d\'{\i}a y hora.  El d\'{\i}a puede ser cualquiera de los siguientes: \keyword{Mo, Tu, We, Th,
Fr, Sa, Su} (que corresponden a Lunes, Martes, Mi\'ercoles, Jueves, Viernes,
S\'abado y Domingo, respectivamente) combinados, \keyword{Any}
(cualquiera), \keyword{Never}
(nunca), o \keyword{Wk} para los d\'{\i}as laborables.  La hora consiste en dos
n\'umeros de un reloj de 24 horas, separados por un gui\'on.  Especifican el
grupo de horas durante las que se pueden efectuar llamadas.  La combinaci\'on
de los s\'{\i}mbolos se escribe sin ning\'un espacio en blanco entre ellos.
Se pueden especificar varios grupos de d\'{\i}a-hora separados por comas.
Por ejemplo,


\begin{tscreen}
\begin{verbatim}
time            MoWe0300-0730,Fr1805-2000
\end{verbatim}
\end{tscreen}


\noindent
permite llamadas en Lunes y Miercoles, de 3 de la ma\~nana a 7:30, y
los Viernes entre las 6:05 y las 8:00 de la tarde.  Cuando un campo
de hora incluye la medianoche, como \keyword{Mo1830-0600}, en realidad
quiere decir el Lunes, entre medianoche y las 6 de la ma\~nana, y entre
las 6:30 de la tarde y medianoche.


Las palabras especiales \keyword{Any} y \keyword{Never} significan
que se pueden hacer llamadas siempre o nunca, respectivamente.

% Taylor UUCP also has a number of special tokens you may use in time
% strings, such as \keyword{NonPeak} and \keyword{Night}.  They are
% shorthand for \keyword{Any2300-0800,SaSu0800-1700} and
% \keyword{Any1800-0700,SaSu}, respectively.


\index{UUCP!intervalo para reintentar}
El comando \keyword{time} tiene un segundo argumento opcional que describe
el tiempo a esperar para reintentar en minutos.  Cuando un intento de
conexi\'on falla, \prog{uucico} no permitir\'a otro intento de llamar 
al ordenador remoto hasta que transcurra un cierto tiempo.  
Por defecto, \prog{uucico} usa un algoritmo de espera exponencial, seg\'un el
cual el intervalo de espera se incrementa con cada intento fallido.  Por
ejemplo, si especifica un tiempo de reintento de 5 minutos, \prog{uucico}
no aceptar\'a llamar otra vez en los 5 minutos despu\'es del ultimo intento
fallido.


\index{UUCP!prioridades|(}
\index{UUCP!rango de cola|(}
El comando \keyword{timegrade} le permite a\~nadir un rango m\'aximo de cola
a un calendario.  Por ejemplo, asumiendo que usted tiene los siguientes
comandos \keyword{timegrade} en una entrada \keyword{system}:


\begin{tscreen}
\begin{verbatim}
timegrade           N Wk1900-0700,SaSu 
timegrade           C Any
\end{verbatim}
\end{tscreen}


Esto permite que los trabajos con rango de cola de C o mayor (normalmente
el correo se pone en la cola con rango B o C) sean transferidos siempre que
se establece una comunicaci\'on, mientras que las noticias ({\it news})
(normalmente con rango N) ser\'an transferidas s\'olo durante la noche y los
fines de semana.


Al igual que \keyword{time}, el comando \keyword{timegrade} acepta un
intervalo de reintento en minutos como un tercer argumento opcional.


Sin embargo, hay que hacer una observaci\'on:  la opci\'on
\keyword{timegrade} s\'olo se aplica a lo que \emph{su} sistema env\'{\i}a;
el sistema remoto puede transferir todo lo que le plazca.  Usted puede
usar la opci\'on \keyword{call-timegrade} para forzar
expl\'{\i}citamente que env\'{\i}e
solamente trabajos sobre cierto rango de cola; pero no hay ninguna garant\'{\i}a
de que obedecer\'a esta petici\'on.\footnote{
  Si el sistema remoto esta ejecutando Taylor UUCP, obedecer\'a.
}


Igualmente, el campo \keyword{timegrade} no se comprueba cuando un 
sistema remoto hace una llamada a \'este, de manera que cualquier trabajo
puesto en la cola para el sistema que llama al nuestro ser\'a enviado.
Sin embargo, el sistema remoto puede pedir expl\'{\i}citamente a nuestro 
\prog{uucico} que se mantenga a s\'{\i} mismo en un cierto rango de cola.


\index{UUCP!prioridades|)}
\index{UUCP!rango de cola|)}
\index{UUCP!sistema remoto|)}


\subsection{Qu\'e dispositivos hay~-- el fichero \file{port}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Esta secci\'on introduce el fichero DEVICE                      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!fichero de puertos@\file{port}, fichero}
\index{UUCP!dispositivo|(}
\index{UUCP!m\'odem}

El fichero \file{port} indica a \prog{uucico} qu\'e puertos tiene
disponibles.  Pueden ser puertos de m\'odem, pero cualquier otro tipo, como
l\'{\i}neas serie directas o sockets de TCP tambi\'en se pueden usar.


Al igual que el fichero \file{sys}, el fichero \file{port} consta de
entradas separadas que empiezan con la palabra \keyword{port}, seguida del
nombre del puerto.  Este nombre puede ser usado por la palabra \keyword{port}
en el fichero \file{sys}.  El nombre no tiene por qu\'e ser \'unico; si hay
varios puertos con el mismo nombre, \prog{uucico} intentar\'a cada uno de los
puertos hasta que encuentre uno que no est\'a siendo utilizado.


El comando \keyword{port} tiene que estar seguido por el comando
\keyword{type} que especifica qu\'e tipo de puerto se est\'a describiendo.
Tipos v\'alidos son \keyword{modem}, \keyword{direct} para comunicaciones
directas, y \keyword{tcp} para sockets de TCP. Por defecto, cuando el
comando \keyword{port} no se incluye en el fichero, el tipo de puerto
asumido ser\'a \keyword{modem}.


En esta secci\'on s\'olo hablaremos de puertos de m\'odem; los puertos de TCP y
las l\'{\i}neas directas ser\'an tratados en una secci\'on posterior. 


Para puertos directos y de m\'odem, tiene que especificar el dispositivo para
llamar usando la directiva \keyword{device}.  Usualmente es el nombre
de un fichero de dispositivo en el directorio \file{/dev}, como por ejemplo
\file{/dev/cua1}.\footnote{
  Hay quien usa los dispositivos \file{ttyS*}, que son solamente para
  aceptar llamadas.
}


En el caso de un dispositivo de m\'odem, la directiva \keyword{port} tambi\'en
determina qu\'e tipo de m\'odem est\'a conectado al puerto.  Cada tipo de m\'odem
tiene que configurarse de manera diferente.  Incluso los modems que dicen
ser compatibles con Hayes no tienen por qu\'e ser realmente compatibles entre
s\'{\i} mismos.  Por lo tanto, tiene que decirle a \prog{uucico} c\'omo inicializar
el m\'odem y c\'omo hacer que marque el n\'umero deseado.  Taylor UUCP mantiene
las descripciones de todos los marcadores en un fichero llamado \file{dial}.
Para usar cualquiera de \'estos, tiene que especificar el nombre del marcador
usando el comando \keyword{dialer}.


Es posible que usted quiera usar el m\'odem de maneras diferentes, dependiendo
del sistema al que est\'a llamando.  Por ejemplo, algunos modems antiguos
no entienden cu\'ando un m\'odem r\'apido trata de conectar a 14400bps;
simplemente desconectan la l\'{\i}nea en vez de negociar la conexi\'on a 9600bps
por ejemplo.  Si sabe que el ordenador \host{plasta} usa un m\'odem tan tonto,
usted tiene que configurar su m\'odem de manera diferente cuando llame a ese
ordenador.  Para hacer esto, necesita una entrada adicional del comando
\keyword{port} en el fichero \file{port} que especifica un marcador
diferente.  Ahora puede dar un nombre diferente al nuevo puerto, como por
ejemplo \keyword{serial1-lento}, y usar la directiva \keyword{port} en
la entrada del sistema \host{plasta} en el fichero \file{sys}.


Otra manera de distinguir los puertos es por la velocidad que usan.
Por ejemplo, las dos entradas \keyword{port} de la situaci\'on anterior
pueden ser as\'{\i}:


\begin{tscreen}
\begin{verbatim}
# NakWell modem; conexion a velocidad alta.
port            serial1         # nombre del puerto
type            modem           # puerto modem
device          /dev/cua1       # esto es COM2
speed           38400           # velocidad soportada
dialer          nakwell         # marcador normal

# NakWell modem; conexion lenta
port            serial1         # nombre del puerto
type            modem           # puerto modem
device          /dev/cua1       # esto es COM2
speed           9600            # velocidad soportada
dialer          nakwell-slow    # no intentar alta velocidad
\end{verbatim}
\end{tscreen}


La entrada de sistema para el ordenador \host{plasta} usar\'{\i}a ahora
\keyword{serial1} como el nombre del puerto, pero pedir\'{\i}a usar la velocidad
de 9600bps solamente.  \prog{uucico} usar\'a autom\'aticamente la segunda
entrada de \keyword{port}.  Todos los otros ordenadores con velocidad
de 38400bps en la entrada de sistema ser\'an llamados usando la primera
entrada de \keyword{port}.



\index{UUCP!dispositivo|)}



\subsection{C\'omo marcar un n\'umero~-- el fichero \file{dial}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This section describes the Dialers file                       %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!fichero de marcar@\file{dial} fichero}
\index{UUCP!m\'odem|(}

El fichero \file{dial} describe c\'omo se usan los distintos marcadores.
Tradicionalmente, UUCP habla de ``marcadores'' en vez de modems, porque en los
viejos tiempos era normal que un dispositivo de marcaci\'on autom\'atico (que
era caro) sirviese un banco entero de modems.  Hoy, la mayor\'{\i}a de los modems
tienen soporte para marcar incluido, as\'{\i} que la distinci\'on
tiende a desaparecer.


De cualquier modo, cada marcador o m\'odem puede necesitar una configuraci\'on
diferente.  Se puede describir cada uno de ellos en el fichero \file{dial}.
Las entradas en \file{dial} empiezan con el comando \keyword{dialer} que
indica el nombre del marcador.


La entrada m\'as importante, aparte de \'esta, es el di\'alogo del m\'odem,
especificado por el comando \keyword{chat}.  Similar al di\'alogo de entrada 
(login), consta de una secuencia de caracteres que \prog{uucico} env\'{\i}a al
marcador y de la secuencia que espera recibir como respuesta.  Se usa
normalmente para reiniciar el m\'odem a un estado conocido, y marcar el
n\'umero.  El siguiente ejemplo de una entrada de un marcador muestra
un di\'alogo t\'{\i}pico para un m\'odem compatible con Hayes:


\begin{tscreen}
\begin{verbatim}
# NakWell modem; conexion a alta velocidad
dialer          nakwell         # nombre del marcador
chat            "" ATZ OK\r ATH1E0Q0 OK\r ATDT\T CONNECT
chat-fail       BUSY
chat-fail       ERROR
chat-fail       NO\sCARRIER
dtr-toggle      true
\end{verbatim}
\end{tscreen}


El di\'alogo del m\'odem comienza con \term{\dqt\dqt}, es decir, que espera
una cadena vac\'{\i}a.  \prog{uucico} entonces env\'{\i}a el primer comando 
(\term{ATZ}) de inmediato.  \term{ATZ} es el comando de Hayes para
reiniciar el m\'odem.  Entonces espera hasta que el m\'odem env\'{\i}e \term{OK},
y a continuaci\'on env\'{\i}a el siguiente comando que desactiva el eco local, y
cosas parecidas.  Despu\'es de que el m\'odem env\'{\i}e \term{OK} otra vez,
\prog{uucico} env\'{\i}a el comando de marcaci\'on (\term{ATDT}).  La secuencia de
escape \term{\bs T} en esta cadena es reemplazada con el n\'umero de tel\'efono
obtenido de la entrada de sistema en el fichero \file{sys}.  \prog{uucico}
espera a que el m\'odem devuelva la cadena \term{CONNECT}, que indica que 
se ha establecido una conexi\'on exitosa con el m\'odem remoto.


%% dialcode substitution isn't that much of a win to bother people
%% with understanding it.
% In the m\'odem chat, you can use one of two escape sequences to make
% \prog{uucico} insert the telephone number. One is \term{\bs T} mentioned
% above, the other is \term{\bs D}. The difference between them is that
% the latter does not support dialcode substitution, while the former
% does. With dialcode substitution, the phone number may contain alphabetic
% strings that are mapped to real telephone numbers using the \file{dialcode}
% file. For instance, you might choose to replace the area code in the phone
% number with the names of the city.


A menudo el m\'odem no puede conectarse con el sistema remoto, por ejemplo
si el otro sistema esta conectado con otro ordenador y la l\'{\i}nea
est\'a ocupada. 
En este caso, el m\'odem devuelve alg\'un mensaje de error indicando la raz\'on.
Los di\'alogos de m\'odem no pueden detectar estos mensajes; \prog{uucico}
seguir\'a esperando la cadena esperada hasta que un temporizador se agote.
El fichero de recopilaci\'on de informaci\'on (log) de UUCP mostrar\'a solamente
el mensaje ``timed out in chat script'' (tiempo agotado en la macro de
di\'alogo) en vez de la raz\'on real.


Sin embargo, Taylor UUCP le permite informar a \prog{uucico} sobre estos
mensajes de error usando el comando \keyword{chat-fail} como se ve en el
ejemplo.  Cuando \prog{uucico} detecta una cadena de caracteres de error en
el di\'alogo mientras lo ejecuta, interrumpe la llamada y
anota el error en el fichero log de UUCP.


El \'ultimo comando en el ejemplo anterior indica a UUCP que cambie la l\'{\i}nea
DTR antes de empezar el di\'alogo de m\'odem.  La mayor\'{\i}a de los modems se
pueden configurar para conectarse cuando detectan un cambio en la l\'{\i}nea DTR,
y entrar en modo de comando.\footnote{
  Tambi\'en se pueden configurar algunos modems para que se reinicien a s\'{\i}
  mismos cuando detecten una transici\'on en DTR.  Sin embargo, a
  algunos modems no parece gustarles esto y en ocasiones se bloquean.
}

\index{UUCP!m\'odem|)}

\subsection{UUCP sobre TCP}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!sobre TCP/IP}
\index{TCP!UUCP}

Por muy absurdo que suene en principio, el uso de UUCP para transferir datos
sobre TCP no es una idea tan mala, especialmente cuando se transfieren
grandes cantidades de datos como los grupos de noticias Usenet.  En
conexiones basadas en TCP, los grupos de noticias se transmiten generalmente
usando el protocolo NNTP, seg\'un el cual los art\'{\i}culos se piden y se
transmiten individualmente, sin compresi\'on ni ninguna otra optimizaci\'on.
Aunque es una t\'ecnica adecuada para ordenadores grandes con varias fuentes
de grupos de noticias simult\'aneas, esta t\'ecnica no es favorable para
peque\~nos sistemas que reciben los grupos a trav\'es de una conexi\'on lenta,
como RDSI.  Estos ordenadores normalmente desean combinar las cualidades de
TCP con las ventajas de enviar art\'{\i}culos en grandes lotes, que se pueden
comprimir y por lo tanto transferir con muy poco gasto.  Un m\'etodo est\'andar
de enviar estos lotes es usando UUCP sobre TCP.


En el fichero \file{sys}, hay que especificar al sistema a llamar con TCP de
la siguiente forma:


\begin{tscreen}
\begin{verbatim}
system          gmu
address         news.groucho.edu
time            Any
port            tcp-conn
chat            ogin: vstout word: clouseau
\end{verbatim}
\end{tscreen}


El comando \keyword{address} da la direcci\'on de internet (IP) del ordenador,
o su nombre de dominio completo (FQDN).  La entrada correspondiente en el
fichero \file{port} ser\'{\i}a as\'{\i}:


\begin{tscreen}
\begin{verbatim}
port            tcp-conn
type            tcp
service         540
\end{verbatim}
\end{tscreen}


Esta entrada indica que hay que usar una conexi\'on de TCP cuando una entrada
en el fichero \file{sys} hace referencia a \keyword{tcp-conn}, y que el
programa \prog{uucico} deber\'a tratar de conectarse al puerto TCP 540 en el
sistema remoto.  \'Este es el puerto por defecto del servicio UUCP.  En vez
del n\'umero de puerto, tambi\'en se puede especificar un nombre de puerto
simb\'olico.  El numero de puerto correspondiente
ser\'a buscado en el fichero \file{/etc/services}.



\subsection{Uso de una conexi\'on directa}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The intricacies of specifying a direct line.                  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!l\'{\i}neas directas}

Supongamos que usted usa una l\'{\i}nea directa que conecta su sistema 
\host{vstout} con el ordenador \host{tiny}.  Al igual que en el caso del
m\'odem, tiene que escribir una entrada de sistema en el fichero \file{sys}.
El comando \keyword{port} identifica el puerto serie en el que \host{tiny}
est\'a conectado.


\begin{tscreen}
\begin{verbatim}
system          tiny
time            Any
port            direct1
speed           38400
chat            ogin: cathcart word: catch22
\end{verbatim}
\end{tscreen}


En el fichero \file{port}, tiene que describir el puerto serie para la
conexi\'on directa.  La entrada \keyword{dialer} no hace falta porque no hay
que marcar ning\'un n\'umero.


\begin{tscreen}
\begin{verbatim}
port            direct1
type            direct
speed           38400
\end{verbatim}
\end{tscreen}




\section{Los s\'{\i}es y noes de UUCP~-- Ajuste de Permisos}
\label{uucp.permissions}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Security Options						%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{seguridad!UUCP|(}
\index{acceso!UUCP|(}

\subsection{Ejecuci\'on de comandos}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!restricciones!ejecuci\'on de commandos}
\index{UUCP!ejecuci\'on de comandos}

La tarea de UUCP es copiar ficheros de un sistema a otro, y pedir
la ejecuci\'on de ciertos comandos en sistemas remotos.  Por supuesto, usted
como administrador querr\'a control sobre los derechos que concede a otros
sistemas~-- permitirles que ejecuten cualquier comando en su sistema no es
una buena idea en absoluto.

\index{SMTP!lotes}
\index{rmail@\prog{rmail}}
\index{rnews@\prog{rnews}}
\index{UUCP!mail}
\index{UUCP!news}
Los \'unicos comandos que Taylor UUCP permite a otros sistemas ejecutar en
su ordenador son \prog{rmail} y \prog{rnews}, que se usan com\'unmente para
intercambiar correo y noticias de Usenet sobre UUCP.  El directorio en el 
que \prog{uuxqt} busca es una opci\'on que se elige al compilar el programa,
pero normalmente incluye \file{/bin}, \file{/usr/bin}, y 
\file{/usr/local/bin}.  Para cambiar el conjunto de comandos para un 
sistema en particular, se puede usar la palabra \keyword{commands}
en el fichero \file{sys}.  Igualmente, el directorio de b\'usqueda se puede
cambiar con el comando \keyword{command-path}.  Por ejemplo, usted puede
querer dar acceso al sistema \host{pablo} para que ejecute el comando
\prog{rsmtp} adem\'as de \prog{mail} y \prog{rnews}:\footnote{
  El programa \prog{rsmtp} se usa para manejar el correo con SMTP por lotes.
  Esto se explica en los cap\'{\i}tulos sobre correo.
  }


\begin{tscreen}
\begin{verbatim}
system          pablo
...
commands        rmail rnews rsmtp
\end{verbatim}
\end{tscreen}



\subsection{Transferencias de Ficheros}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!restringir!transferencia de ficheros}
\index{UUCP!transferencia de ficheros}

Taylor UUCP tambi\'en le permite ajustar, en gran medida, las tranferencias de 
ficheros.  Por un lado, usted puede desactivar las transferencias
hacia y desde un sistema determinado.  Simplemente necesita dar el valor
\keyword{no} al comando \keyword{request}, y el sistema remoto no ser\'a
capaz de obtener ficheros de su sistema ni de poner otros ficheros.
De igual modo, puede prohibir que sus usuarios transfieran ficheros
desde o hacia otro sistema poniendo la palabra \keyword{no} en el campo
\keyword{transfer}.  Por defecto, los usuarios del sistema local y el
remoto pueden enviar y obtener ficheros.


Adem\'as, usted puede configurar los directorios de y a los que quiere
que se puedan copiar ficheros.  Usualmente se prohibe el acceso de sistemas
remotos a una sola estructura de directorios, pero aun as\'{\i} se permite a
los usuarios locales que env\'{\i}en ficheros de sus directorios.
Com\'unmente, 
a los usuarios remotos se les permite que reciban ficheros s\'olo del
directorio p\'ublico de UUCP,  \publicspool.  Este es el lugar
tradicional para poner los ficheros disponibles p\'ublicamente; muy parecido
a un servidor de FTP en Internet.  Normalmente se refiere a este directorio
con el car\'acter tilde.



Por lo tanto, Taylor UUCP provee cuatro comandos diferentes para 
configurar los directorios para enviar y recibir ficheros.  \'Estos son
\keyword{local-send}, que especifica la lista de directorios desde los que
un usuario puede pedir a UUCP que env\'{\i}e ficheros; \keyword{local-receive},
que da la lista de directorios donde un usuario puede pedir que se reciban
los ficheros; y \keyword{remote-send} y \keyword{remote-receive}, que hacen
lo correspondiente para las peticiones que vienen de un sistema remoto.
Consideremos el siguiente ejemplo:


\begin{tscreen}
\begin{verbatim}
system          pablo
...
local-send      /home ~
local-receive   /home ~/recibir
remote-send     ~ !~/entrada !~/recibir
remote-receive  ~/entrada
\end{verbatim}
\end{tscreen}


El comando \keyword{local-send} permite a los usuarios de su sistema
que env\'{\i}en cualquier fichero bajo \file{/home} y en el directorio 
p\'ublico de UUCP al sistema \host{pablo}.  El comando \keyword{local-receive}
les permite recibir ficheros bien en el directorio \file{recibir} con 
permiso de escritura universal en \pubdir, o en cualquier directorio
que tenga permiso de escritura universal bajo \file{/home}.  La directiva
\keyword{remote-send} permite que el sistema \host{pablo} obtenga ficheros
de \publicspool, excepto los ficheros bajo los directorios \file{entrada}
y \file{recibir}.  Esto se indica a \prog{uucico} poniendo un signo de
exclamaci\'on delante de los nombres de los directorios.  Finalmente, la
\'ultima l\'{\i}nea permite que \host{pablo} ponga ficheros en \file{entrada}


Uno de los mayores problemas con la transferencia de ficheros usando UUCP
es que s\'olo recibe ficheros en los directorios con permiso de escritura
universal.  Esto puede tentar a algunos usuarios a poner trampas para otros
usuarios, etc.  Sin embargo, no hay salida a este problema excepto la
desactivaci\'on total de la transferencia de ficheros por UUCP.


\subsection{Reenv\'{\i}o}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!restringir!reenv\'{\i}o}
\index{UUCP!reenv\'{\i}o}

UUCP provee un mecanismo para que otros sistemas ejecuten 
transferencias de ficheros por usted.  Por ejemplo, esto le permite
que el sistema \host{seci} obtenga un fichero de \host{uchile} por usted,
y lo env\'{\i}e a su sistema.  El siguiente comando har\'{\i}a esto:


\begin{tscreen}
\begin{verbatim}
$ uucp -r seci!uchile!~/find-ls.gz ~/uchile.files.gz
\end{verbatim}
\end{tscreen}


Esta t\'ecnica de pasar un trabajo a trav\'es de varios sistemas se llama
\emph{forwarding} (reenv\'{\i}o).  En el ejemplo anterior, la raz\'on para usar
el reenv\'{\i}o puede ser que \host{seci} tiene acceso por UUCP a \host{uchile},
pero su sistema no lo tiene.  Sin embargo, si usted tiene un sistema de
UUCP, es deseable limitar el servicio de reenv\'{\i}o a unos pocos sistemas en que
usted conf\'{\i}a, para que no se le acumule una factura telef\'onica horrenda
cuando alguien use su sistema para obtener la \'ultima versi\'on de X11R6.


Por defecto, Taylor UUCP no permite el reenv\'{\i}o.  Para permitirlo para
un sistema en particular, puede usar el comando \keyword{forward}.
Este comando especifica una lista de ordenadores desde y hacia los cuales
el sistema remoto puede pedirle que reenv\'{\i}e trabajos.  Por ejemplo,
el administrador de UUCP del sistema \host{seci} tendr\'{\i}a que a\~nadir 
las siguientes l\'{\i}neas al fichero \file{sys} para permitir que \host{pablo}
obtenga ficheros de \host{uchile}:


\begin{tscreen}
\begin{verbatim}
####################
# pablo
system          pablo
...
forward         uchile
####################
# uchile
system          uchile
...
forward-to      pablo
\end{verbatim}
\end{tscreen}


La entrada \keyword{forward-to} para \host{uchile} es necesaria para
que cualquier fichero devuelto por \'el sea en efecto pasado a \host{pablo}.
De otro modo, UUCP se deshar\'{\i}a del fichero.  Esta entrada usa una variaci\'on
del comando \keyword{forward} que permite que \host{uchile} s\'olo env\'{\i}e 
ficheros a \host{pablo} a trav\'es de \host{seci}, no al rev\'es.


Para permitir el reenv\'{\i}o a cualquier sistema, use el comando especial
\keyword{ANY} (tiene que estar en may\'usculas).



\section{Configuraci\'on de su sistema para ser llamado.}
\label{uucp.dialin}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Esta secci\'on describe c\'omo configurar el sistema para que     %
% otra gente pueda entrar marcando un tel\'efono.                 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!configurar como servidor|(}
\index{UUCP!llamada}
\index{servidor!UUCP|(}

Si quiere configurar su sistema para que otros se conecten a \'este
llam\'andole, tiene que permitir conexiones en su puerto serie, y modificar
ciertos ficheros del sistema para proveer cuentas de UUCP.  \'Este es
el tema de esta secci\'on.

\subsection{Configuraci\'on de \prog{getty}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{uucp.dialin.uugetty}
\index{UUCP!y getty@y \prog{getty}}
\index{uugetty@\prog{uugetty}}
\index{getty@\prog{getty}}
\index{mgetty@\prog{mgetty}}

Si quiere usar una l\'{\i}nea serie como un puerto de entrada, tiene que 
activar un proceso \prog{getty} en ese puerto.  Sin embargo, algunas
implementaciones de \prog{getty} no son v\'alidas para esto porque normalmente
se desea usar un puerto para entrada y para salida.  Por lo tanto tiene
que asegurarse de usar un \prog{getty} que es capaz de compartir la l\'{\i}nea
con otros programas como \prog{uucico}, o \prog{minicom}.  Un programa que
se comporta as\'{\i} es \prog{uugetty} del paquete \file{getty\_ps}.  La mayor\'{\i}a
de las distribuciones de \linux{} lo tienen;  busque \prog{uugetty} en el
directorio \file{/sbin}.  Otro programa que existe es \prog{mgetty}, de
Gert Doering, que adem\'as hace recepci\'on de facs\'{\i}miles.  Tambien puede
obtener la \'ultima versi\'on de estos programas en \host{sunsite.unc.edu},
tanto en binario como en c\'odigo fuente.

%%% This is actually too complicated
% \prog{getty} uses a different type of serial port than those you use to
% dial out. For instance, when running \prog{getty} on a serial port, say
% COM4, it will use the dialin device file \file{ttyS3} instead of the
% callout device \file{cua3}.
% To avoid that an outgoing UUCP call disrupts the session of a user who
% dialed into your machine, the kernel forbids opening the corresponding
% callin and callout devices at the same time. That is, when \prog{uucico}
% tries to open \file{cua3} while a user is logged in in \file{ttyS3}, the
% open will fail and return an error indicating that the device is busy.
%
% ...and what all this means for the various getty operation modes...


La explicaci\'on de las diferencias de c\'omo \prog{uugetty} y \prog{mgetty}
manejan la entrada al sistema est\'a m\'as all\'a del alcance de esta peque\~na
secci\'on;  para m\'as informaci\'on, vea el HOWTO Serial de Greg
Hankins\footnote{Tambi\'en disponible en Castellano (Serial-COMO), en LuCAS},
as\'{\i} como la documentaci\'on que viene con \prog{getty\_ps} y \prog{mgetty}.


\subsection{Proveer Cuentas de UUCP}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{uucp.dialin.accounts}
\index{UUCP!cuentas}
\index{UUCP!configurar entradas|(}

A continuaci\'on tiene que configurar las cuentas de usuarios que permiten
a sistemas remotos entrar en su sistema y establecer una conexi\'on de UUCP.
Generalmente tendr\'a que suministrar un nombre de usuario para cada sistema
que se conecte con usted.  Cuando configura una cuenta para el sistema
\host{pablo}, puede darle el nombre de usuario \user{Upablo}.


Para los sistemas que se conectan con el suyo a trav\'es del puerto serie,
usualmente tiene que a\~nadir estas cuentas al fichero de claves del sistema,
\file{/etc/passwd}.  Es buena idea poner todos los usuarios de UUCP en un
grupo especial como \user{uuguest}.  El directorio ra\'{\i}z de cada cuenta de
UUCP tiene que ser el directorio p\'ublico \publicspool; el shell de entrada
tiene que ser \prog{uucico}.


Si tiene el paquete de claves ocultadas ({\it shadow password}) instalado, 
podremos hacer esto con el comando \prog{useradd}:


\begin{tscreen}
\begin{verbatim}
# useradd -d /var/spool/uucppublic -G uuguest -s /usr/lib/uucp/uucico Upablo
\end{verbatim}
\end{tscreen}


Si no utiliza la aplicaci\'on de claves ocultas, probablemente tendr\'a que
editar \file{/etc/passwd} a mano, a\~nadiendo una l\'{\i}nea como la siguiente,
donde 5000 y 150 son el n\'umero de identificaci\'on de usuario (uid) y el
n\'umero de grupo asignado al usuario \user{Upablo} y al grupo \user{uuguest},
respectivamente.


\begin{tscreen}
\begin{verbatim}
Upablo:*:5000:150:Cuenta de UUCP:/var/spool/uucppublic:/usr/lib/uucp/uucico
\end{verbatim}
\end{tscreen}


Una vez creada la cuenta, tiene que activarla asign\'andole una clave con
el comando \prog{passwd}.


Para servir a sistemas de UUCP que se conectan a su sistema por TCP, tiene
que configurar \prog{inetd} para que reconozca correctamente conexiones 
en el puerto \keyword{uucp}.  Esto se consigue a\~nadiendo la siguiente l\'{\i}nea
al fichero \file{/etc/inetd.conf}:\footnote{
  Normalmente, \prog{tcpd} tiene modo 700, as\'{\i} que tiene que invocarlo
  como usuario \user{root}, no como usuario \user{uucp}, como har\'{\i}a
  normalmente.
}


\begin{tscreen}
\begin{verbatim}
uucp   stream  tcp   nowait  root  /usr/sbin/tcpd  /usr/lib/uucp/uucico -l
\end{verbatim}
\end{tscreen}


\index{UUCP!fichero passwd@fichero \file{passwd}}
La opci\'on \option{-l} hace que \prog{uucico} haga su propia autorizaci\'on
de entrada.  Pedir\'a un nombre de usuario y una clave, igual que el
programa est\'andar \prog{login}, pero usar\'a su propia base de datos de
claves, en vez de \file{/etc/passwd}.  Este fichero privado de claves se
llama \uucplib\file{/passwd} y contiene pares de nombres de entrada y
claves:


\begin{tscreen}
\begin{verbatim}
Upablo  IslaNegra
Ulorca  cordoba
\end{verbatim}
\end{tscreen}


Por supuesto, este fichero tiene que pertenecer al usuario \user{uucp} y
tener permiso 600.


\index{mgetty@\prog{mgetty}}
Si esta base de datos parece una idea tan buena que le gustar\'{\i}a usarla
en verificaci\'on normal de entrada (login) por serie tambi\'en, se
desilusionar\'a al saber que esto no es posible por el momento de
manera sencilla.  Para empezar, necesita Taylor UUCP~1.05 para hacer
esto, porque permite a \prog{getty} que pase el nombre del
usuario que llama al programa \prog{uucico} usando 
la opci\'on \option{-u}.\footnote{
  La opci\'on \option{-u} tambi\'en existe en 1.04, pero no hace nada.
}   Luego tiene que enga\~nar al programa \prog{getty} que est\'e usando para
que llame a \prog{uucico} en vez del usual \prog{login}.  Con 
\file{getty\_ps},  esto se puede hacer  poniendo la opci\'on \keyword{LOGIN}
en el fichero de configuraci\'on.  Sin embargo, esto desactiva los logins
interactivos por completo.  \prog{mgetty}, por otro lado, tiene una
caracter\'{\i}stica atractiva que le permite invocar diferentes comandos de
entrada (login) seg\'un el nombre de usuario suministrado.  Por ejemplo, 
puede decirle a \prog{mgetty} que use \prog{uucico} para todos los usuarios
cuyo nombre de usuario comienze con una U may\'uscula, pero dejar que todos
los demas usen el comando est\'andar \prog{login}.


Para proteger a sus usuarios de UUCP de otros que den un nombre de sistema
falso y les lean todo el correo, tiene que a\~nadir comandos
\keyword{called-login} a cada entrada de sistema en el fichero \file{sys}.
Esto se describe en la secci\'on siguiente.

\index{UUCP!configurar logins|)}

\subsection{Protecci\'on contra estafadores}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\namedlabel{uucp.security.called-login}{Protecci\'on contra estafadores}
\index{seguridad!login de UUCP|(}
\index{UUCP!seguridad de login|(}

Uno de los mayores problemas con UUCP es que el sistema que nos llama
puede mentir acerca de su nombre;  comunica su nombre al sistema que llama
despu\'es de entrar, pero el servidor no tiene manera de comprobarlo.  Por
consiguiente, un atacante podr\'{\i}a entrar con su propia cuenta de UUCP,
pretender ser otra persona, y coger el correo de esa otra persona.  Esto
representa un grave problema, especialmente si usted ofrece entrada mediante UUCP an\'onimo, que tiene una clave p\'ublica.


A menos que usted sepa que puede confiar en todos los sistemas que llaman al
suyo, usted \emph{tiene} que protegerse de esta clase de impostores. 
La cura de esta enfermedad es requerir que cada sistema use un nombre de
entrada particular, poniendo un comando \keyword{called-login} en el fichero 
\file{sys}.  Un ejemplo de esto podr\'{\i}a ser as\'{\i}:


\begin{tscreen}
\begin{verbatim}
system          pablo
... opciones usuales ...
called-login    Upablo
\end{verbatim}
\end{tscreen}


La ventaja de este m\'etodo es que cuando un sistema entra y pretende ser
\host{pablo}, el programa \prog{uucico} comprobar\'a que haya entrado como
usuario \user{Upablo}.  Si no es as\'{\i}, el sistema que nos llama ser\'a
desconectado.  Deber\'{\i}a acostumbrarse a incluir el comando
\keyword{called-login} en todas las entradas de sistema que a\~nada a su
fichero \file{sys}.  Es importante que haga esto para \emph{todos} los
sistemas, independientemente de si llamar\'an a su sistema o no.  Para
aquellos sistemas que nunca le llamar\'an, usted puede indicar en
\keyword{called-login} un mombre ficticio, como \user{nuncallama}.




\subsection{Vu\'elvase Loco~-- Comprobaci\'on de Secuencia de Llamadas}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!comprobaci\'on de secuencia de llamadas|(}

Otra manera de defenderse de impostores es usando la comprobaci\'on de secuencia
de llamadas.  La comprobaci\'on de secuencia de llamadas le ayuda a protegerse
de intrusos que de alguna manera consiguieron la clave con la que usted
entra en su sistema de UUCP.


Cuando usa comprobaci\'on de secuencia de llamadas, ambas m\'aquinas mantienen
una cuenta del n\'umero de conexiones establecidas hasta el momento.  Se
incrementa con cada conexi\'on.  Despu\'es de entrar, el llamador env\'{\i}a su
n\'umero de secuencia de llamadas y el sistema llamado lo comprueba con su
propio n\'umero.  Si no son iguales, el intento de conexi\'on es rechazado.  Si
el n\'umero inicial se elige aleatoriamente, los atacantes lo tendr\'an m\'as
dificil para adivinar el n\'umero de secuencia de llamadas correcto.


Pero la comprobaci\'on de la secuencia de llamada sirve para m\'as que esto:
aunque una persona muy inteligente descubriese su n\'umero de secuencia de
llamada as\'{\i} como su clave, usted sabr\'a que esto ha ocurrido.  Cuando el
atacante llama al sistema de UUCP que le provee el correo a usted 
y roba su correo, esto incrementa el n\'umero de secuencia de llamada en uno.  
La siguiente vez que \emph{usted} se conecta con su proveedor de correo e
intenta entrar, el \prog{uucico} remoto le rechazar\'a, porque los n\'umeros
de secuencia ya no son iguales.


Si usted activa la comprobaci\'on de secuencia de llamadas, deber\'{\i}a
comprobar los ficheros hist\'oricos regularmente para buscar mensajes de
error que puedan significar posibles ataques.  Si su sistema rechaza el
n\'umero de secuencia de llamada que el sistema remoto le ofrece, \prog{uucico}
pondr\'a un mensaje en el fichero hist\'orico que dir\'a algo como 
``Out of sequence call rejected'' (``Llamada fuera de secuencia
rechazada'').  Si su sistema es rechazado por el proveedor de correo porque 
los n\'umero de secuencia no est\'an sincronizados, pondr\'a un mensaje en el
fichero hist\'orico que dice ``Handshake failed (RBADSEQ)''
(``Negociaci\'on fallida (RBADSEQ)'' ).


Para activar la comprobaci\'on del n\'umero de secuencia, tiene que a\~nadir el
siguiente comando en la entrada de sistema:


\begin{tscreen}
\begin{verbatim}
# activar comprobacion de numero de secuencia
sequence        true
\end{verbatim}
\end{tscreen}


Aparte de esto, tiene que crear el fichero que contiene el n\'umero de
secuencia.  Taylor UUCP mantiene el n\'umero de secuencia en un fichero
llamado \file{.Sequence} en el directorio de cola (spool) del sistema remoto.
\emph{Tiene} que pertenecer al usuario \user{uucp}, y debe tener
permisos 600 (es decir, visible y escribible s\'olo por \user{uucp}).  Lo mejor
es inicializar este fichero con un valor arbitrario que ambas partes hayan
acordado.  De otro modo el atacante podr\'{\i}a apa\~n\'arselas para adivinar el
numero probando todos los valores menores que, digamos, 60.


\begin{tscreen}
\begin{verbatim}
# cd /var/spool/uucp/pablo
# echo 94316 > .Sequence
# chmod 600 .Sequence
# chown uucp.uucp .Sequence
\end{verbatim}
\end{tscreen}

Por supuesto, el sistema remoto tambi\'en tiene que activar la 
comprobaci\'on del n\'umero de secuencia, y empezar usando el mismo n\'umero que
usted.

\index{UUCP!comprobaci\'on de secuencia de llamadas|)}

\index{seguridad!login de UUCP|)}
\index{UUCP!seguridad de login|)}

\index{servidor!UUCP|)}
\index{seguridad!UUCP|)}
\index{acceso!UUCP|)}



\subsection{UUCP An\'onimo}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!an\'onimo}
\index{UUCP an\'onimo}

Si quiere ofrecer aceso an\'onimo de UUCP a su sistema, primero tiene que
establecer una cuenta especial como se describi\'o anteriormente.  Es
pr\'actica com\'un darle a esta cuenta el nombre y la clave \user{uucp}.


Adem\'as, tiene que especificar algunas opciones de seguridad para sistemas
desconocidos.  Por ejemplo, usted podr\'{\i}a querer prohibirles que ejecuten
comandos en su sistema.  Sin embargo, estos par\'ametros no se pueden poner en
una entrada del fichero \file{sys}, porque el comando \keyword{system}
requiere el nombre del sistema, que en este caso no tenemos.  Taylor UUCP
resuelve este dilema con el comando \keyword{unknown}.  \keyword{unknown} se
puede usar en el fichero \file{config} para especificar cualquier comando
que puede aparecer normalmente en una entrada de sistema:


\begin{tscreen}
\begin{verbatim}
unknown         remote-receive ~/incoming
unknown         remote-send ~/pub
unknown         max-remote-debug none
unknown         command-path /usr/lib/uucp/anon-bin
unknown         commands rmail
\end{verbatim}
\end{tscreen}


Esto limita a los sistemas desconocidos a que se bajen ficheros del
directorio \file{pub} y que dejen ficheros en el directorio \file{incoming}
bajo \publicspool.  La siguiente l\'{\i}nea hace que \prog{uucico} ignore
cualquier petici\'on del sistema remoto de activar la comprobaci\'on de errores
(debugging) localmente.  Las dos \'ultimas l\'{\i}neas permiten que los sistemas
desconocidos ejecuten \prog{rmail}; pero el camino de busqueda de comandos
especificado hace que \prog{uucico} busque el comando \prog{rmail} solamente
en un directorio privado llamado \prog{anon-bin}.  Esto le permite a usted
suminitrar algun programa \prog{rmail} especial que, por ejemplo, reenv\'{\i}e
todo el correo al superusuario para examinarlo.  Esto permite a los
usuarios an\'onimos contactar con el administrador del sistema, pero
al mismo tiempo evita que ellos manden correo a otros sistemas.


Para activar UUCP an\'onimo, tiene que especificar por lo menos un comando 
\keyword{unknown} en el fichero \file{config}.  Si no, \prog{uucico}
rechazar\'a cualquier sistema desconocido.

\index{UUCP!configurar como servidor|)}

\section{Protocolos de bajo nivel de UUCP}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{uucp.protocols}
\index{UUCP!protocolo|(}

Para negociar el control de la sesi\'on y las transferencias de ficheros con
el sistema remoto, \prog{uucico} usa un grupo de mensajes est\'andar.  Esto es
lo que se llama normalmente \emph{protocolo de alto nivel}.  Durante la fase de
inicializaci\'on y la fase de desconexi\'on \'estos se env\'{\i}an
simplemente como
tiras de caracteres.  Sin embargo, durante la fase de transferencia,
se usa tambi\'en un \emph{protocolo de bajo nivel}, que resulta
transparente para los niveles superiores. De esta manera es posible
comprobar errores cuando se usan l\'{\i}neas poco fiables, por ejemplo.


\subsection{Resumen del protocolo}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{protocolo!UUCP}

Dado que UUCP se usa sobre diferentes tipos de conexiones, como l\'{\i}neas
serie, TCP, o incluso X.25, es preciso usar protocolos de bajo nivel
espec\'{\i}ficos.  Adem\'as, varias implementaciones de UUCP han introducido
diferentes protocolos para hacer lo mismo.


Los protocolos se pueden dividir en dos categor\'{\i}as:  de corriente o flujo
(streaming) y por paquetes.  La primera clase de protocolos transfiere
un fichero entero,
posiblemente calculando una suma de comprobaci\'on (checksum).  Esto apenas
supone un gasto extra de tiempo, pero precisa una conexi\'on fiable, porque
cualquier error causar\'{\i}a que todo el fichero tenga que volver a
ser enviado.  
Estos protocolos se suelen usar sobre conexiones de TCP, pero no
sobre l\'{\i}neas telef\'onicas.  Aunque los modems modernos hacen un
buen trabajo corrigiendo errores, no son perfectos, y tampoco lo es la
detecci\'on de errores entre el ordenador y el m\'odem.


Por su lado, los protocolos por paquetes parten el fichero en varias
partes de igual tama\~no.  Cada paquete se env\'{\i}a y recibe por separado,
se realiza una suma de comprobaci\'on, y se devuelve al origen un
paquete de confirmaci\'on.
Para que sea m\'as eficiente, se inventaron protocolos de ventanas
deslizantes, que permiten un n\'umero limitado (una ventana) de
paquetes sin esperar confirmaci\'on en un momento dado.  Esto
reduce considerablemente la cantidad de
tiempo que \prog{uucico} tiene que esperar durante una transmisi\'on.  A\'un
as\'{\i}, todos los c\'alculos extra necesarios en comparaci\'on a un
protocolo de 
flujo hace que los protocolos de paquetes sean ineficientes sobre TCP.


El ancho de los datos tambi\'en supone una diferencia.  A veces, el
env\'{\i}o de
caracteres de ocho bits sobre una conexi\'on serie es imposible, por ejemplo 
si la conexi\'on atraviesa un est\'upido servidor de terminales.  En este caso,
los caracteres con el octavo bit igual a uno tienen que ser
especialmente tratados. Cuando se env\'{\i}an caracteres de ocho bits sobre
una conexion
de siete bits, tienen que estar bajo la suposici\'on del peor caso posible. 
Esto duplica la cantidad de datos a transmitir, aunque la compresi\'on que
se hace por hardware puede compensar esto.  Las l\'{\i}neas que pueden
transmitir caracteres de ocho bits se llaman preparadas para ocho bits. \'Este
es el caso de todas las conexiones TCP, as\'{\i} como la mayor\'{\i}a
de los modems.


Existen los siguientes protocolos con Taylor UUCP 1.04:

\begin{dispitems}
\ditem[\emph{g}]
	\'Este es el protocolo m\'as com\'un y deber\'{\i}a ser entendido por
	pr\'acticamente todos los \prog{uucico}'s.  Hace comprobaci\'on de
	errores en profundidad y es, por lo tanto, apropiado para las
	ruidosas conexiones telef\'onicas. \emph{g}~require una conexi\'on 
	preparada para ocho bits.  Es un protocolo orientado a paquetes que
	usa una t\'ecnica de ventana deslizante.

\ditem[\emph{i}]
	\'Este es un protocolo bidireccional de paquetes que puede enviar
	y recibir ficheros al mismo tiempo.  Requiere una conexi\'on que 
	permita comunicaci\'on bidireccional simult\'anea (full-duplex)
	y preparada para ocho bits.  Actualmente s\'olo es usado por
	Taylor UUCP.

\ditem[\emph{t}]
	\'Este es un protocolo dise\~nado para usarse sobre una conexi\'on de
	TCP, u otras redes libres de errores.  Usa paquetes de 1024 bytes
	y requiere una conexi\'on de ocho bits.

\ditem[\emph{e}]
	Este protocolo b\'asicamente hace lo mismo que \emph{t}.  La principal
	diferencia es que \emph{e}~es un protocolo de flujo.

\ditem[\emph{f}]
	Este protocolo est\'a pensado para usarse sobre conexiones fiables
	X.25. Es un protocolo de flujo y espera una conexi\'on de siete
	bits. Los caracteres de ocho bits son codificados, lo cual lo hace
	muy ineficiente.

\ditem[\emph{G}]
	\'Esta es la versi\'on del {\it Unix SVR4}\footnote{N. del T.:
        Unix Sistema V Version 4} del protocolo~\emph{g}.
	Tambi\'en se utiliza en algunas otras versiones de UUCP.

\ditem[\emph{a}]
	Este protocolo es similar a ZMODEM.  Requiere una conexi\'on de ocho
	bits, pero codifica ciertos caracteres como XON y XOFF.

\end{dispitems}


\subsection{Ajuste del protocolo de transmisi\'on}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!protocolo!ajuste}

Todos los protocolos permiten alguna variaci\'on en el tama\~no de los paquetes,
el cron\'ometro y similares.  Usualmente, los valores por defecto funcionan
bien, pero puede no ser \'optimo para su
configuraci\'on.  El protocolo \emph{g}, por ejemplo, usa tama\~nos de ventanas de 1
a 7, y tama\~nos de paquetes en potencias de 2 desde 64 a 4096.\footnote{
  La mayor\'{\i}a de los programas incluidos en las distribuciones de \linux{}
  usan por defecto un tama\~no de ventana de 7 y paquetes de 128 bytes.
}  Si su l\'{\i}nea telef\'onica es tan ruidosa que ignora el 5 por ciento de
los paquetes, probablemente deber\'{\i}a disminuir el tama\~no de los paquetes
y de la ventana.  Sin embargo, en l\'{\i}neas de tel\'efono muy buenas el hecho de
enviar acuses de recibo por cada 128 bytes puede resultar un desperdicio,
as\'{\i} que podr\'{\i}a incrementar el tama\~no de los paquetes a 512
o incluso 1024.


Taylor UUCP provee un mecanismo para satisfacer sus necesidades mediante el
ajuste de estos par\'ametros con el comando \keyword{protocol-parameter}
en el fichero \file{sys}.  Por ejemplo, para ajustar el tama\~no de los
paquetes del protocolo \emph{g} a 512 cuando se conecte con el sistema
\host{pablo}, tiene que a\~nadir:


\begin{tscreen}
\begin{verbatim}
system          pablo
...
protocol-parameter g  packet-size  512
\end{verbatim}
\end{tscreen}


Los par\'ametros ajustables y sus nombres var\'{\i}an entre protocolos.  Para
ver una lista completa de \'estos puede consultar la documentaci\'on que
acompa\~na al c\'odigo fuente de Taylor UUCP.


\subsection{Selecci\'on de protocolos espec\'{\i}ficos}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!protocolo!selecci\'on}

No todas las implementaciones de \prog{uucico} hablan y entienden cada
protocolo, de modo que durante la fase de negociaci\'on de protocolos,
ambos procesos
tienen que ponerse de acuerdo en uno com\'um.  El \prog{uucico}
maestro ofrece al esclavo una lista de protocolos soportados enviando 
\term{P\var{protlist}}, de la cual el esclavo elige uno.


Seg\'un el tipo de puerto usado (m\'odem, TCP o directo), \prog{uucico} crea una
lista por defecto de protocolos.  Para m\'odem y conexiones directas, esta
lista normalmente incluye \emph{i}, \emph{a}, \emph{g}, \emph{G}, y
\emph{j}.  Para conexiones TCP, la lista es \emph{t}, 
\emph{e}, \emph{i}, \emph{a}, \emph{g}, \emph{G}, \emph{j}, y \emph{f}.
Esto se puede cambiar con el comando \keyword{protocols}, que se puede
especificar en una entrada de sistema o en una de puerto.  Por ejemplo,
usted podr\'{\i}a modificar la entrada del fichero \file{port} para su puerto
de m\'odem de esta manera:


\begin{tscreen}
\begin{verbatim}
port            serial1
...
protocols       igG
\end{verbatim}
\end{tscreen}


Esto requiere que cualquier conexi\'on entrante o saliente en este puerto
use \emph{i}, \emph{g} o \emph{G}.  Si el sistema remoto no soporta ninguno
de \'estos, la negociaci\'on fallar\'a.

\index{UUCP!protocolo|)}


\section{Soluci\'on de problemas}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% FAQ peque\~na y r\'apida de UUCP                                  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{uucp.misc.faq}
\index{UUCP!soluci\'on de problemas}

Esta secci\'on describe lo que puede ir mal con su conexi\'on de UUCP y
sugiere d\'onde buscar el error.  Sin embargo, s\'olo he puesto las
preguntas que se me han ocurrido, por lo que pueden surgir otras
muchas cosas que no diga aqu\'{\i}.


\index{UUCP!comprobaci\'on}
En cualquier caso, active la opci\'on de encontrar errores con \option{-xall},
y observe el resultado en el fichero \file{Debug} del directorio de cola.
Esto deber\'{\i}a ayudarle r\'apidamente a reconocer d\'onde reside el problema.
Siempre me ha servido de ayuda el activar el altavoz del m\'odem cuando no
se conecta.  Con un m\'odem compatible Hayes, esto se consigue a\~nadiendo
``\term{ATL1M1 OK}'' en el di\'alogo del m\'odem en el fichero \file{dial}.


La primera cosa a comprobar siempre deber\'{\i}a ser si todos los permisos
de los ficheros est\'an ajustados correctamente.  \prog{uucico} debe
tener identificaci\'on de usuario \user{uucp}, y todos los ficheros en
\uucplib, \uucpspool{} y \publicspool{} tienen que pertenecer a
\user{uucp}.  Tambi\'en hay algunos ficheros ocultos\footnote{
  Es decir, ficheros cuyo nombre empieza con un punto.  Estos ficheros
  normalmente no aparecen con un comando \prog{ls}.
} en el directorio de cola que tienen que pertenecer a \user{uucp}.


{\bf \prog{uucico} dice constantemente ``Wrong time to call''}:
Esto probablemente significa que en la entrada de sistema en \file{sys}, 
usted no especific\'o el comando \keyword{time} que determina a qu\'e horas
se puede llamar al sistema remoto, o bien especific\'o unas horas que en
realidad prohiben llamar en este momento.  Si no se especifica cu\'ando se
puede llamar, \prog{uucico} asume que no se puede llamar nunca a ese
sistema.


{\bf \prog{uucico} se queja de que el sistema ya est\'a en uso}:
Esto significa que \prog{uucico} detect\'o un fichero cerrojo (lock)
para el sistema remoto en \uucpspool.  El fichero cerrojo puede pertenecer
a una llamada anterior al sistema que fue interrumpida.  Sin embargo,
tambi\'en es posible que haya otro \prog{uucico} ejecutandose en el sistema
que est\'e intentando llamar al sistema remoto y se atasc\'o en una macro de
di\'alogo, etc.  Si este \prog{uucico} no consigue conectarse al sistema
remoto,  m\'atelo con una se\~nal de colgar (SIGHUP), y borre
cualquier fichero de bloqueo que haya dejado.


{\bf Me puedo conectar al sistema remoto, pero la macro de di\'alogo falla}:
Mire el texto que recibe del sistema remoto.  Si est\'a salteado, esto
puede ser un problema relacionado con la velocidad.  Si no, confirme que
realmente env\'{\i}a lo que su macro de di\'alogo espera recibir.  Recuerde,
la macro de di\'alogo empieza con una cadena de caracteres esperada.  Si usted
recibe la invitaci\'on de entrada al sistema (login), despues
env\'{\i}a su nombre pero luego no se le pregunta por la clave de
acceso, inserte un retraso antes de enviarlo, o
incluido entre las letras.  Puede ser que usted sea demasiado r\'apido para su
m\'odem.


{\bf Mi m\'odem no marca}:
Si su m\'odem no indica que la l\'{\i}nea DTR ha sido elevada cuando \prog{uucico}
hace una llamada, posiblemente no le ha dado el dispositivo correcto a
\prog{uucico}.  Si su m\'odem reconoce DTR, compruebe con un programa terminal
que usted puede escribir comandos.  Si esto funciona, active el eco con el 
comando \keyword{\bs E} al comienzo del di\'alogo del m\'odem.  Si esto no
produce un eco de sus comandos durante el di\'alogo del m\'odem, compruebe si 
la velocidad de la l\'{\i}nea es demasiado alta o demasiado baja para su m\'odem.
Si s\'{\i} que ve el eco, compruebe si ha desactivado las respuestas del m\'odem, o las
ha configurado como c\'odigos num\'ericos.  Verifique que la macro de di\'alogo
en s\'{\i} misma es v\'alida.  Recuerde que tiene que poner dos barras invertidas
para enviar una al m\'odem.


{\bf Mi m\'odem intenta marcar, pero la llamada no sale}:
Inserte un retraso en el n\'umero de tel\'efono.  Esto es especialmente \'util
cuando se llama fuera de la red interna de una compa\~n\'{\i}a.  Para la gente
en Europa, que normalmente marca con pulsos (pulse-tone), pruebe
con tonos (touch-tone).  En ciertos paises, los servicios telef\'onicos han
actualizado sus redes recientemente.  ``touch-tone'' ayuda a veces.


{\bf El fichero de registro (log) dice que tengo un ratio de paquetes perdidos
extremadamente alto}:
Esto parece un problema de velocidad.  Puede ser que la conexi\'on entre su
ordenador y su m\'odem sea demasiado lenta (recuerde adaptarla a la mayor
velocidad efectiva posible).  O puede ser que su hardware sea demasiado
lento para servir las interrupciones a tiempo.  Con un chip NSC~16550A
en su puerto serie, 38kbps puede funcionar razonablemente bien; sin
embargo, sin FIFOs (como el chip 16450), el l\'{\i}mite es 9600.  Tambi\'en tiene
que asegurarse de que la negociaci\'on hardware est\'a incluida en la
l\'{\i}nea serie.


Otra posible causa es que la negociaci\'on hardware no est\'e
activada en el puerto.  Taylor UUCP 1.04 no tiene mecanismos para 
activar la negociaci\'on de RTS/CTS.  Tiene que activarla expl\'{\i}citamente
en el fichero \file{rc.serial} usando el siguiente comando:


\begin{tscreen}
\begin{verbatim}
$ stty crtscts < /dev/cua3
\end{verbatim}
\end{tscreen}


{\bf Puedo entrar en el otro sistema, pero la negociaci\'on falla}:
Bien, puede ser debido a muchas causas.  Los mensajes en el fichero
de registro deber\'{\i}an decirle un mont\'on de cosas.  Mire qu\'e protocolos 
ofrece el sistema remoto (env\'{\i}a un \term{P}\var{protlist} durante la
negociaci\'on).  A lo mejor no tienen nada en com\'um (?`selecion\'o
alg\'un protocolo en \file{sys} o \file{port}?).


Si el sistema remoto env\'{\i}a \term{RLCK}, hay un fichero de bloqueo
(lock) para su
sistema en el sistema remoto.  Si no es porque usted ya est\'a conectado
al sistema remoto en otra l\'{\i}nea, pida que lo borren.


Si env\'{\i}a \term{RBADSEQ}, el otro sistema tiene la comprobaci\'on de la cuenta
de conversaci\'on activada para su sistema, pero los n\'umeros no se
corresponden.  Si env\'{\i}a \term{RLOGIN}, no le fue permitido entrar con ese
nombre de usuario.


\section{Archivos de registro hist\'orico (Log Files)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This section-to-be describes the function of the logfiles,    %
% and says a little about how to read them.                     %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\index{UUCP!logging y debugging|(}


Cuando se compila el paquete de UUCP para usar ficheros de registro
al estilo Taylor-UUCP, se tendr\'an tres ficheros hist\'oricos globales,
y todos residir\'an en el directorio de cola.  El fichero principal se
llama \file{Log} y contiene toda la informaci\'on sobre las conexiones
establecidas y los ficheros transferidos.  Un extracto t\'{\i}pico podr\'{\i}a
ser como el siguiente (despues de formatearlo para que quepa en la
p\'agina):


\begin{tscreen}
\begin{verbatim}
uucico pablo - (1994-05-28 17:15:01.66 539) Calling system pablo (port cua3)
uucico pablo - (1994-05-28 17:15:39.25 539) Login successful
uucico pablo - (1994-05-28 17:15:39.90 539) Handshake successful
               (protocol 'g' packet size 1024 window 7)
uucico pablo postmaster (1994-05-28 17:15:43.65 539) Receiving D.pabloB04aj
uucico pablo postmaster (1994-05-28 17:15:46.51 539) Receiving X.pabloX04ai
uucico pablo postmaster (1994-05-28 17:15:48.91 539) Receiving D.pabloB04at
uucico pablo postmaster (1994-05-28 17:15:51.52 539) Receiving X.pabloX04as
uucico pablo postmaster (1994-05-28 17:15:54.01 539) Receiving D.pabloB04c2
uucico pablo postmaster (1994-05-28 17:15:57.17 539) Receiving X.pabloX04c1
uucico pablo - (1994-05-28 17:15:59.05 539) Protocol 'g' packets: sent 15,
                resent 0, received 32
uucico pablo - (1994-05-28 17:16:02.50 539) Call complete (26 seconds)
uuxqt pablo postmaster (1994-05-28 17:16:11.41 546) Executing X.pabloX04ai
               (rmail okir)
uuxqt pablo postmaster (1994-05-28 17:16:13.30 546) Executing X.pabloX04as
               (rmail okir)
uuxqt pablo postmaster (1994-05-28 17:16:13.51 546) Executing X.pabloX04c1
               (rmail okir)
\end{verbatim}
\end{tscreen}


\index{UUCP!estad\'{\i}sticas}
El siguiente fichero importante es \file{Stats}, que lista las estad\'{\i}sticas
de transferencias de ficheros.  La secci\'on de \file{Stats} que corresponde a
la transferencia anterior se muestra aqu\'{\i}:


\begin{tscreen}
\begin{verbatim}
postmaster pablo (1994-05-28 17:15:44.78)
                  received 1714 bytes in 1.802 seconds (951 bytes/sec)
postmaster pablo (1994-05-28 17:15:46.66)
                  received 57 bytes in 0.634 seconds (89 bytes/sec)
postmaster pablo (1994-05-28 17:15:49.91)
                  received 1898 bytes in 1.599 seconds (1186 bytes/sec)
postmaster pablo (1994-05-28 17:15:51.67)
                  received 65 bytes in 0.555 seconds (117 bytes/sec)
postmaster pablo (1994-05-28 17:15:55.71)
                  received 3217 bytes in 2.254 seconds (1427 bytes/sec)
postmaster pablo (1994-05-28 17:15:57.31)
                  received 65 bytes in 0.590 seconds (110 bytes/sec)
\end{verbatim}
\end{tscreen}


Como en el caso anterior, las l\'{\i}neas han sido partidas para que quepan
en la p\'agina.


El tercer fichero es \file{Debug}.  \'Este es el sitio donde se
incluye toda la 
informaci\'on para buscar errores.  Si usted usa detecci\'on 
de errores (debugging), tiene que asegurarse de que este fichero tenga modo
de protecci\'on de 600.  Dependiendo del modo de b\'usqueda de errores que haya
elegido, este fichero puede incluir el nombre de usuario y la clave que
usted usa para conectarse al sistema remoto.


\index{UUCP!HDB}
Algunos programas de UUCP que incluyen algunas distribuciones de Linux
han sido compilados para usar el estilo de fichero de registro
hist\'orico de HDB.  HDB 
UUCP usa muchos ficheros de registro archivados bajo
\uucpspool\file{/.Log}.  Este directorio contiene tres directorios m\'as,
llamados \prog{uucico}, \prog{uuxqt} y \prog{uux}.  \'Estos contienen el
resultado de informaci\'on hist\'orica generada por cada uno de los comandos
correspondientes, ordenada en diferentes ficheros para cada sistema.  Por lo
tanto, la salida del programa \prog{uucico} cuando se llama a \host{pablo}
acabar\'a en \file{.Log/uucico/pablo}, mientras que el \prog{uuxqt}
correspondiente escribir\'a en \file{.Log/uuxqt/pablo}.  Las
l\'{\i}neas escritas
a cada uno de estos ficheros son sin embargo iguales que en Taylor UUCP.


Cuando active la opci\'on de b\'usqueda de errores con el estilo HDB,  la
informaci\'on ser\'a escrita en el directorio \file{.Admin} bajo \uucpspool.
Durante llamadas salientes, la informaci\'on se env\'{\i}a al fichero 
\file{.Admin/audit.local}, mientras que la salida de \prog{uucico} cuando
alguien nos llama se graba en \file{.Admin/audit}.

\index{UUCP!logging y debugging|)}



\index{UUCP|)}
\index{configurar!UUCP|)}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
%                E N D   O F   C H A P T E R                    %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
