System Administration Guide: Network Services

Chapter 25 Administering UUCP (Tasks)

This chapter explains how to start UUCP operations after you have modified the database file that is relevant to your machines. The chapter contains procedures and troubleshooting information for setting up and maintaining UUCP on machines that run the Solaris OS, such as the following:

UUCP Administration (Task Map)

The following table provides pointers to the procedures that are covered in this chapter, in addition to a short description of each procedure.

Table 25–1 Task Map for UUCP Administration



For Instructions 

Allow remote machines to have access to your system 

Edit the /etc/passwd file to add entries to identify the machines that are permitted to access your system.

How to Add UUCP Logins

Start UUCP 

Use the supplied shell scripts to start UUCP. 

How to Start UUCP

Enable UUCP to work with TCP/IP 

Edit /etc/inetd.conf and /etc/uucp/Systems files to activate UUCP for TCP/IP.

How to Activate UUCP for TCP/IP

Troubleshoot some common UUCP problems 

Use diagnostic steps to check for faulty modems or ACUs. 

How to Check for Faulty Modems or ACUs


Use diagnostic steps to debug transmissions.  

How to Debug Transmissions

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.

ProcedureHow 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:

  1. Become superuser or assume an equivalent role.

    Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.

  2. Edit the /etc/passwd file and add the entry to identify the machine that is permitted to access your system.

    A typical entry that you might put into the /etc/passwd file for a remote machine that is permitted to access your system with a UUCP connection would be as follows:


    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. Otherwise, you might have to truncate or abbreviate the name.

    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.

  3. 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 includes four shell scripts that poll remote machines, reschedule transmissions, and clean up old log files and unsuccessful transmissions. The scripts are as follows:

These shell scripts should execute regularly to ensure that UUCP runs 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, the file 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.

ProcedureHow to Start UUCP

To activate the uudemon.crontab file, do the following:

  1. Become superuser or assume an equivalent role.

    Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.

  2. Edit the /usr/lib/uucp/uudemon.crontab file and change entries as required.

  3. Activate the uudemon.crontab file by issuing the following command:

    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. 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 in place when uudemon.hour is called.

uudemon.hour Shell Script

The default uudemon.hour shell script does the following:

By default, uudemon.hour runs twice an hour. You might want uudemon.hour 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:

uudemon.cleanup Shell Script

The default uudemon.cleanup shell script does the following:

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.

ProcedureHow to Activate UUCP for TCP/IP

  1. Become superuser or assume an equivalent role.

    Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.

  2. Edit the /etc/uucp/Systems file to ensure that the entries have the following fields:

    System-Name Time TCP Port networkname Standard-Login-Chat

    A typical entry would resemble the following:

    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 capability 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, a completely different machine could easily run UUCP and have the TCP/IP host name of rochester.

    The Port field in the Systems file should have the entry -. This syntax is equivalent to listing the entry as uucp. In almost every situation, 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 in.uucpd prompts for them, much as getty and login do.

  3. 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.

  4. Verify that UUCP is enabled.

    # svcs network/uucp

    The UUCP service is managed by the Service Management Facility. To query the status of this service, you can use the svcs command. For an overview of the Service Management Facility, refer to Chapter 18, Managing Services (Overview), in System Administration Guide: Basic Administration.

  5. (Optional) If necessary, enable UUCP by typing the following:

    # inetadm -e network/uucp

UUCP Security and Maintenance

After you have set up UUCP, maintenance is straightforward. This section explains ongoing UUCP tasks that relate 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 the following:

A typical Permissions entry follows:

MACHINE=datsun LOGNAME=Udatsun VALIDATE=datsun 

This entry allows files to be sent and be received to and from the “normal” UUCP directories, not from anywhere in the system. The entry also causes the UUCP user name to be validated at login time.

Regular UUCP Maintenance

UUCP does not require much maintenance. However, you must ensure that the crontab file is in place, as described in the section How to Start UUCP. Your concern should be the growth of mail files and the public directory.

Email for UUCP

All email messages that are generated by the UUCP programs and scripts are sent 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 problem, create an alias in /etc/mail/aliases and redirect that email either to root or to yourself and others who are 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 the directory. However, the directory's sticky bit is set, so the directory's 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 ensure that you remove files from it periodically.

If this maintenance 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 risk someone filling your disk, you can even deny UUCP access to it.

Troubleshooting UUCP

These procedures describe how to solve common UUCP problems.

ProcedureHow to Check for Faulty Modems or ACUs

You can check if the modems or other ACUs are not working properly in several ways.

  1. Become superuser or assume an equivalent role.

    Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.

  2. Obtain counts and reasons for contact failure by running the following command:

    # uustat -q
  3. 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:

    # cu -d -lline

    line is /dev/cua/a.

ProcedureHow to Debug Transmissions

If you cannot contact a particular machine, you can check communications to that machine with Uutry and uucp.

  1. Become superuser or assume an equivalent role.

    Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.

  2. Try to make contact:

    # /usr/lib/uucp/Uutry -r machine

    Replace machine with the host name of the machine you are unable to contact. This command does the following:

    • 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 the following command:

      # tail -f

      Press Control-C to end output. You can copy the output from /tmp/machine if you want to save the output.

  3. If Uutry does not isolate the problem, try to queue a job:

    # uucp -r file machine\!/dir/file

    Use the name of the file that you want to transfer.


    Use the name of the machine that you want to copy to.


    Specify the location of the file for the other machine.

  4. Issue the following command:

    # Uutry

    If you still cannot solve the problem, you might need to call your local support representative. Save the debugging output, which can help diagnose the problem.

    Note –

    You might also decrease or increase the level of debugging that is provided by Uutry through the -x n option. n indicates the debug level. The default debug level for Uutry is 5.

    Debug level 3 provides basic information about when and how the connection is established, but not much information about the transmission. Debug level 9, however, 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 other site's administrator and decide when to change the level.

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 information that might be out of date for a machine is the following:

Checking UUCP Error Messages

UUCP has two types of error messages: ASSERT and STATUS.

Checking Basic Information

Several commands are available for checking basic networking information: