%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
%                       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.                                                     %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% When viewing this document with vi on an 80-columns screen,   %
% do a ':se nonumber' first.                                    %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
% Traduccion realizada por:                                     %
%   Cesar Ballardini <cballard@santafe.com.ar>                  %
% Revisado en 26-Marzo-1997 por:                                %
%   Juan Jose Amor <jjamor@ls.fi.upm.es>                        %
% Revisado en 15-Abril-1999 por:                                %
%   Juan Jose Amor <jjamor@ls.fi.upm.es>                        %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
%               S T A R T   O F   C H A P T E R                 %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{appendix}

%% Forzar cabecera desde aqui (ver si cambia al cambiar de capitulo,
%% por ejemplo al llegar al capitulo de la GPL)
\markright{AP\'ENDICES}

%\chapter{A Null Printer Cable for PLIP}
\chapter{Un Cable de Impresora para PLIP}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Hardware							%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{appendix.plip}
%To make a Null Printer Cable for use with a PLIP connection, you need
%two 25-pin connectors (called DB-25) and some 11-conductor cable.
%The cable must be at most 15~meters long.

En la construcci\'on de un cable de impresora tipo nulo para usar en una
conexi\'on PLIP, se necesitar\'an dos conectores de 25 patillas (de los
llamados DB-25) y un cable de 11 hilos. El cable no puede tener
m\'as de 15~metros de largo.

%If you look at the connector, you should be able to read tiny numbers
%at the base of each pin, from 1 for the pin top left (if you hold the 
%broader side up) to 25 for the pin bottom right. For the Null Printer 
%cable, you have to connect the following pins of both connectors
%with each other:

Si mira el conector, podr\'a ver peque\~nos n\'umeros en la base de cada
patilla, que van desde el 1 en la patilla superior izquierda (si coloca
el lado m\'as ancho arriba) hasta el 25 para la patilla de abajo a la derecha.
Para tener un cable de impresora tipo Nulo, se deber\'an conectar las
siguientes patillas entre ambos conectores:


{\small
\iftex
 \begin{tabular}{lr@{---}rl}
\else
 \begin{tabular}{lrrl}
\fi
   {\tt D0}	&   2 &  15 & {\tt ERROR}	\\
   {\tt D1}	&   3 &  13 & {\tt SLCT}	\\
   {\tt D2}	&   4 &  12 & {\tt PAPOUT}	\\
   {\tt D3}	&   5 &  10 & {\tt ACK}		\\
   {\tt D4}	&   6 &  11 & {\tt BUSY}	\\
   {\tt GROUND}	&  25 &  25 & {\tt GROUND}	\\
   {\tt ERROR}	&  15 &   2 & {\tt D0}		\\
   {\tt SLCT}	&  13 &   3 & {\tt D1}		\\
   {\tt PAPOUT}	&  12 &   4 & {\tt D2}		\\
   {\tt ACK}	&  10 &   5 & {\tt D3}		\\
   {\tt BUSY}	&  11 &   6 & {\tt D4}
 \end{tabular}
}

\ifinfo
 \begin{verbatim}
   D0        2  ---  15    ERROR        
   D1        3  ---  13    SLCT 
   D2        4  ---  12    PAPOUT       
   D3        5  ---  10    ACK          
   D4        6  ---  11    BUSY 
   GROUND   25  ---  25    GROUND       
   ERROR    15  ---   2    D0           
   SLCT     13  ---   3    D1           
   PAPOUT   12  ---   4    D2           
   ACK      10  ---   5    D3           
   BUSY     11  ---   6    D4
 \end{verbatim}
\fi

%All remaining pins remain unconnected. If the cable is shielded,
%the shield should be connected to the DB-25's metallic shell
%on one end only.
Todas las patillas restantes quedar\'an desconectadas. Si el cable
posee una malla externa, la misma se conectar\'a a la carcasa
met\'alica del conector DB-25 en uno solo de los extremos.

%\chapter{Sample \prog{smail} Configuration Files}
\chapter{Ejemplos de Archivos de Configuraci\'on para \prog{smail}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Sample smail files						%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\label{appendix.smail}

%This section shows sample configuration files for a UUCP leaf site on a
%local area network. They are based on the sample files included
%in the source distribution of \prog{smail-3.1.28}.
%Although I make a feeble attempt to explain how these files work,
%you are advised to read the very fine \prog{smail(8)} manual page,
%which discusses these files in great length. Once you've understood
%the basic idea behind \prog{smail} configuration, it's worthwhile
%reading. It's easy!

Este ap\'endice muestra ejemplos de archivos de configuraci\'on para un sistema
UUCP terminal en una red de \'area local. Est\'an basados en los archivos de ejemplo
que se incluyen en la distribuci\'on de las fuentes de \prog{smail-3.1.28}.
A\'un cuando se intenta explicar someramente c\'omo trabajan dichos archivos, le
aconsejo que lea la p\'agina de manual de \prog{smail(8)}, que
trata acerca de estos archivos con gran detalle. Una vez que Ud. 
comprendi\'o la idea b\'asica de la configuraci\'on de \prog{smail}, merece
la pena leerla. !`Es f\'acil! 

%The first file shown is the \file{routers} file, which describes a set of
%routers to \prog{smail}.  When \prog{smail} has to deliver a message to
%a given address, it hands the address to all routers in turn, until one
%of them matches it.  Matching here means that the router finds the
%destination host in its database, be it the \file{paths} file,
%\file{/etc/hosts}, or whatever routing mechanism the router interfaces
%to.

El primer archivo que se muestra es el \file{routers}, mediante el cual
se establecen los encaminadores de \prog{smail}.
Cuando \prog{smail} tiene que enviar un mensaje a una direcci\'on dada, prueba
con las direcciones de todos los encaminadores, uno por vez, hasta que concuerda
con la de uno de ellos.
La concordancia significa que el encaminador encuentra
el nodo de destino en su base de datos, sea en el archivo \file{paths}, en 
el \file{/etc/hosts}, o en cual sea el mecanismo de encaminamiento que 
se utilice.

%Entries in \prog{smail} configuration files always begin with a unique
%name identifying the router, transport, or director.  They are followed
%by a list of attributes that define its behavior.  This list consists of
%a set of global attributes, such as the \emph{driver} used, and private
%attributes that are only understood by that particular driver.
%Attributes are separated by commas, while the sets of global and private
%attributes are separated from each other using a semicolon.

Las entradas en los archivos de configuraci\'on de \prog{smail} siempre 
comienzan con un nombre \'unico que identifica el encaminador, transporte,
o programa de entrega local.
Luego le sigue una lista de atributos que definen su comportamiento.
Esta lista consta de un conjunto de atributos globales, tales como el
\emph{controlador} utilizado, y atributos privados que s\'olo tienen sentido
para ese controlador particular.
Los atributos est\'an separados mediante comas.
El conjunto de atributos globales se separa de los privados mediante
un punto y coma.

%To make these fine distinctions clear, assume you want to maintain two
%separate pathalias files; one containing the routing information for
%your domain, and a second one containing global routing information,
%probably generatzed from the UUCP maps. With \prog{smail}, you
%can now specify two routers in the \file{routers} file, both of
%which use the \keyword{pathalias} driver.  This driver looks up hostnames
%in a pathalias database. It expects to be given the name of the file
%in a private attribute:

Intentemos clasificar estas distinciones.
Supongamos que Ud. quiere mantener dos archivos de alias de caminos distintos;
uno que contiene la informaci\'on de encaminamiento para su dominio, y otro
que almacena la informaci\'on de encaminamiento global, generada probablemente
por los mapas de UUCP.
Con \prog{smail}, puede especificar dos encaminadores en el archivo
\file{routers}, y ambos utilizar\'an el controlador \keyword{pathalias}.
Este controlador busca los nombres de nodo en la base de datos {\tt pathalias}.

%\begin{tscreen}
%\begin{verbatim}
%#
%# pathalias database for intra-domain routing
%domain_paths: 
%        driver=pathalias,         # look up host in a paths file
%        transport=uux;            # if matched, deliver over UUCP
%
%        file=paths/domain,        # file is /usr/lib/smail/paths/domain
%        proto=lsearch,            # file is unsorted (linear search)
%        optional,                 # ignore if the file does not exist
%        required=vbrew.com,       # look up only *.vbrew.com hosts
%
%#
%# pathalias database for routing to hosts outside our domain
%world_paths:  
%        driver=pathalias,         # look up host in a paths file
%        transport=uux;            # if matched, deliver over UUCP
%
%        file=paths/world,         # file is /usr/lib/smail/paths/world
%        proto=bsearch,            # file is sorted with sort(1)
%        optional,                 # ignore if the file does not exist
%        -required,                # no required domains
%        domain=uucp,              # strip ending ".uucp" before searching
%
%\end{verbatim}
%\end{tscreen}

\begin{tscreen}
\begin{verbatim}
#
# base de datos de alias de caminos para el encaminamiento dentro del dominio 
domain_paths: 
        driver=pathalias,         # busca el nodo en el archivo de caminos
        transport=uux;            # si lo encuentra lo envia a traves de UUCP

        file=paths/domain,        # el archivo es /usr/lib/smail/paths/domain
        proto=lsearch,            # el archivo no esta ordenado (busqueda lineal)
        optional,                 # si el archivo no existe, no importa
        required=vbrew.com,       # buscar solo los nodos tipo *.vbrew.com

#
# base de datos de pathalias para encaminamientos fuera de nuestro dominio
world_paths:  
        driver=pathalias,         # busca el nodo en el archivo de caminos
        transport=uux;            # si lo encuentra, lo envia a traves de UUCP

        file=paths/world,         # el archivo es /usr/lib/smail/paths/world
        proto=bsearch,            # el archivo fue clasificado con sort(1)
        optional,                 # si el archivo no existe, no importa
        -required,                # no es obligatorio tener dominio
        domain=uucp,              # quitar el ".uucp" final antes de la busqueda

\end{verbatim}
\end{tscreen}


%The second global attribute given in each of the two \file{routers}
%entries above defines the transport that should be used when the router
%matches the address.  In our case, the message will be delivered using
%the \keyword{uux} transport.  Transports are defined in the
%\file{transports} file, which is exlained below.

El segundo atributo global que se ha mostrado en cada una de las dos
entradas de \file{routers} define el transporte que se deber\'a utilizar
cuando el encaminador haga concordar las direcciones.
En nuestro caso, el mensaje se enviar\'a utilizando el transporte \keyword{uux}.
Los transportes se definen en el archivo \file{transports}, que se 
explica m\'as adelante.

%You can fine-tune by which transport a message will be delivered if you
%specify a mathod file instead of the \keyword{transports} attribute.
%Method files provide a mapping from target hostnames to transports.
%We won't deal with them here.

Se puede hacer un ajuste m\'as fino con respecto a qu\'e transporte se
utilizar\'a para enviar un mensaje si especifica un archivo de m\'etodo 
en lugar del atributo \keyword{transport}.
Los archivos de m\'etodo son una forma de traducir los nombres de nodo a 
los transportes necesarios.
No los trataremos aqu\'{\i}.

%The following \file{routers} file defines routers for a local area
%network that query the resolver library.  On an Internet host, however,
%you would want to use a router that handles MX records.  You should
%therefore uncomment the alternative \keyword{inet\_bind} router that
%uses \prog{smail}'s builtin BIND driver.

El siguiente archivo \file{routers} define los encaminadores para una red 
de \'area local que utiliza la biblioteca de resoluci\'on.
Sin embargo, en un nodo Internet Ud. querr\'a utilizar un encaminador que 
maneje registros MX. Por lo tanto, deber\'a quitar los caracteres de 
comentario del encaminador alternativo \keyword{inet\_bind} que usa el 
controlador BIND incorporado en \prog{smail}.

%In an environment that mixes UUCP and TCP/IP, you may encounterthe
%problem that you have hosts in your \file{/etc/hosts} file that
%you have only occasional SLIP or PPP contact with.  Usually, you
%would still want to send any mail for them over UUCP. To prevent
%the \keyword{inet\_hosts} driver from matching these hosts, 
%you have to put them into the \file{paths/force} file. This is
%another pathalias-style database, and is consulted before \prog{smail}
%queries the resolver.

En un contexto en el cual se utilizan UUCP y TCP/IP a la vez, puede Ud. 
encontrarse con el problema de que haya ciertos nodos que figuran en su
archivo \file{/etc/hosts} con los cuales se contacta s\'olo ocasionalmente
mediante SLIP o PPP.
En general, el correo hacia estos sistemas se debe enviar mediante UUCP.
Para evitar que el controlador \keyword{inet\_hosts} concuerde con dichas
m\'aquinas, deber\'a agregarlos al archivo \file{paths/force}.
Este archivo es otra base de datos del estilo de alias de caminos, y se
consulta antes de que \prog{smail} consulte al sistema de resoluci\'on. 


%\begin{tscreen}
%\begin{verbatim}
%# A sample /usr/lib/smail/routers file
%#
%# force - force UUCP delivery to certain hosts, even when
%#       they are in our /etc/hosts
%force:
%        driver=pathalias,         # look up host in a paths file
%        transport=uux;            # if matched, deliver over UUCP
%
%        file=paths/force,         # file is /usr/lib/smail/paths/force
%        optional,                 # ignore if the file does not exist
%        proto=lsearch,            # file is unsorted (linear search)
%        -required,                # no required domains
%        domain=uucp,              # strip ending ".uucp" before searching
%
%
%# inet_addrs - match domain literals containing literal
%#       IP addresses, such as in janet@[191.72.2.1]
%inet_addrs:
%        driver=gethostbyaddr,     # driver to match IP domain literals
%        transport=smtp;           # deliver using SMTP over TCP/IP
%
%        fail_if_error,            # fail if address is malformed 
%        check_for_local,          # deliver directly if host is ourself
%
%# inet_hosts - match hostnames with gethostbyname(3N)
%#       Comment this out if you wish to use the BIND version instead.
%inet_hosts:
%        driver=gethostbyname,     # match hosts with the library function
%        transport=smtp;           # use default SMTP
%
%        -required,                # no required domains
%        -domain,                  # no defined domain suffixes
%        -only_local_domain,       # don't restrict to defined domains
%
%# inet_hosts - alternate version using BIND to access the DNS
%#inet_hosts:
%#       driver=bind,              # use built-in BIND driver
%#       transport=smtp;           # use TCP/IP SMTP for delivery
%#
%#       defnames,                 # use standard domain searching
%#       defer_no_connect,         # try again if the nameserver is down
%#       -local_mx_okay,           # fail (don't pass through) an MX
%#                                 # to the local host
%
%#
%# pathalias database for intra-domain routing
%domain_paths: 
%        driver=pathalias,         # look up host in a paths file
%        transport=uux;            # if matched, deliver over UUCP
%
%        file=paths/domain,        # file is /usr/lib/smail/paths/domain
%        proto=lsearch,            # file is unsorted (linear search)
%        optional,                 # ignore if the file does not exist
%        required=vbrew.com,       # look up only *.vbrew.com hosts
%
%#
%# pathalias database for routing to hosts outside our domain
%world_paths:  
%        driver=pathalias,         # look up host in a paths file
%        transport=uux;            # if matched, deliver over UUCP
%
%        file=paths/world,         # file is /usr/lib/smail/paths/world
%        proto=bsearch,            # file is sorted with sort(1)
%        optional,                 # ignore if the file does not exist
%        -required,                # no required domains
%        domain=uucp,              # strip ending ".uucp" before searching
%
%
%# smart_host - a partically specified smarthost director
%#       If the smart_path attribute is not defined in
%#       /usr/lib/smail/config, this router is ignored.
%#       The transport attribute is overridden by the global
%#       smart_transport variable
%smart_host:
%        driver=smarthost,         # special-case driver
%        transport=uux;            # by default deliver over UUCP
%
%        -path,                    # use smart_path config file variable
%\end{verbatim}
%\end{tscreen}
\begin{tscreen}
\begin{verbatim}
# Ejemplo de archivo /usr/lib/smail/routers
#
# force - obliga a enviar mediante UUCP a ciertos nodos, aun en el caso
#       en que esten en nuestro /etc/hosts
force:
        driver=pathalias,         # busca el nodo en el archivo de caminos
        transport=uux;            # si lo encuentra, envio a traves de UUCP

        file=paths/force,         # el archivo es /usr/lib/smail/paths/force
        optional,                 # si el archivo no existe, no importa
        proto=lsearch,            # el archivo no esta ordenado 
                                  # (busqueda lineal)
        -required,                # no es obligatorio tener dominio
        domain=uucp,              # quitar el ".uucp" final antes de la busqueda

# inet_addrs - encuentra literales de dominio que contienen literales
#       de direcciones de IP, como por ejemplo janet@[191.72.2.1]
inet_addrs:
        driver=gethostbyaddr,     # controlador para encontrar literales
                                  # de dominios IP
        transport=smtp;           # enviar utilizando SMTP sobre TCP/IP

        fail_if_error,            # fallar si la direccion esta mal formada
        check_for_local,          # enviar directamente si nosotros somos 
                                  # el nodo

# inet_hosts - encuentra nombres de nodo con gethostbyname(3N)
#       Quitelo de los comentarios si desea usar en su lugar la version BIND
inet_hosts:
        driver=gethostbyname,     # busca nodos con la funcion de biblioteca
        transport=smtp;           # usar SMTP de forma predeterminada

        -required,                # no es obligatorio tener dominio
        -domain,                  # no hay sufijos de dominio definidos
        -only_local_domain,       # no se restrinja a los dominios definidos

# inet_hosts - version alternativa usando BIND para acceder al DNS
#inet_hosts:
#       driver=bind,              # utilizar el controlador BIND incorporado
#       transport=smtp;           # usar TCP/IP SMTP para el envio
#
#       defnames,                 # usar busqueda de dominio estandar
#       defer_no_connect,         # intentar de nuevo si el servidor de
                                  # nombres no esta activo
#       -local_mx_okay,           # 

#
# base de datos tipo pathalias para el encaminamiento dentro del dominio
domain_paths: 
        driver=pathalias,         # busca el nodo en el archivo de caminos
        transport=uux;            # si lo encuentra, envio a traves de UUCP

        file=paths/domain,        # el archivo es /usr/lib/smail/paths/domain
        proto=lsearch,            # el archivo no esta ordenado
                                  # (busqueda lineal)
        optional,                 # si el archivo no existe, no importa
        required=vbrew.com,       # buscar solo los nodos tipo *.vbrew.com

#
# base de datos tipo pathalias p/encaminar hacia nodos fuera de nuestro dominio
world_paths:  
        driver=pathalias,         # busca el nodo en el archivo de caminos
        transport=uux;            # si lo encuentra, envio a traves de UUCP

        file=paths/world,         # el archivo es /usr/lib/smail/paths/world
        proto=bsearch,            # el archivo fue clasificado con sort(1)
        optional,                 # si el archivo no existe, no importa
        -required,                # no es obligatorio tener dominios
        domain=uucp,              # quitar el ".uucp" final antes de la busqueda


# smart_host - redireccionador de nodo inteligente parcialmente especificado
#       Si el atributo smart_path  no se define en
#       /usr/lib/smail/config, se ignorara este encaminador.
#       La variable global smart_transport tiene precedencia sobre
#       el atributo transport
smart_host:
        driver=smarthost,         # controlador para el caso especial
        transport=uux;            # si no hay otra especificacion, 
                                  # envio a traves de UUCP

        -path,                    # usar la variable del archivo
                                  # de configuracion smart_path
\end{verbatim}
\end{tscreen}
\medskip


%The handling of mail for local addresses is configured in the
%\file{directors} file.  It is made up just like the \file{routers} file,
%with a list of entries that define a director each.  Directors do
%\emph{not} deliver a message, they merely perform all the redirection
%that is possible, for instance through aliases, mail forwarding, and the
%like.

El manejo del correo para las direcciones locales se configura en el archivo
\file{directors}.
\'Este se construye de la misma manera que el archivo \file{routers}, 
y consta de una lista de entradas que definen los redirectores respectivos.
Los redirectores \emph{no} env\'{\i}an los mensajes, sino que solamente realizan 
todas las redirecciones que sean posibles, por ejemplo a trav\'es de alias,
reenv\'{\i}o de correo y cosas por el estilo.

%When delivering mail to a local address, such as \email{janet}, 
%\prog{smail} passes the usr name to all directors in turn. If
%a director matches, it either specifies a transport the message
%should be delivered by (for instance, to the user's mailbox file),
%or generates a new address (for instance, after evaluating an
%alias).

Cuando se env\'{\i}a correo a una direcci\'on local, como \email{janet}, 
\prog{smail} pasa el nombre del usuario a todos los redirectores del
m\'odulo de entrega local, uno por vez.
Si un redirector concuerda, entonces o bien especifica el transporte
a trav\'es del cual el mensaje debe enviarse (por ejemplo, el nombre
de archivo del buz\'on del usuario) o, si no, genera una nueva direcci\'on
(por ejemplo al evaluar un alias).

%Because of the security issues involved, directors usually do a lot of
%checking of whether the files they use may be compromised or not.
%Addresses obtained in a somewhat dubious way (for instance from a
%world-writable \file{aliases} file) are flagged as unsecure.  Some
%transport drivers will turn down such addresses, for instance the
%transport that delivers a message to a file.

Por las cuestiones de seguridad involucradas, los redirectores generalmente
realizan varios controles para ver si los archivos que se usan son
archivos sensibles del sistema.
Las direcciones que se obtienen a partir de medios dudosos (por ejemplo desde
un archivo \file{aliases} con permisos de escritura para todo el mundo) se
indican como inseguras. Algunos controladores de transporte se negar\'an a utilizar
dichas direcciones, por ejemplo el transporte que env\'{\i}a mensajes a un archivo.

%Apart from this, \prog{smail} also \emph{associates a user} with each
%address.  Any write or read operations are performed as the user.  For
%delivery to, say \user{janet}'s mailbox, the address is of course
%associated with \user{janet}.  Other addresses, such as those obtained
%from the \file{aliases} file, have other users associated from them, for
%instance, the \user{nobody} user.

Adem\'as, \prog{smail} tambi\'en \emph{asocia un usuario} con cada direcci\'on.
Cualquier operaci\'on de lectura o escritura se realizan operando con los permisos
y privilegios del usuario correspondiente.
Para enviar un mensaje a, por ejemplo el buz\'on de \user{janet}, la direcci\'on
est\'a asociada por supuesto a \user{janet}.
Las otras direcciones, tales como las que se obtienen del archivo \file{aliases},
tienen otros usuarios asociados a ellas, por ejemplo, el usuario
\user{nobody}.

%For details of these features, please refer to the \file{smail(8)}
%manpage.

Para m\'as detalles de estas caracter\'{\i}sticas, refi\'erase por favor a la
p\'agina de manual de \file{smail(8)}.

\medskip
%\begin{tscreen}
%\begin{verbatim}
%# A sample /usr/lib/smail/directors file
%
%# aliasinclude - expand ":include:filename" addresses produced
%#       by alias files
%aliasinclude:
%        driver=aliasinclude,      # use this special-case driver
%        nobody;                   # access file as nobody user if unsecure
%
%        copysecure,               # get permissions from alias director
%        copyowners,               # get owners from alias director
%
%# forwardinclude - expand ":include:filename" addrs produced
%#       by forward files
%forwardinclude:
%        driver=forwardinclude,    # use this special-case driver
%        nobody;                   # access file as nobody user if unsecure
%
%        checkpath,                # check path accessibility
%        copysecure,               # get perms from forwarding director
%        copyowners,               # get owners from forwarding director
%
%# aliases - search for alias expansions stored in a database
%aliases:
%        driver=aliasfile,         # general-purpose aliasing director
%        -nobody,                  # all addresses are associated
%                                  # with nobody by default anyway
%        sender_okay,              # don't remove sender from expansions
%        owner=owner-$user;        # problems go to an owner address
%
%        file=/usr/lib/aliases,    # default: sendmail compatible
%        modemask=002,             # should not be globally writable
%        optional,                 # ignore if file does not exist
%        proto=lsearch,            # unsorted ASCII file
%
%# dotforward - expand .forward files in user home directories
%dotforward:
%        driver=forwardfile,       # general-purpose forwarding director
%        owner=real-$user,         # problems go to the user's mailbox
%        nobody,                   # use nobody user, if unsecure
%        sender_okay;              # sender never removed from expansion
%
%        file=~/.forward,          # .forward file in home directories
%        checkowner,               # the user can own this file
%        owners=root,              # or root can own the file
%        modemask=002,             # it should not be globally writable
%        caution=0-10:uucp:daemon, # don't run things as root or daemons
%        # be extra careful of remotely accessible home directories
%        unsecure="~ftp:~uucp:~nuucp:/tmp:/usr/tmp",
%
%# forwardto - expand a "Forward to " line at the top of
%#       the user's mailbox file
%forwardto:
%        driver=forwardfile,
%        owner=Postmaster,         # errors go to Postmaster
%        nobody,                   # use nobody user, if unsecure
%        sender_okay;              # don't remove sender from expansion
%
%        file=/var/spool/mail/${lc:user}, # location of user's mailbox
%        forwardto,                # enable "Forward to " check
%        checkowner,               # the user can own this file
%        owners=root,              # or root can own the file
%        modemask=0002,            # under System V, group mail can write
%        caution=0-10:uucp:daemon, # don't run things as root or daemons
%
%# user - match users on the local host with delivery to their mailboxes
%user:   driver=user;              # driver to match usernames
%
%        transport=local,          # local transport goes to mailboxes
%
%# real_user - match usernames when prefixed with the string "real-"
%real_user:
%        driver=user;              # driver to match usernames
%
%        transport=local,          # local transport goes to mailboxes
%        prefix="real-",           # for example, match real-root
%
%# lists - expand mailing lists stored below /usr/lib/smail/lists
%lists:  driver=forwardfile,
%        caution,                  # flag all addresses with caution
%        nobody,                   # and then associate the nobody user
%        sender_okay,              # do NOT remove the sender
%        owner=owner-$user;        # the list owner
%
%        # map the name of the mailing list to lower case
%        file=lists/${lc:user},
%\end{verbatim}
%\end{tscreen}
\begin{tscreen}
\begin{verbatim}
# Ejemplo de archivo /usr/lib/smail/directors

# aliasinclude - expande las direcciones ":include:filename"
#       producidas por los archivos de alias
aliasinclude:
        driver=aliasinclude,      # use este controlador para caso especial
        nobody;                   # si es inseguro, acceder al archivo como
                                  # usuario nobody

        copysecure,               # obtener los permisos desde el
                                  # redireccionador de alias
        copyowners,               # obtener los propietarios a partir del
                                  # redireccionador de alias

# forwardinclude - expande las direcciones ":include:filename"
#       producidas por los archivos de reenvio (forward)
forwardinclude:
        driver=forwardinclude,    # use este controlador de caso especial
        nobody;                   # si es inseguro, acceder al archivo como
                                  # usuario nobody

        checkpath,                # controlar la accesibilidad del camino
        copysecure,               # obtener los permisos desde el
                                  # redireccionador de reenvios
        copyowners,               # obtener los propietarios desde el
                                  # redireccionador de reenvios

# aliases - buscar las expansiones de alias almacenadas en la base de datos
aliases:
        driver=aliasfile,         # redireccionador de alias de proposito general
        -nobody,                  # de manera predeterminada, todas las direcciones
                                  # estan siempre asociadas a nobody
        sender_okay,              # no quitar el remitente de las expansiones
        owner=owner-$user;        # los problemas se mandan a la direccion
                                  # del propietario

        file=/usr/lib/aliases,    # predeterminado: compatible con sendmail
        modemask=002,             # no debe ser de escritura para todo el mundo
        optional,                 # si el archivo no existe, no importa
        proto=lsearch,            # archivo ASCII sin ordenar

# dotforward - expande los archivos .forward de los directorios 'home'
#              de los usuarios
dotforward:
        driver=forwardfile,       # redireccionador de reenvios de
                                  # proposito general
        owner=real-$user,         # los problemas se envian al buzon del usuario
        nobody,                   # usar usuario nobody, si es inseguro
        sender_okay;              # nunca se quita el remitente en la expansion

        file=~/.forward,          # archivo .forward en los directorios 'home'
        checkowner,               # el usuario puede ser el propietario
                                  # de este archivo
        owners=root,              # o el root puede serlo
        modemask=002,             # no debe ser de escritura para todo el mundo
        caution=0-10:uucp:daemon, # no correr como root o daemon
        # hay que ser extremadamente cuidadoso con los directorios 'home'
        # que se acceden remotamente
        unsecure="~ftp:~uucp:~nuucp:/tmp:/usr/tmp",

# forwardto - expande la linea "Forward to " al frente
# del archivo buzon del usuario
forwardto:
        driver=forwardfile,
        owner=Postmaster,         # errores al Postmaster
        nobody,                   # usar usuario nobody, si es inseguro
        sender_okay;              # no quitar remitente en la expansion

        file=/var/spool/mail/${lc:user}, # posicion del buzon del usuario
        forwardto,                # habilitar el control "Forward to "
        checkowner,               # el usuario puede ser propietario
                                  # de este archivo
        owners=root,              # o el root puede serlo
        modemask=0002,            # bajo System V, el grupo mail puede escribirlo
        caution=0-10:uucp:daemon, # no corra como root o daemon

# user - encuentra usuarios en el nodo local con envio a sus respectivos buzones
user:   driver=user;              # controlador para encontrar nombres de usuario

        transport=local,          # el transporte local es hacia los buzones

# real_user - encuentra nombres de usuario cuando estan prefijados
#             con la cadena "real-"
real_user:
        driver=user;              # controlador para encontrar nombres de usuario

        transport=local,          # el transporte local es hacia los buzones
        prefix="real-",           # por ejemplo, encontrar real-root

# lists - expande listas de correo almacenadas debajo de /usr/lib/smail/lists
lists:  driver=forwardfile,
        caution,                  # marcar todas las direcciones con prudencia
        nobody,                   # y luego asociarlas al usuario nobody
        sender_okay,              # NO quitar el remitente
        owner=owner-$user;        # el propietario de la lista

        # pasar a minusculas el nombre de la lista de correo
        file=lists/${lc:user},
\end{verbatim}
\end{tscreen}
\medskip


%After successfully routing or directing a message, \prog{smail}
%hands the message to the transport specified by the router
%or director that matched the address. These transports are
%defined in the \file{transports} file. Again, a transport
%is defined by a set of global and private options.

Despu\'es de encaminar o redireccionar un mensaje, \prog{smail}
lleva el mensaje al transporte especificado por el encaminador
o redireccionador que concord\'o con la direcci\'on.
Estos transportes est\'an definidos en el archivo \file{transports}.
Nuevamente, se define un transporte mediante un conjunto de opciones
globales y privadas.

%The most important option defined by each entry is driver that handles
%the transport, for instance the \keyword{pipe} driver, which invokes the
%command specified in the \keyword{cmd} attribute.  Apart from this,
%there are a number of global attributes a transport may use, that
%perform various transformations on the message header, and possibly
%message body.  The \keyword{return\_path} attribute, for instance, makes
%the transport insert a \file{return\_path} field in the message header
%The \keyword{unix\_from\_hack} attribute makes it precede every
%occurrence of the word \term{From} at the beginning of a line with a
%\term{$>$} sign.

La opci\'on m\'as importante que se define para cada entrada se refiere al
controlador que realiza el transporte, por ejemplo el controlador \keyword{pipe},
que invoca el comando especificado en el atributo \keyword{cmd}.
Adem\'as de \'este, existen una cierta cantidad de atributos globales que puede
utilizar un transporte, que realizan varias transformaciones en la 
cabecera del mensaje, y posiblemente en su cuerpo.
El atributo \keyword{return\_path}, por ejemplo, hace que el transporte
inserte un campo \file{return\_path} en la cabecera del mensaje.
El atributo \keyword{unix\_from\_hack} hace que se preceda toda ocurrencia de
la palabra \term{From} al principio de una l\'{\i}nea con el signo \term{$>$}.


\medskip
\begin{verbatim}
# Ejemplo de archivo /usr/lib/smail/transports

# local -  envia correo a los usuarios locales
local:  driver=appendfile,        # agrega el mensaje al archivo
        return_path,              # incluir un campo Return-Path:
        from,                     # proveer una linea de sobre con From_
        unix_from_hack,           # insertar > antes de From en el cuerpo
        local;                    # usar formatos locales para el envio

        file=/var/spool/mail/${lc:user}, # posicion del archivo buzon
        group=mail,               # el grupo propietario del archivo
                                  # para System V
        mode=0660,                # el grupo mail puede acceder
        suffix="\n",              # agregar un cambio de linea extra

# pipe - enviar el correo a traves de comandos de shell
pipe:   driver=pipe,              # encauzar el mensaje hacia otro programa
        return_path,              # incluir un campo Return-Path:
        from,                     # proveer una linea de sobre con From_
        unix_from_hack,           # insertar > antes de From  en el cuerpo
        local;                    # usar formatos locales para el envio

        cmd="/bin/sh -c $user", # enviar las direcciones al shell Bourne
        parent_env,               # info de entorno a partir de la direccion
                                  # del padre
        pipe_as_user,             # usar user-id asociado con la direccion
        ignore_status,            # ignore un status de salida distinto de cero
        ignore_write_errors,      # ignore errores de escritura,
                                  # por ejemplo: tuberia cortada
        umask=0022,               # umask para el proceso hijo
        -log_output,              # no registrar stdout/stderr en el
                                  # archivo de registro

# file - enviar el correo a archivos
file:   driver=appendfile,
        return_path,              # incluir un campo Return-Path:
        from,                     # proveer una linea de cabecera con From_
        unix_from_hack,           # insertar > antes de From en el cuerpo
        local;                    # usar formatos locales para el envio

        file=$user,               # el nombre del archivo se toma de
                                  # la direccion
        append_as_user,           # usar el user-id asociado con la direccion
        expand_user,              # expandir ~ y $ dentro de la direccion
        suffix="\n",              # agregar un cambio de linea extra
        mode=0600,                # poner los permisos en 600

# uux - envios al programa rmail de una instalacion UUCP remota
uux:    driver=pipe,
        uucp,                     # usar formatos de direcciones estilo UUCP
        from,                     # proveer una linea de sobre con Form_
        max_addrs=5,              # maximo 5 direcciones por invocacion
        max_chars=200;            # maximo 200 caracteres en direccion

        cmd="/usr/bin/uux - -r -a$sender -g$grade $host!rmail $(($user)$)",
        pipe_as_sender,           # que los registros uucp registren al llamador
        log_output,               # guardar las salidas de error para
                                  # los mensajes rebotados
#       defer_child_errors,       # reintentar si uux retorna un error

# demand - envios al programa rmail remoto, el sondeo es inmediato
demand: driver=pipe,
        uucp,                     # usar formatos de direcciones estilo UUCP
        from,                     # proveer una linea de sobre con Form_
        max_addrs=5,              # maximo 5 direcciones por invocacion
        max_chars=200;            # maximo 200 caracteres en direccion

        cmd="/usr/bin/uux - -a$sender -g$grade $host!rmail $(($user)$)",
        pipe_as_sender,           # que los registros uucp registren al llamador
        log_output,               # guardar las salidas de error para
                                  # los mensajes rebotados
#       defer_child_errors,       # reintentar si uux retorna un error

# hbsmtp - half-baked BSMTP. Los archivos de salida deben procesarse
#       regularmente y enviarse via UUCP.
hbsmtp: driver=appendfile,
        inet,                     # usar direccionamiento RFC 822
        hbsmtp,                   # SMTP por lotes sin HELO ni QUIT
        -max_addrs, -max_chars;   # no hay limite en el numero de direcciones

        file="/var/spool/smail/hbsmtp/$host",
        user=root,                # el archivo es propiedad de root
        mode=0600,                # solo legible-escribible por root.

# smtp - envios utilizando SMTP sobre TCP/IP
smtp:   driver=tcpsmtp,
        inet,
        -max_addrs, -max_chars;   # no hay limite en el numero de direcciones

        short_timeout=5m,               # timeout para operaciones breves
        long_timeout=2h,                # timeout para operaciones SMTP
                                        # de mayor duracion
        service=smtp,                   # conectar a este puerto de servicio
# Para uso en internet: descomente las siguientes 4 lineas
#       use_bind,                       # resolver MX y registros A multiples
#       defnames,                       # usar busqueda de dominio estandar
#       defer_no_connect,               # reintentar si el servidor de nombres
#                                       # no esta activo
#       -local_mx_okay,                 # no usar MX con el sistema local
\end{verbatim}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The GNU Public License                                        %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{The GNU General Public License}
\label{appendix.gpl}

\input{gpl.tex}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The BSD License                                        	%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \chapter{The BSD License}
% \label{appendix.bsd-license}
% {\bf [Meta: The BSD License should go here; possibly other major
% \linux-related licenses as well.]}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                               %
%                 E N D   O F   C H A P T E R                   %
%                                                               %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{appendix}
