Chapter 26 Administering UUCP
This chapter explains how to start UUCP operations after you have modified the database file relevant to your machines. The chapter contains procedures and troubleshooting information for setting up and maintaining UUCP on machines running the Solaris environment, such as:
UUCP Administration Task Map
The following table provides pointers to the procedures covered in this chapter, as well as a short description of each procedure.
Table 26-1 Task Map: UUCP Administration
Adding UUCP Logins
For incoming UUCP (uucico) requests from remote machines to be handled properly, each machine has to have a login on your system.
How to Add UUCP Logins
To allow a remote machine to access your system, you need to add an entry to the /etc/passwd file as follows:
-
Edit the /etc/passwd file and add the entry to identify the machine permitted to access your system.
A typical entry that you might put into the /etc/passwd file for a remote machine permitted to access your system with a UUCP connection would be as follows:
Ugobi:*:5:5:gobi:/var/spool/uucppublic:/usr/lib/uucp/uucico
|
By convention, the login name of a remote machine is the machine name preceded by the uppercase letter U. Note that the name should not exceed eight characters, so that in some cases you might have to truncate or abbreviate it.
The previous entry shows that a login request by Ugobi is answered by /usr/lib/uucp/uucico. The home directory is /var/spool/uucppublic. The password is obtained from the /etc/shadow file. You must coordinate the password
and the login name with the UUCP administrator of the remote machine. The remote administrator must then add an appropriate entry, with login name and unencrypted password, in the remote machine's Systems file.
-
Coordinate your machine name with the UUCP administrators on other systems.
Similarly, you must coordinate your machine's name and password with the UUCP administrators of all machines that you want to reach through UUCP.
Starting UUCP
UUCP comes with four shell scripts that poll remote machines, reschedule transmissions, and clean up old log files and unsuccessful transmissions. The scripts are:
-
uudemon.poll
-
uudemon.hour
-
uudemon.admin
-
uudemon.cleanup
These shell scripts should execute regularly to keep UUCP running smoothly. The crontab file to run the scripts is automatically created in /usr/lib/uucp/uudemon.crontab as part of the Solaris installation process, if you select the full installation. Otherwise,
it is created when you install the UUCP package.
You can also run the UUCP shell scripts manually. The following is the prototype uudemon.crontab file that you can tailor for a particular machine:
#
#ident "@(#)uudemon.crontab 1.5 97/12/09 SMI"
#
# This crontab is provided as a sample. For systems
# running UUCP edit the time schedule to suit, uncomment
# the following lines, and use crontab(1) to activate the
# new schedule.
#
#48 8,12,16 * * * /usr/lib/uucp/uudemon.admin
#20 3 * * * /usr/lib/uucp/uudemon.cleanup
#0 * * * * /usr/lib/uucp/uudemon.poll
#11,41 * * * * /usr/lib/uucp/uudemon.hour
|
Note -
By default, UUCP operations are disabled. To enable UUCP, edit the time schedule and uncomment the appropriate lines in the uudemon.crontab file.
How to Start UUCP
To activate the uudemon.crontab file, do the following:
-
Become superuser.
-
Edit the /usr/lib/uucp/uudemon.crontab file and change entries as required
-
Issue:
crontab < /usr/lib/uucp/uudemon.crontab
|
uudemon.poll Shell Script
The default uudemon.poll shell script reads the /etc/uucp/Poll file once an hour. If any machines in the Poll file are scheduled to be polled, a work file (C.sysnxxxx) is placed in the /var/spool/uucp/nodename directory, where nodename represents the UUCP node name of the machine.
The shell script is scheduled to run once an hour, before uudemon.hour, so that the work files are there when uudemon.hour is called.
uudemon.hour Shell Script
The default uudemon.hour shell script:
-
Calls the uusched program to search the spool directories for work files (C.) that have not been processed and schedules these files for transfer to a remote machine.
-
Calls the uuxqt daemon to search the spool directories for execute files (X.) that have been transferred to your computer and were not processed at the time they were transferred.
By default, uudemon.hour runs twice an hour. You might want it to run more often if you expect high failure rates of calls to remote machines.
uudemon.admin Shell Script
The default uudemon.admin shell script does the following:
-
Runs the uustat command with p and q options. The q reports on the status of work files (C.), data files (D.), and execute files (X.) that are queued. The p prints process information for networking processes listed in the lock files (/var/spool/locks).
-
Sends resulting status information to the uucp administrative login using mail.
uudemon.cleanup Shell Script
The default uudemon.cleanup shell script does the following:
-
Takes log files for individual machines from the /var/uucp/.Log directory, merges them, and places them in the /var/uucp/.Old directory with other old log information.
-
Removes work files (C.) seven days old or older, data files (D.) seven days old or older, and execute files (X.) two days old or older from the spool files.
-
Returns mail that cannot be delivered to the sender.
-
Mails a summary of the status information gathered during the current day to the UUCP administrative login (uucp).
Running UUCP Over TCP/IP
To run UUCP on a TCP/IP network, you need to make a few modifications, as described in this section.
How to Activate UUCP for TCP/IP
-
Edit the /etc/inetd.conf file and make sure that the following entry is not preceded by a comment mark (#):
uucp stream tcp nowait root /usr/sbin/in.uucpd in.uucpd
|
-
Edit the /etc/uucp/Systems file to make sure that the entries have the following fields :
System-Name Time TCP Port networkname Standard-Login-Chat
A typical entry would look like this:
rochester Any TCP - ur-seneca login: Umachine password: xxx
|
Notice that the networkname field permits you to specify explicitly the TCP/IP host name. This is important for some sites. In the previous example, the site has the UUCP node name rochester which is different from its TCP/IP host name ur-seneca.
Moreover, there could easily be a completely different machine running UUCP that has the TCP/IP host name of rochester.
The Port field in the Systems file should have the entry -. This is equivalent to listing it as uucp. In almost every case, the networkname is the same as the system name, and the Port field is -,
which says to use the standard uucp port from the services database. The in.uucpd daemon expects the remote machine to send its login and password for authentication, and it prompts for them much as getty and login do.
-
Edit the /etc/inet/services file to set up a port for UUCP:
uucp 540/tcp uucpd # uucp daemon
|
You should not have to change the entry. However, if your machine runs NIS or NIS+ as its name service, you should change the /etc/nsswitch.conf entry for /etc/services to check files first, then check nis or nisplus.
UUCP Security and Maintenance
After you have set up UUCP, maintenance is straightforward. This section explains ongoing UUCP tasks with regard to security, maintenance, and troubleshooting.
Setting Up UUCP Security
The default /etc/uucp/Permissions file provides the maximum amount of security for your UUCP links. The default Permissions file contains no entries.
You can set additional parameters for each remote machine to define:
-
Ways the remote machine can receive files from your machine
-
Directories for which the remote machine has read and write permission
-
Commands the remote machine can use for remote execution
A typical Permissions entry is:
MACHINE=datsun LOGNAME=Udatsun VALIDATE=datsun
COMMANDS=rmail REQUEST=yes SENDFILES=yes
|
This entry allows files to be sent and received (to and from the "normal" UUCP directories, not from anywhere in the system) and causes the UUCP user name to be validated at login time.
Regular UUCP Maintenance
UUCP does not require much maintenance. Apart from making sure that the crontab file is in place, as described in the section "How to Start UUCP", all you have to worry about is the growth of mail files and the public directory.
Email for UUCP
All email messages generated by the UUCP programs and scripts go to the user ID uucp. If you do not log in frequently as that user, you might not realize that mail is accumulating (and consuming disk space). To solve this, make an alias in /etc/mail/aliases
and redirect that email either to root or to yourself and others responsible for maintaining UUCP. Remember to run the newaliases command after modifying the aliases file.
UUCP Public Directory
The directory /var/spool/uucppublic is the one place in every system to which UUCP by default is able to copy files. Every user has permission to change to /var/spool/uucppublic and read and write files in it. However, its sticky bit is set, so its mode
is 01777. As a result, users cannot remove files that have been copied to it and that belong to uucp. Only you, as UUCP administrator logged in as root or uucp, can remove files from this directory. To prevent the uncontrolled accumulation of
files in this directory, you should make sure to clean it up periodically.
If this is inconvenient for users, encourage them to use uuto and uupick rather than removing the sticky bit, which is set for security reasons. (See the uuto(1C) man page for instructions for using uuto and uupick.) You can also restrict the mode of the directory to only one group of people. If you do not want to run the risk of someone filling your disk, you can even deny UUCP
access to it.
Troubleshooting UUCP
These procedures describe how to solve common UUCP problems.
How to Check for Faulty Modems or ACUs
You can check if the modems or other ACUs are not working properly in several ways.
-
Get counts and reasons for contact failure by running:
-
Call over a particular line and print debugging information on the attempt.
The line must be defined as direct in the /etc/uucp/Devices file. (You must add a telephone number to the end of the command line if the line is connected to an autodialer or the device must be set up as direct.) Type:
where line is /dev/cua/a.
How to Debug Transmissions
If you cannot contact a particular machine, you can check out communications to that machine with Uutry and uucp.
-
To try to make contact by typing:
/usr/lib/uucp/Uutry -r machine
|
Replace machine with the host name of the machine you are having problems contacting. This command:
-
Starts the transfer daemon (uucico) with debugging. You can get more debugging information if you are root.
-
Directs the debugging output to /tmp/machine.
-
Prints the debugging output to your terminal by issuing:
Press Control-c to end output. You can copy the output from /tmp/machine if you want to save it.
-
If Uutry doesn't isolate the problem, try to queue a job by typing:
uucp -r file machine\!/dir/file
|
Replace file by the file you want to transfer, machine by the machine you want to copy to, and /dir/file where the file will be placed on the other machine. The r option queues a job but
does not start the transfer.
-
Issue:
If you still cannot solve the problem, you might need to call your local support representative. Save the debugging output; it will help diagnose the problem.
You might also want to decrease or increase the level of debugging provided by Uutry through the -x n option, where n indicates the debug level. The default debug level for Uutry is 5.
Debug level 3 provides basic information as to when and how the connection is established, but not much information about the transmission itself. Debug level 9, on the other hand, provides exhaustive information about the transmission process. Be aware that debugging occurs at both ends of the
transmission. If you intend to use a level higher than 5 on a moderately large text, contact the administrator of the other site and agree on a time for doing so.
Checking the UUCP /etc/uucp/Systems File
Verify that you have up-to-date information in your Systems file if you are having trouble contacting a particular machine. Some things that might be out of date for a machine are its:
-
Phone number
-
Login ID
-
Password
Checking UUCP Error Messages
UUCP has two types of error messages: ASSERT and STATUS.
-
When a process is aborted, ASSERT error messages are recorded in /var/uucp/.Admin/errors. These messages include the file name, sccsid, line number, and text. These messages usually result from system problems.
-
STATUS error messages are stored in the /var/uucp/.Status directory. The directory contains a separate file for each remote machine your computer attempts to communicate with. These files contain status information on the attempted
communication and whether it was successful.
Checking Basic Information
Several commands are available for checking basic networking information:
-
Use the uuname command to list those machines your machine can contact.
-
Use the uulog command to display the contents of the log directories for particular hosts.
-
Use the uucheck -v command to check for the presence of files and directories needed by uucp. This command also checks the Permissions file and outputs information on the permissions you have set up.