<chapter id="uucpov-1"><title>UUCP
(Overview)</title><highlights><itemizedlist><para>This chapter introduces the
UNIX-to-UNIX Copy Program (UUCP) and
its daemons. The following topics
are covered:</para><listitem><para><olink targetptr="uucpov-6" remap="internal">UUCP Hardware
Configurations</olink></para>
</listitem><listitem><para><olink targetptr="uucpov-7" remap="internal">UUCP Software</olink></para>
</listitem><listitem><para><olink targetptr="uucpov-11" remap="internal">UUCP Database
Files</olink></para>
</listitem>
</itemizedlist><para>UUCP enables computers to transfer
files and exchange mail with each
other. The program also enables computers
to participate in large networks such
as Usenet.</para><para>The Solaris OS provides
the Basic Network Utilities (BNU)
version of UUCP, also known as HoneyDanBer
UUCP. The term <emphasis>UUCP</emphasis> denotes
the complete range of files and utilities
that compose the system, of which
the program <command>uucp</command> is
only a part. The UUCP utilities range
from those utilities that are used
to copy files between computers (<filename>uucp</filename> and <filename>uuto</filename>)
to those utilities that are used for
remote login and command execution
(<filename>cu</filename> and <filename>uux</filename>).</para>
</highlights><sect1 id="uucpov-6"><title>UUCP Hardware
Configurations</title><para>UUCP supports the following
hardware configurations:   </para><variablelist><varlistentry><term>Direct links</term><listitem><para>You can create a direct
link to another computer by running
RS-232 cables between serial ports
on the two machines. Direct links
are useful when two computers communicate
regularly and are physically close,
such as within 50 feet of each other.
You can use a limited-distance modem
to increase this distance somewhat.
   </para>
</listitem>
</varlistentry><varlistentry><term>Telephone lines</term><listitem><para>By using an automatic
call unit (ACU), such as a high-speed
modem, your machine can communicate
with other computers over standard
phone lines. The modem dials the telephone
number that is requested by UUCP.
The recipient machine must have a
modem that is capable of answering
incoming calls.  </para>
</listitem>
</varlistentry><varlistentry><term>Network</term><listitem><para>UUCP can also communicate
over a network that runs TCP/IP or
another protocol family. After your
computer has been established as a
host on a network, your computer can
contact any other host that is connected
to the network. </para>
</listitem>
</varlistentry>
</variablelist><para>This chapter assumes that your
UUCP hardware has already been assembled
and configured. If you need to set
up a modem, refer to <olink targetdoc="sysadv1" remap="external"><citetitle remap="book">System Administration Guide: Basic Administration</citetitle></olink> and
the manuals that accompanied the modem
for assistance.</para>
</sect1><sect1 id="uucpov-7"><title>UUCP Software</title><para>The UUCP software is automatically
included when you run the Solaris
installation program and select the
entire distribution. Alternatively,
you can add the UUCP software by using <command>pkgadd</command>. The UUCP programs
can be divided into three categories:
daemons, administrative programs,
and user programs.</para><sect2 id="uucpov-8"><title>UUCP Daemons</title><para>The UUCP system has four
daemons: <command>uucico</command>, <command>uuxqt</command>, <command>uusched</command>,
and <command>in.uucpd</command>. These
daemons handle UUCP file transfers
and command executions. You can also
run them manually from the shell,
if necessary. </para><variablelist><varlistentry><term><command>uucico</command></term><listitem><para>Selects the device that
is used for the link, establishes
the link to the remote computer, and
performs the required login sequence
and permission checks. Also, <command>uucico</command> transfers data files, execute
files, and results from logs, and
notifies the user by mail of transfer
completions. <command>uucico</command> acts
as the &ldquo;login shell&rdquo; for
UUCP login accounts. When the local <command>uucico</command> daemon calls a remote
machine, it communicates directly
with the remote <command>uucico</command> daemon
during the session.      </para><para>After all the required
files have been created, <command>uucp</command>, <command>uuto</command>, and <command>uux</command> programs
execute the <command>uucico</command> daemon
to contact the remote computer. <command>uusched</command> and <command>Uutry</command> all
execute <command>uucico</command>.
See the <olink targetdoc="refman1m" targetptr="uucico-1m" remap="external"><citerefentry><refentrytitle>uucico</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for details.         </para>
</listitem>
</varlistentry><varlistentry><term><command>uuxqt</command></term><listitem><para>Executes remote execution
requests. This daemon searches the
spool directory for execute files
(always named <filename>X</filename>.<replaceable>file</replaceable>) that have been
sent from a remote computer.  When
an <filename>X</filename>.<replaceable>file</replaceable> file is found, <command>uuxqt</command> opens it to get the list
of data files that are required for
the execution. <command>uuxqt</command> then
checks to see if the required data
files are available and accessible.
If the files are available, <command>uuxqt</command> checks the <filename>Permissions</filename> file to verify that it
has permission to execute the requested
command. The <command>uuxqt</command> daemon
is executed by the <filename>uudemon.hour</filename> shell script, which is
started by <command>cron</command>.
See the <olink targetdoc="refman1m" targetptr="uuxqt-1m" remap="external"><citerefentry><refentrytitle>uuxqt</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for details.           </para>
</listitem>
</varlistentry><varlistentry><term><command>uusched</command></term><listitem><para>Schedules the queued work
in the spool directory. <command>uusched</command> is
initially run at boot time by the <command>uudemon.hour</command> shell script,
which is started by <command>cron</command>.
See the <olink targetdoc="refman1m" targetptr="uusched-1m" remap="external"><citerefentry><refentrytitle>uusched</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for details. Before starting
the <command>uucico</command> daemon, <command>uusched</command> randomizes the order
in which remote computers are called.
        </para>
