This document is an aid to setting up UUCP (BNU) on your system. Basic Networking Utilities (BNU) is the AIX version of UNIX-to-UNIX Copy Program (UUCP). The terms BNU and UUCP are used interchangeably in this document.
The information in this document applies to AIX Versions 4.x.
The AIX and product documentation library is also available:
The setup files for AIX UUCP are:
The Systems file lists remote computers with which the local system can communicate using BNU. This information is used by the uucico program to connect to the various systems. Consider this file the database of systems to which your machine can connect.
The Devices file lists each device on the local system that can dial out using BNU. The fields for each device include type, location, and speed. Only dial-out connections use the Devices file.
The Permissions file is used to create security control, with limitations, over machines attempting to communicate with your machine.
The Dialers file lists modems used by BNU and specifies the initial handshaking necessary for modem, TCP/IP, and remote communications. The most common types of dialers are "Hayes", "direct", and "TCP".
The Dialcodes file makes standardized names for certain parts of a phone number. For example, if you frequently make calls to a certain area code in San Francisco, you could create the following Dialcodes entry: "SFO9,1415".
The remote.unknown file is a shell script. The BNU program executes this file when a remote computer that is not listed in the local Permissions file attempts to communicate with that local system.
The Poll file schedules the polling of passing systems. Its format is similar to crontab. Poll format is <site name>, a tab, and the hours in which to poll (0-23) separated by spaces. Example:
POLLDEMO 0 1 2 3 4 5 19 20 21 22 23
The following diagram shows an example of the Systems, Devices, and Dialers files and shows how they relate to each other.
Systems file: <system_name> Any v32ibm 9600 555-1111 _______________/ Devices file: / v32ibm tty0 - Any ibm \D ______________________/ Dialers file: / ibm =, -, #" \d ATSFI\r\c#OK#AFE1SD3L2MIC0SCI\r\c#OK...
NOTE: Information in man pages gives a complete description of these files. (For example, type man Systems)
The Systems file: Danny Any v32ibm 9600 9,15551111 "" \d\d\d\r in:--in: uucp word: uucp The Devices file: v32ibm tty0 - Any ibm \D The Dialers file: ibm =,-, "" \dAT\r\c OK \pATDT\T\r\c CONNECT The Permissions file: MACHINE=Danny REQUEST=yes READ=/ WRITE=/ COMMANDS=ALL LOGNAME=uucp REQUEST=yes SENDFILES=yes READ=/ WRITE=/
With the above setup you could test the connection. Enter:
cu -d DannyThe cu command connects to another system, and the -d gives extra debug information.
This section contains steps for setting up UUCP on your system. It is divided into the following parts:
lslpp -h bos.net.uucp
If UUCP is installed, you will see the following in the output:
If you do not see the preceding output, you will need to install it from the install tape.
With the following steps, edit /etc/passwd, /etc/group, /etc/security/login.cfg, and /etc/security/passwd to add the uucpadm login and other logins.
The suggested entry in /etc/passwd is:
Umicrtk:!:105:5:micrtk uucp:/usr/spool/uucppublic:/usr/lib/uucp/uucico Ufloydl:!:106:5:floydl uucp:/usr/spool/uucppublic:/usr/lib/uucp/uucico Uicus:!:107:5:icus uucp:/usr/spool/uucppublic:/usr/lib/uucp/uucico Urisctkr:!:108:5::/usr/spool/uucppublic:/usr/lib/uucp/uucico
If you want to have one set of permissions and do not want to maintain separate control for any of your UUCP connections, you can have a single login for all machines, such as the following:
Field requirements: Notice that the user ID (the third colon separated field) is unique. It would be a security risk to have this ID be the same as another in the /etc/passwd file. The group ID (the fourth colon separated field) MUST be 5 - the same as group uucp. You can change the home directory (the sixth field) to any valid directory, but the login shell (the seventh field) MUST be /usr/lib/uucp/uucico.
You may want to add any logins to group uucp that will be using modems to dial out with programs other than cu.
/dev/tty0: herald = " risc001 login: "
flags = ADMCHG
Change it to:
Otherwise, when the remote uucico logs in, it will be prompted to enter a new password, which it cannot do. Hence the login will fail.
crontab -l > /tmp/cron.uucp
20,50 * * * * /bin/bsh -c "/usr/lib/uucp/uudemon.poll > /dev/null" 25,55 * * * * /bin/bsh -c "/usr/lib/uucp/uudemon.hour > /dev/null" 45 23 * * * /bin/bsh -c "/usr/lib/uucp/uudemon.cleanu > /dev/null" 48 8,12,16 * * * /bin/bsh -c "/usr/lib/uucp/uudemon.admin > /dev/null"
Entries can be changed to suit your needs.
You can use the /usr/lib/uucp/uucpadm command to initially set up the files and edit them to suit your exact needs.
UUCP error messages can be linked to specific phases in the conversation flow. Use the following diagram and the error descriptions in the following section to help you diagnose your UUCP problems. Some of the following messages may not be sent by the AIX version of UUCP (BNU), but they are included in case another UUCP version is in use on a different system platform.
U U C P or U U X | | uucico | | PHASE 1: System Verification | | PHASE 2: Device Selection | | PHASE 3: Link Establishment | | PHASE 4: Login Sequence | | PHASE 5: Data Transfer and File Execution | | PHASE 6: Hangup
The following messages are linked to specific phases in the conversation flow. See the diagram in the preceding section.
Execute the command uucico -r1 -x6 -s<system name>. It could be that UUCP is expecting some string that it is not receiving. Make the connection by hand to find out what needs to be incorporated into the Systems file entry to satisfy the request. Please keep timing in mind; perhaps some delays are needed.
Problem: The modem may be in "echo" mode (which is E1 on Hayes compatibles). This causes the modem to echo back or send a "ring" to your system when an incoming call is received. When getty receives the string, it changes the login: or password: into all capital letters.
Solution: Change the "echo" mode to off. (Use ATE0 for Hayes compatible modems.) Keep in mind that once this change is made you should use ATE1 in the Dialers file chat script. If you do not, you will not get the expected OK back from the modem.
Problem: Ports set for "delay" are expecting one or more carriage returns before proceeding with the login.
Solution: Try beginning the chat script in the Systems file on the dialing system with the following (the first "..." represents the items on the line before the chat script and the second "..." represents the rest of the chat script):
... "" \r\d\r\d\r\d\r in:--in: ...(Interpreted, the preceding reads: expect nothing, send return, delay, return, delay, return, delay, and return.)
A chat script is a login sequence - a list of expect-send sequences that a modem uses to establish a link with another modem. Chat scripts reside in the Systems file.
The following table is a list of parameters which can be edited into the chat scripts in the Systems file. The parameters listed in this table are the only parameters recognized for chat scripts in AIX.
|\c||Suppress carriage return which is sent at end of send string|
|\d||Delay 2 seconds|
|\p||Pause for approximately 1/4 second|
|\K||Send a break|
|\r||Carriage return character|
|BREAK||Generate break signal (approx. 1/4 second)|
|EOT||Send Control-D newline Control-D newline|
|\ddd||Send octal character|
|\E||Turn echo check on|
|\e||Turn echo check off|
|WAIT=n||Change to "n" seconds the timeout while waiting for the
next expect string (default is 45 sec)
[ Doc Ref: 90605225614694 Publish Date: Oct. 16, 2000 4FAX Ref: 1909 ]