3BSD/usr/src/cmd/uucp/README

	A substantial number of minor changes were made to ``uucp''
at the end of February and early March, before Dave Nowitz returned
to Piscataway. Changes made after March, 15, 1979, will be available through 
stockroom category, ``uucp_changes''.  Any installation with a version
of ``uucp'' obtained before March 15, should obtain the whole
distribution afresh.

	Most of the changes are relatively benign. See the file CHANGES
for a list of what has been done.  PLEASE NOTE that there is one
important difference between the present version and previous versions:
there is a change to the file ``L-devices''. For each entry representing
an ACU insert the string "ACU " at the beginning of the line; for each
direct connection, insert "DIR ". This should take all of a minute.

	Two short shell procedures, ``uutest'' and ``uucheck'' are
included in the distribution. You may find them useful for administrative
purposes. Put links to them in your personal bin directory. (On
our system, they live in /usr/lib/uucp.)

			PWB 1.2 SYSTEMS
        There is a new stockroom category, called ``pwbuucp'', (made March 21)
which gives additional information regarding installing uucp on PWB 1.2 
systems.  This information is by courtesy of Brian Redman.

			GENERAL  INSTRUCTIONS
        Before running "uucp", you should change the define for "MYNAME"
in "uucp.h" to whoever you are, and recompile.
As delivered, "uucp" thinks that it is running on the ``usg'' system.

NOTE - To export executable code:
A new routine (uucpname.c) has been added which returns the local uucp name.
If no action is taken, this routine will return the value
of "MYNAME".  By defining "UNAME" as value 1 in "uucp.h", the value returned
is determined by a call to "uname(&utsname)" where utsname is a structure
which contains an element "nodename" - the uucpname for the local system.

        Since all ACUs are not created equal, the last character which must
be sent to the ACU may differ on your system.  The value "ACULAST" in
"uucp.h" should be modified if necessary.

        To run successfully you will need to provide working
versions of the following files:

  L-devices     entries for call-units and hard-wired connections
  L-dialcodes   decodes abbreviations occurring in L.sys
  L.sys         pertinent details about other systems that you
                may call, as the result of prior agreement.
  USERFILE      user accessibility information

The information in these files is specific to each installation.
The versions supplied are arbitrarily modified versions of files
used on the Usg machine, and are provided only for your
information.

        As delivered, "uucp" is set up to use the following
directories (contrary to some documentation):

        /usr/src/cmd/uucp       source files
        /usr/lib/uucp           executable programs and data files
        /usr/spool/uucp         work-in-progress
        /usr/lib/uucp/.XQTDIR      work area for "uuxqt"
        /usr/spool/uucppublic   uucp public directory

"/usr/bin/uucp (uux)" is linked to "/usr/lib/uucp/uucp (uux)".

NOTE - some resent changes have moved some to the directories.
The names appear in uucp.h and the "uucp.mk" file.
(SPOOL, XQTDIR, PUBDIR, INSDIR, THISDIR)
The login directory for the uucp login(s) should be the PUBDIR
directory.

	Note also that there is an array called "Cmds" in the file
"uuxqt.c" which names the commands which may be executed at
the request of a remote user, via "uux". You will most probably
wish to modify the initialization of this array, to reflect the
commands you are willing to allow on your system.

	The ``mail'' command has been modified, so that it may
only be used to send mail, when it is invoked under a name beginning
with 'r'. (In the receive mode, it can be used to invoke a shell,
thus creating a potential security hole.)
When sending mail to a remote site, ``mail'' invokes the ``rmail''
command at the remote site. Hence you should create an ``rmail''
command by linking to ``/bin/mail", and ensure that ``Cmds''
contains an entry for ``rmail'', but not ``mail''.

        Note that other systems which may contact you via "uucp"
will have to login using information that you supply. When UNIX/TS is
delivered there is a user "uucp" (with no initial password) whose
default shell is (and must be) "/usr/lib/uucp/uucico". If you
wish to use "uucp" to contact other systems you will need to
obtain username and password information from them in advance and
to store this in "L.sys".  Since the file "L.sys" contains
sensitive information about how to access other systems which are
willing to converse with you, it is important that the "L.sys"
file be properly protected. You will find that ensuring a high
level of protection is not a trivial task. As a minimum you will
need to set correctly the permissions on the file itself, its
parent directory and every executable "set-uid-to-root" file in
your whole system ... and then ensure that the root password is
secure ... as a bare minimum.

        The programs "uuclean" and "uulog" are provided for
housekeeping.  These should be run frequently, e.g. by "cron".
Prototypes of procedures that may be run by "cron" are provided
here as the files "uudemon.*".  Note also that "uudemon.hr"
starts up "uucico" to initiate transfers that have been delayed
for some reason, or to poll passive systems for work.

	Some installations may wish to use both the old and new
versions of "uucp" concurrently for a while. This will be because some
but not all of your correspondents have made the switch from the
old to the new. The old version is no longer supported and the
switch should be made as soon as possible. In the interim, you
may replace the /usr/bin/uucp (which is linked to 
/usr/lib/uucp/uucp) by a shell procedure such as:

	for i in $*
	do
	    case $i in
		old!* | dull!* | slow!* )
		    /usr/lib/uucp/olduucp $*
		    echo old uucp used
		    exit;;
	    esac
	/usr/lib/uucp/uucp $*

(This assumes that the old version of "uucp" has been moved to "olduucp".)

For further information contact D. Nowitz (PY 6120) or 
J. Lions (MH 5667) or U. Arazy (MH 7659).