</listitem>
</varlistentry><varlistentry><term><command>in.uucpd</command></term><listitem><para>Supports UUCP connections
over networks. The <filename>inetd</filename> on
the remote host invokes <command>in.uucpd</command> whenever a UUCP connection
is established. <filename>uucpd</filename> then
prompts for a login name. <filename>uucico</filename> on the calling host must
respond with a login name. <command>in.uucpd</command> then prompts for a password,
unless a password is not required.
See the <olink targetdoc="refman1m" targetptr="in.uucpd-1m" remap="external"><citerefentry><refentrytitle>in.uucpd</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for details.    </para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="uucpov-9"><title>UUCP Administrative
Programs</title><para>Most UUCP administrative
programs are in <filename>/usr/lib/uucp</filename>.
Most basic database files are in <filename>/etc/uucp</filename>. The only exception
is <filename>uulog</filename>, which
is in <filename>/usr/bin</filename>.
The home directory of the <command>uucp</command> login
ID is <filename>/usr/lib/uucp</filename>.
  When running the administrative
programs through <command>su</command> or <command>login</command>, use the <command>uucp</command> user
ID. The user ID owns the programs
and spooled data files.      </para><variablelist><varlistentry><term><command>uulog</command></term><listitem><para>Displays the contents
of a specified computer's log files.
Log files are created for each remote
computer with which your machine communicates.
The log files record each use of <command>uucp</command>, <command>uuto</command>,
and <command>uux</command>. See the <olink targetdoc="refman1" targetptr="uucp-1c" remap="external"><citerefentry><refentrytitle>uucp</refentrytitle><manvolnum>1C</manvolnum></citerefentry></olink> 
man page for details.     </para>
</listitem>
</varlistentry><varlistentry><term><command>uucleanup</command></term><listitem><para>Cleans up the spool directory. <command>uucleanup</command> is normally executed
from the <command>uudemon.cleanup</command> shell
script, which is started by <command>cron</command>. See the <olink targetdoc="refman1m" targetptr="uucleanup-1m" remap="external"><citerefentry><refentrytitle>uucleanup</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for details.     </para>
</listitem>
</varlistentry><varlistentry><term><command>Uutry</command></term><listitem><para>Tests call-processing
capabilities and does moderate debugging. <command>Uutry</command> invokes the <command>uucico</command> daemon to establish a communication
link between your machine and the
remote computer that  you specify.
See the <olink targetdoc="refman1m" targetptr="uc-uutry-1m" remap="external"><citerefentry><refentrytitle>Uutry</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for details.   </para>
</listitem>
</varlistentry><varlistentry><term><command>uucheck</command></term><listitem><para>Checks for the presence
of UUCP directories, programs, and
support files. <command>uucheck</command> can
also check certain parts of the <filename>/etc/uucp/Permissions</filename> file
for obvious syntactic errors. See
the <olink targetdoc="refman1m" targetptr="uucheck-1m" remap="external"><citerefentry><refentrytitle>uucheck</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink> man
page for details.      </para>
</listitem>
</varlistentry>
</variablelist>
</sect2><sect2 id="uucpov-10"><title>UUCP
User Programs</title><para>The UUCP user programs
are in <filename>/usr/bin</filename>.
You do not need special permission
to use these programs. </para><variablelist><varlistentry><term><command>cu</command></term><listitem><para>Connects your machine
to a remote computer so that you can
log in to both machines at the same
time. <command>cu</command> enables
you to transfer files or execute commands
on either machine without dropping
the initial link. See the <olink targetdoc="refman1" targetptr="cu-1c" remap="external"><citerefentry><refentrytitle>cu</refentrytitle><manvolnum>1C</manvolnum></citerefentry></olink> man
page for details.  </para>
</listitem>
</varlistentry><varlistentry><term><command>uucp</command></term><listitem><para>Lets you copy a file from
one machine to another machine. <command>uucp</command> creates work files
and data files, queues the job for
transfer, and calls the <command>uucico</command> daemon,
which in turn attempts to contact
the remote computer. See the <olink targetdoc="refman1" targetptr="uucp-1c" remap="external"><citerefentry><refentrytitle>uucp</refentrytitle><manvolnum>1C</manvolnum></citerefentry></olink> man
page for details.  </para>
</listitem>
</varlistentry><varlistentry><term><command>uuto</command></term><listitem><para>Copies files from the
local machine to the public spool
directory <filename>/var/spool/uucppublic/receive</filename> on the remote machine.
Unlike <command>uucp</command>, which
lets you copy a file to any accessible
directory on the remote machine, <command>uuto</command> places the file in
an appropriate spool directory and
tells the remote user to pick the
file up with <command>uupick</command>.
See the <olink targetdoc="refman1" targetptr="uuto-1c" remap="external"><citerefentry><refentrytitle>uuto</refentrytitle><manvolnum>1C</manvolnum></citerefentry></olink> man
page for details.  </para>
</listitem>
</varlistentry><varlistentry><term><command>uupick</command></term><listitem><para>Retrieves files in <filename>/var/spool/uucppublic/receive</filename> when
files are transferred to a computer
by using <command>uuto</command>.
See the <olink targetdoc="refman1" targetptr="uuto-1c" remap="external"><citerefentry><refentrytitle>uuto</refentrytitle><manvolnum>1C</manvolnum></citerefentry></olink> man
page.  </para>
</listitem>
</varlistentry><varlistentry><term><command>uux</command></term><listitem><para>Creates the work, data,
and execute files that are needed
to execute commands on a remote machine.
See the <olink targetdoc="refman1" targetptr="uux-1c" remap="external"><citerefentry><refentrytitle>uux</refentrytitle><manvolnum>1C</manvolnum></citerefentry></olink> man
page for details.  </para>
</listitem>
</varlistentry><varlistentry><term><command>uustat</command></term><listitem><para>Displays the status of
requested transfers (<command>uucp</command>, <command>uuto</command>, or <command>uux</command>). <command>uustat</command> also provides a means
of controlling queued transfers. See
the <olink targetdoc="refman1" targetptr="uustat-1c" remap="external"><citerefentry><refentrytitle>uustat</refentrytitle><manvolnum>1C</manvolnum></citerefentry></olink> man
page for details.   </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1><sect1 id="uucpov-11"><title>UUCP
Database Files</title><para>A major part of UUCP setup
is the configuration of the files
that compose the UUCP database.  These
files are in the <filename>/etc/uucp</filename> directory.
You need to edit these files to set
up UUCP or <command>asppp</command> on
your machine. The files include the
following:  </para><variablelist><varlistentry><term><filename>Config</filename></term><listitem><para>Contains a list of variable
parameters. You can manually set these
parameters to configure the network.
 </para>
</listitem>
</varlistentry><varlistentry><term><filename>Devconfig</filename></term><listitem><para>Used to configure network
communications.  </para>
</listitem>
</varlistentry><varlistentry><term><filename>Devices</filename></term><listitem><para>Used to configure network
communications.  </para>
</listitem>
</varlistentry><varlistentry><term><filename>Dialcodes</filename></term><listitem><para>Contains dial-code abbreviations
that can be used in the phone number
field of <filename>Systems</filename> file
entries. Though not required, <filename>Dialcodes</filename> can be used by <command>asppp</command> as well as UUCP.     </para>
</listitem>
</varlistentry><varlistentry><term><filename>Dialers</filename></term><listitem><para>Contains character strings
that are required to negotiate with
modems to establish connections with
remote computers. <filename>Dialers</filename> is
used by <literal>asppp</literal> as
well as UUCP.   </para>
</listitem>
</varlistentry><varlistentry><term><filename>Grades</filename></term><listitem><para>Defines job grades, and
the permissions that are associated
with each job grade, which users can
specify to queue jobs to a remote
computer.  </para>
</listitem>
</varlistentry><varlistentry><term><filename>Limits</filename></term><listitem><para>Defines the maximum number
of simultaneous <command>uucico</command>s, <command>uuxqt</command>s, and <command>uusched</command>s
that are permitted on your machine.
      </para>
</listitem>
</varlistentry><varlistentry><term><filename>Permissions</filename></term><listitem><para>Defines the level of access
that is granted to remote hosts that
attempt to transfer files or execute
commands on your machine.  </para>
</listitem>
</varlistentry><varlistentry><term><filename>Poll</filename></term><listitem><para>Defines machines that
are to be polled by your system and
when they are polled.    </para>
</listitem>
</varlistentry><varlistentry><term><filename>Sysfiles</filename></term><listitem><para>Assigns different or multiple
files to be used by <command>uucico</command> and <command>cu</command> as <filename>Systems</filename>, <filename>Devices</filename>, and <filename>Dialers</filename> files.        </para>
</listitem>
</varlistentry><varlistentry><term><filename>Sysname</filename></term><listitem><para>Enables you to define
a unique UUCP name for a machine,
in addition to its TCP/IP host name.
    </para>
</listitem>
</varlistentry><varlistentry><term><filename>Systems</filename></term><listitem><para>Contains information that
is needed by the <command>uucico</command> daemon, <command>cu</command>, and <command>asppp</command> to
establish a link to a remote computer.
This information includes the following:</para><itemizedlist><listitem><para>Name of the remote
host</para>
</listitem><listitem><para>Name of the connecting
device associated with the remote
host</para>
</listitem><listitem><para>Time when the host
can be reached</para>
</listitem><listitem><para>Telephone number</para>
</listitem><listitem><para>Login ID</para>
</listitem><listitem><para>Password</para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist><para>Several other files can
be considered part of the supporting
database but are not directly involved
in establishing a link and transferring
files. </para><sect2 id="uucpov-12"><title>Configuring
UUCP Database Files</title><itemizedlist><para>The UUCP database consists
of the files that are shown in <olink targetptr="uucpov-11" remap="internal">UUCP Database
Files</olink>. However, basic UUCP
configuration involves only the following
critical files:     </para><listitem><para><filename>/etc/uucp/Systems</filename></para>
</listitem><listitem><para><filename>/etc/uucp/Devices</filename></para>
</listitem><listitem><para><filename>/etc/uucp/Dialers</filename></para>
</listitem>
</itemizedlist><itemizedlist><para>Because <command>asppp</command> uses
some of the UUCP databases, you should
understand at minimum these critical
database files if you plan to configure <command>asppp</command>. After these databases
are configured, UUCP administration
is fairly straightforward. Typically,
you edit the <filename>Systems</filename> file
first, then edit the <filename>Devices</filename> file.
You can usually use the default <filename>/etc/uucp/Dialers</filename> file,
unless you plan to add dialers that
are not in the default file. In addition,
you might also want to use the following
files for basic UUCP and <command>asppp</command> configuration:</para><listitem><para><filename>/etc/uucp/Sysfiles</filename></para>
</listitem><listitem><para><filename>/etc/uucp/Dialcodes</filename></para>
</listitem><listitem><para><filename>/etc/uucp/Sysname</filename></para>
</listitem>
</itemizedlist><para>Because these files work closely
with each other, you should understand
all their contents before you make
any changes.  A change to an entry
in one file might require a change
to a related entry in another file.
The remaining files that are listed
in <olink targetptr="uucpov-11" remap="internal">UUCP
Database Files</olink> are not as
critically intertwined.</para><note><para><command>asppp</command> uses
only the files that are described
in this section. <command>asppp</command> does
not use the other UUCP database files.</para>
</note>
</sect2>
</sect1>
</chapter>