COHERENT manpages
This page displays the COHERENT manpage for sys [Data base for UUCP connections].
List of available manpages
Index
sys -- System Administration
Data base for UUCP connections
/usr/lib/uucp/sys
The file /usr/lib/uucp/sys describes how to communicate with a remote
system. The UUCP daemon uucico uses the information in this file to
telephone a remote system, log into a remote system, and control what it
allows a remote system to do on your system.
Command cu also reads file sys for information on how it can call a remote
system. However, the following descriptions concentrate on how sys is used
by uucico.
Structure of the sys File
sys has the following structure:
command argument
...
alternate
command argument
...
alternate
command argument
...
system remotesystem
command argument
...
alternate
command argument
...
system remotesystem
command argument
...
alternate
command argument
...
Blank lines in the file are ignored. The body of the file consists of a
series of commands. Each command defines one or more values; each value,
in turn, determines one aspect of how your system interacts with a remote
system. A backslash at the end of a line lets an entry extend over more
than one one line.
The commands from the top of sys to the first system command set global
values -- that is, the values used by default when dealing with every
remote system. Note that uucico recognizes a number of global values that
are not explicitly written in sys.
The command system names a remote system. The commands from one system
command to the next (or the end of the file, whichever comes first) define
the values that uucico uses when it communicates with that system. These
system-specific values can override any of the global values.
The command alternate introduces a block of alternate values. The commands
from one alternate command to the next alternate command (or to the next
system command or to the end of the file, whichever comes first) set a
block of alternate values. uucico uses a block of alternate values when
the default values (and all preceding blocks of alternate values) fail for
any reason. By defining blocks of alternate values, you can define
multiple ways to interact with a remote system.
Order of Command Execution
As you can see the above display, both the global section and each system-
specific section can contain blocks of alternate commands. The order in
which uucico reads blocks of commands is important: each block can contain
its own version of a given command, and uucico uses the value set by the
command that it has read last.
The following describes the order in which uucico reads commands when it
attempts to call site remotesite:
1. uucico reads its default global values (which are described below). It
then reads the global-values section of sys, up to the first alternate
command.
2. uucico reads the section remotesite, from its system command to the
first alternate command.
3. uucico calls remotesite.
4. If the call to remotesite succeeds, then all is well. If it fails,
however, then uucico reads the first block of alternate commands in the
global section, then the first block of alternate commands in the
section for remotesite.
Note that a block of alternate values can simply reproduce values set
previously. This in effect forces uucico to try the same values once
again.
5. uucico again calls remotesite.
6. If the call succeeds, then all is well. If it fails, uucico reads the
second block of alternate values (should there be one) in the global-
defaults section, then the second block of alternate values (again,
should there be one) in the section for remotesystem. uucico makes its
third attempt to call remotesite.
This process continues either until uucico succeeds in getting through to
remotesite, or until it runs out of blocks of alternate values in both the
global section and in the site-specific section.
As you can see, it can be difficult at times to tell just what values
uucico is using at any given time. The command uuchk can help you untangle
this skein of values. See its Lexicon entry for details.
Structural Commands
The following commands help control the manner in which uucico reads
commands from sys:
system remotesystem
Name the remote system. All commands up to the next system command
refer to the system remotesystem.
alternate [name]
Introduce an alternate set of commands. The optional name lets you
name this block of alternate commands; if uucico uses this block of
alternate commands, it records name in the log file for remotesystem.
default-alternates true|false
If its argument is false, do not use any blocks of alternate values
from the global section. The default is true.
Chat Commands
The command chat defines a chat script. A chat script summarizes the
conversation that your system has with the remote system as it attempts to
log into that system.
chat has the following structure:
chat expect respond expect respond ... expect respond
As you can see, a chat script consists of pairs of strings. Each pair
contains an expect string, which gives what you expect the remote system to
say to your system; and a respond string, which gives what your system
sends in reply. When uucico runs out of expect/respond pairs, it assumes
that it has succeeded in logging into remotesystem. If you want to send
something to the remote system without waiting an expect string, then the
expect string in a expect/respond pair should be simply a pair of quotation
marks with nothing between.
Each string in the chat script is demarcated by white space. Therefore,
you must use the escape sequence `\s' to indicate white space within a
string. You can embed other escape sequences within the respond string;
these are given below.
An expect string can contain several sub-strings separated by hyphens. The
sub-strings themselves comprise pairs of expect/respond strings. If your
system does not receive the first expect sub-string, it can send the first
respond string (to prod the remote system), then await the second expect
string; and so on, until your system either runs out of sub-strings or it
receives an expect sub-string that it recognizes. You can, of course,
repeat the same expect/respond pair more than once. Because sub-strings
are separated by hyphens, you cannot use a literal hyphen in a string; you
should indicate a literal hyphen by the escape sequence `\055' (ASCII for
the hyphen character).
You can embed the following escape sequences in a respond string:
\\ Literal backslash character
\DDD Character with octal value DDD
\b Backspace
\c Suppress carriage return at end of send string
\d Delay sending for one or two seconds
\E Enable echo checking
\e Disable echo checking
\K Same as BREAK
\L Your system's login name
\N NUL
\n Newline or line feed
\P The password on the system being contacted
\p Pause sending for a fraction of a second
\r Carriage return
\s Space
\t Tab
\xDDD Character with hexadecimal value DDD
\Z Send name of the system being called
EOT End-of-transmission character (<ctrl-D>)
BREAK Break character
As in C, up to three octal digits may follow a backslash The escape
sequence \x can be followed by an indefinite number of hexadecimal digits.
To follow a hexadecimal escape sequence with a hexadecimal digit, interpose
a send string of `""'.
uucico sends a carriage return at the end of each send string, unless the
escape sequence \c appears in the string.
``Echo checking'' means that after uucico writes each character, it waits
for the remote system to echo it. You must turn on echo checking
separately for each send string for which you want it.
The following gives an example chat script; the numbers simply mark the
elements of the chat script for the discussion that follows, and are not
part of the chat script:
1 2 3 4 5 6
chat "" \r\c ogin:-BREAK-ogin:-BREAK-ogin: nuucp word: public
This script does the following:
1. Expect nothing from the modem (as indicated by the empty string "").
2. Send newline and carriage-return characters, as indicated by the escape
sequence \r\c.
3. Expect the string ogin: (or a string that ends with ogin:). If this is
not received within the defined pause period, send a break character (as
indicated by the escape sequence BREAK), and wait again for ogin:. If
the procedure times out again, send another break character and wait
again. If the third attempt times out, quit.
4. Having received ogin: from remotesystem, send the string nuucp.
5. Wait for the string word:, that is, the tail of the prompt Password:.
6. When the password prompt is received, reply with the password public.
Some users may experience trouble when logging into a machine that is
running SCO UNIX: it appears not to recognize carriage returns. The
simplest work around is to embed the ``delay'' escape sequence \d in the
send strings. For example, if you were using the above chat script to
communicate with a SCO UNIX system, and the system was not responding to
your transmission, you could modify it as follows:
chat "" \r\c ogin:-BREAK-ogin:-BREAK-ogin: \d\dnuucp\d\d\d\d word: \d\dpublic\d\d\d
This slows how your system responds to the SCO system; giving it enough
time to ``digest'' your transmission appears to work around the problem.
You can try adjusting the number of \d characters to get best performance.
The following commands help control the chat your system has with a
remotesystem:
chat-fail string
Abort the chat if string is received. string cannot contain white-
space characters; use escape sequences instead.
The description for remotesystem can contain multiple chat-fail
commands. The default is to have none.
chat-program program arguments
Pass arguments (if any) to program, which is the path name of a
program that you want uucico to execute before it executes your chat
command. program can contain its own version of a chat script, but
this is not required. If both a system's description contains both
the commands chat-program and chat, uucico always executes the former
first.
arguments can contain any of the following escape sequences:
\Y Port device name
\S Port speed
\\ Literal backslash
uucico connects the standard input and standard output of program to
the port in use, and connects the standard error of program to the
UUCP log file. If program does not exit with a status of zero, uucico
assumes that it has failed.
uucico runs program as user uucp, and the environment is that of the
process that invoked uucico. Take care that by using program, you do
not compromise your system's security.
chat-seven-bit true|false
If the argument is true, uucico strips all incoming characters to
seven bits before it compares them with the expect string; otherwise,
it uses all eight bits. The default is true because some UNIX systems
generate parity bits during the login prompt that must be ignored
while running a chat script.
chat-timeout seconds
Wait seconds for the remote system to respond to a send string. If
send string times out, uucico sends the next send sub-string (if there
is one), or fails. The default is timeout time is 60 seconds.
Aliases and Identifiers
The following commands let you manipulate how your system identifies itself
to a remotesystem:
alias systemalias
Define systemalias to be an alias for remotesystem. The commands uucp
and uux can use systemalias, as can remotesystem itself. This command
is helpful should remotesystem change its name: it spares you the
trouble of having to comb through your system to replace every
occurrence of the old name. The default is to have no aliases.
myname mysysname
Tell your system to identify itself as mysysname instead of its true
name (as kept in file /etc/uucpname) when it calls remotesystem.
If the description of remotesystem includes the command called-login
without the argument ANY, your system will identify itself as
mysysname when it is called by remotesystem.
call-login loginname
Tell uucico how to expand the escape sequence \L, which stands for the
login name. With this command, you can use a default chat script with
several different systems, expanding the login escape sequence (and
password, as will be shown next) with the appropriate strings.
call-password password
Tell uucico how to expand the escape sequence \P, which stands for a
password. As with the command call-login, described above, this
command lets you use the same chat script with a number of different
systems, by expanding the login and password escape sequences as
needed.
Accepting a Call
The following commands affect how your system handles a call from another
system:
called-login login_identifer [remotesystem ... ]
Recognize the remote system with the name login_identifier when it
attempts to log into your system. If you set login_identifier to ANY,
uucico will accept any login identifier. The optional remotesystem
arguments name each remote system that is allowed to log in under that
login identifier.
Some systems use this command to select a number of different
alternate sections within sys; in effect, this allows uucico to jump
to a given portion of sys based upon the identity of the system that
is attempting to log in. In this case, the remotesystem arguments
will not be used.
callback true|false
If true, this command tells uucico to hang up when the given remote
system calls, and call it back. This is a security measure, to
protect your system from being penetrated by remote systems. The
default is false.
called-chat '' '' \r\d\r in:--in: nuucp word: public word: serialnumber
called-chat-fail string
called-chat-program program arguments
called-chat-seven-bit true|false
called-chat-timeout seconds
These commands control how a remote system logs into your system.
They are analogous to the commands chat, chat-fail, chat-program,
chat-seven-bit, and chat-timeout, and are structured just like them.
Note that called-chat the rest of these commands are invoked after
protocol negotiation has been completed between uucico on your system
and its counterpart on the remote system, but before data exchange has
begun. How this chat sequence dovetails with the conversation that
COHERENT has with the remote system when it logs into your system
depends upon a number of factors, in particular whether COHERENT or
uucico controls the port in question. It is customary to let COHERENT
control logging in through serial ports, as these ports can be used by
interactive users as well as by UUCP sessions, while uucico usually is
allowed to control its well-known TCP port (540). However, called-
chat can be used to perform special tasks on normal serial lines, such
as put the modem into a special state that is required by a given
remote site's hardware.
Time Strings and Time Commands
Many of the commands that you can use in sys commands use a special kind of
string, the time string, to specify a range of time. The following
describes the structure of a time string.
Each simple time string begins with a token that sets the day of the week.
You can use any one of the following values:
Su Sunday only
Mo Monday only
Tu Tuesday only
We Wednesday only
Th Thursday only
Fr Friday only
Sa Saturday only
Wk Every week (Monday through Friday)
Any Every day of the week
You can name more than one day of the week in a time string: just use
commas to separate entries.
After the day of the week comes a range of hours and minutes The beginning
and ending times are separated by a hyphen. Military time is used, i.e.,
hour 0 (midnight) through hour 23 (11 PM). uucico uses the local time on
your system. The range of time can may cross midnight; for example 2300-
0700 indicates 11 PM to 7 AM the following day.
If no time is given, any time applies. The word Never in place of the time
string indicates that this remote system is never to be contacted. You
should use this setting for systems that contact you but which you never
contact.
You can specify more than one day/time combination in a time string; use
commas to separate entries.
The following gives examples of time strings:
Wk2305-0855,Sa,Su2305-1655
Weekdays from 11:05 PM to 8:55 AM the following day; any time on
Saturday; and Sunday from 11:05 PM to 4:55 PM the following day.
Wk0905-2255,Su1705-2255
Weekdays from 9:05 AM to 10:55 PM, and Sunday from 5:05 PM to 10:55
PM. The remote system cannot be called on Saturday.
The following commands control when remotesystem is contacted:
time timestring [retry]
Specify when your system can call remotesystem. timestring gives a
time string; the section Time Strings, above, describes how to
construct one. retry, if used, defines how long to wait before your
system attempt to call remotesystem again. The default time for each
remotesystem is Never.
The optional argument retry sets many minutes your system will wait
before it attempts to recontact remotesystem, should a call made
during timestring fail. If retry is not defined, uucico uses an
exponentially increasing retry time: after each failure the next retry
period is longer.
The description of remotesystem can contain multiple time commands.
uucico will call remotesystem if the current time matches the time
defined by any of them.
timegrade grade timestring [retry]
This command tells uucico to call remotesystem only if a file with a
grade greater than or equal to grade is awaiting transfer to that
system.
grade gives the grade of file to await. It is a single letter or
digit, from `0' to `9', `A' to `Z', and `a' to `z', in this order from
highest grade to lowest.
timestring gives the period of time to which this command applies.
retry gives the length of time, in minutes, that your system must wait
before it recontacts remotesystem should a call made during timestring
fail.
The command time is equivalent to the command timegrade with a grade
of `z', which permits all jobs to be run. The command uucico -S
overrides grade; the command uucico -s does not.
The grade applies only to calls made to remotesystem, not to calls
that it makes to you.
The description of remotesystem can have multiple timegrade commands.
The command call-timegrade, described below, complements this command.
call-timegrade grade timestring
This command tells uucico to ask remotesystem to execute only the jobs
with a grade of grade or higher, should it call remotesystem during
the period of time defined in timestring. This commands complements
the command timegrade: while timegrade limits what your system does
with the remote system, call-timegrade attempts to limit what
remotesystem does to your system.
grade gives the grade of the job to send. It is be a single letter or
digit, from `0' to `9', `A' to `Z', and `a' to `z', in this order from
highest grade to lowest. timestring gives the period of time to which
this command applies. It is a time string, as defined above.
The description of a remotesystem can contain multiple call-timegrade
commands.
Please note that not every implementation of UUCP will cooperate in
setting grades to its jobs. If this command does not appear, or if no
time string matches, the remote system can send whatever grade of work
it chooses.
Retries and Waiting
The following commands define how often uucico will try to do something,
and how long it will wait for a particular event to happen.
max-retries retries
Recontact a remotesystem no more than than retries times during any
time time period. The default number of retries is 26.
success-wait seconds
Wait seconds before recontacting a remotesystem after a successful
call. This limits the number of times a remotesystem will be
contacted during a given time period. The default is zero.
Ports and Telephones
The following commands govern how uucico selects a port and telephones
remotesystem.
address ip_address|domain_name
Name a remote system to contact a TCP/IP network. This command can
name the remote system to contact either by its domain name (e.g.,
lepanto.com) or its IP address (e.g., 199.3.32.100). Note that if the
port named by port command is not a TCP port, uucico ignores this
command.
baud speed
speed speed
Set the speed (or ``baud rate'') at which to call remotesystem. This
tells uucico to try every port defined in file /usr/lib/uucp/port
until it finds an unlocked port that runs at speed.
If the description of remotesystem contains both the baud and port,
uucico uses both when it selects a port.
If you wish to try multiple speeds when contacting a remotesystem, you
must embed each baud command in its own set of alternate commands.
uucico does not use a default speed. The command
baud 0
tells uucico to use the ``natural'' speed of a port (whatever that
is), and override and overrides any baud or speed commands that appear
in the global defaults.
To place a call to a remotesystem, its description (or the global
defaults) must name a port through which to dial out, either with baud
or with the command port (described below).
port portname
Name or describe the port through which to contact remotesystem.
If used with only one argument, uucico assumes that that string names
a port defined in the file /usr/lib/uucp/port. portname may point to
more than one physical device; uucico tries each in turn until it
finds one that is unlocked.
If used with more than one string, uucico assumes that the strings
define a port, in the same way as done in the file port.
To place a call to a remotesystem, its description (or the global
defaults) must name a port through which to dial out, either with port
or with the command baud (described above).
phone number
Give the telephone number of remotesystem. An `=' character in the
telephone number tells uucico to wait for a secondary dial tone. A `-
' character tells uucico to pause for one second while dialing
The description of a remotesystem can have more than one phone
command, one for each number at which you can call that remotesystem.
If you want your system to telephone remotesystem, then its
description must contain at least one phone command.
Protocols and Protocol Variables
The command
protocol codes
names the communication protocols to use with remotesystem. code must one
or more lower-case letters, each of which names a protocol. If more than
one protocol is named, uucico considers them in the order in which you give
them.
uucico recognizes the following protocol codes:
t
e These protocols perform no checking at all. They are intended to be
used over a communication path that has end-to-end reliability, e.g.,
TCP. uucico will consider them only when it is talking to a TCP port
that is both reliable and eight-bit.
i This is a bidirectional protocol; that is, your system and remotesystem
can both send and receive simultaneously. It requires an eight-bit
connection. This protocol is preferred for a serial connection, as it
offers the fastest transmission of data.
g This is the first, and the commonest UUCP protocol. Every
implementation of UUCP supports this protocol; some support no other.
It requires an eight-bit connection. For a detailed description of how
this protocol works, see the article by Steven Baker, cited below.
G This is the System V Release 4 version of the g protocol.
a This mimics the Z-Modem protocol. It requires an eight-bit connection;
but unlike the g and i protocols, it works even if certain control
characters cannot be transmitted. (Code for this protocol was
contributed by Doug Evans.)
j This is a variant of the i protocol, which can avoid certain control
characters. The set of characters it avoids can be set by a parameter.
It is useful over a eight-bit connection that will not transmit certain
control characters.
f This protocol supports X.25 connections. It checksums each file as a
whole, so any error causes the entire file to be retransmitted. It
requires a reliable connection, but uses only seven-bit transmissions.
It is a streaming protocol; therefore, you can use it with a serial
port, but the port must be completely reliable and flow controlled.
If you do not use the protocol command to specify a protocol, uucico
considers the protocols in the order given above, and chooses one based on
the characteristics of the port and the dialer specified in the files
/usr/lib/uucp/port and /usr/lib/uucp/dial. The port and dial must meet the
requirements of a protocol before uucico will consider it during
negotiation with remotesystem.
If neither the seven-bit nor the reliable command is used, uucico will use
the i protocol (subject, of course, to what is supported by the remote
system; you cannot assume that all systems support the i protocol). No
current protocol can be used with a port for which you have specified
seven-bit true and reliable false. You must use the protocol command for
the system, or uucico will select no protocol at all. (The only reasonable
choice would be protocol f.) You can use the command
protocol-parameter protocol parameter [argument ... ]
to modify a protocol's default parameters.
The i protocol recognizes the following parameters:
window size
Request that remotesystem use a size window, between one and 31,
inclusive. The default is 16.
packet-size size
Request that remotesystem use a packet of size bytes, between one and
4,095, inclusive. The default is 1,024.
remote-window size
Ignore the window size requested by remotesystem, and instead us a
window of size. The default is zero, which means that the request of
remotesystem is honored.
remote-packet-size size
Ignore the packet size requested by remotesystem, and instead use a
packet of size bytes. The default is zero, which means that the
request of remotesystem is honored.
sync-timeout seconds
Wait seconds for a SYNC packet from remotesystem. The default is ten.
sync-retries number
Resend a SYNC packet number times before giving up. The default is
six.
timeout seconds
Wait seconds for an incoming packet before sending a NAK (negative
acknowledgement) The default is ten.
retries number
Resend a packet or negative acknowedgement number times before giving
and closing the connection. The default is six.
errors number
Quit after number errors have occurred. The default is 100.
error-decay number
Decrease the count of errors by one after receiving number packets.
This keeps occasional errors from accumulating during a long
conversation, and so aborting what is actually a successful
transmission. The default is ten.
ack-frequency number
Send an acknowledgement after receiving number packets. By default,
this is set to half the requested size of the window.
The protocols g and G recognize the following parameters:
window size
Request that remotesystem use a size window, between one and seven,
inclusive. The default is seven.
packet-size size
Request that remotesystem use a packet size of size bytes. size must
be a power of two, between 32 and 4,096, inclusive. The default is
64, which is the only packet size supported by many older UUCP
packages.
startup-retries number
Retry the entire initialization sequence number times before quitting.
The default is eight.
init-retries number
Retry one phase of the initialization sequence number times before
quitting. The default is four.
init-timeout seconds
Wait for seconds before timing out one phase of the initialization
sequence. The default is ten.
retries number
Resend a packet or a request for a packet number times before
quitting. The default is six.
timeout seconds
Wait for seconds for a packet or an acknowledgement before timing out.
The default is ten.
garbage number
Drop the connection after receiving number unrecognized characters.
number must be larger than the packet size. The default is 10,000.
errors number
Quit after number errors have occurred. Errors include malformed
packets, out-of-order packets, bad checksums, and packets rejected by
the remote system. The default is 100.
error-decay number
Decrease the count of errors by one after receiving number packets.
This keeps occasional errors from accumulating during a long
conversation, and so aborting what is actually a successful
transmission. The default is ten.
remote-window size
Ignore the window size requested by remotesystem, and instead us a
window of size. The default is zero, which means that the request of
remotesystem is honored.
remote-packet-size size
Ignore the packet size requested by remotesystem, and instead use a
packet of size bytes. The default is zero, which means that the
request of remotesystem is honored.
short-packets true|false
If true, optimize transmission by sending shorter packets when there
is less data to send. This confuses some UUCP packages; when
connecting to such a package, this parameter must be set to false. The
default is true for the g protocol and false for the G protocol.
The a protocol mimics the Z-modem protocol. It supports the following
parameters: All take numeric arguments, except for escape-control, which
takes a Boolean argument:
timeout seconds
Wait seconds for a packet before timing out. The default is ten.
retries number
Resend a packet number times before quitting. The default is ten.
startup-retries number
Retry sending the initialization sequence number times before
quitting. The default is four.
garbage number
Drop the connection after receiving number unrecognized ``garbage''
characters. number must be larger than the packet size. The default
is 2,400.
send-window number
Send number characters before waiting for an acknowledgement. The
default is 1,024.
escape-control true|false
If true, uucico can use the protocol over a connection that does not
transmit certain control characters, such as XON or XOFF. The
connection must still transmit eight-bit characters other than control
characters. The default is false.
The j protocol can be used over an eight-bit connection that will not
transmit certain control characters. It accepts the same parameters as the
i protocol, plus the following:
avoid string
Avoid every character defined in string. string can contain escape
sequences, as defined above for the chat script. Each character must
be a non-printable ASCII character (i.e., ASCII values less than 32 or
greater than 126). Each must be defined using using the escape
sequence \DDD, where DDD gives three octal digits.
The default value is \021\023 (i.e., XON and XOFF). If the package is
configured to use HAVE_BSD_TTY, then you may have to avoid \377 as
well.
The f protocol is intended for use with error-correcting modems only. It
checksums each file as a whole, so any error causes the entire file to be
retransmitted. It recognizes the following parameters:
timeout seconds
Wait seconds before timing out. The default is 120.
retries number
Retry sending a file number times before quitting. The default is
two.
The protocols t and e recognize the following parameter:
timeout seconds
Wait seconds before timing out. The default is 120.
Note that the command protocol-parameter can be used in files
/usr/lib/uucp/dial and /usr/lib/uucp/port as well as in sys. In case of a
conflict between the entries in these files, the entries in dial takes
precendence; then those in port. The entries in sys have lowest precedence.
File Transfers
The following commands help to control the transfer of files.
send-request yes|no
Set whether remotesystem can request files from your system. The
default is yes, that is, remotesystem may request files.
receive-request yes|no
Set whether remotesystem can send files to your system. The default
is yes, that is, remotesystem may send files.
request yes|no
This combines the commands send-request and receive-request into one.
call-transfer yes|no
Set whether your system may transfer files to remotesystem when it
calls remotesystem. The default is yes.
called-transfer yes|no
Set whether your system may transfer files to remotesystem when
remotesystem calls your system. The default is yes.
transfer yes|no
This combines commands call-transfer and called-transfer into one.
call-local-size number timestring
Send or receive no file larger than number bytes when your system
calls remotesystem during the time defined in timestring. You can use
this command to help limit the length of a call made during times when
toll charges are higher. The description of a system may contain
multiple call-local-size commands, one for each period during which
you wish to limit activity. The default is to have no limit.
Please note that the size-control commands, are guaranteed only to
limit the size of files being sent by your system. The size of files
being sent from remotesystem can be checked if the other system is
running the Taylor UUCP package. Other UUCP packages do not
understand a maximum-size request, nor do they inform this package of
the size of the files they are sending.
call-remote-size number timestring
Limit to number bytes the size of a file that can be fetched by remote
request (either by your system on remotesystem or by it on your
system) when your system calls remotesystem during the time defined in
timestring. The description of a remotesystem can contain multiple
call-local-size commands, one for each period during which you wish to
limit activity. The default is to have no limit.
called-local-size number timestring
Send or receive no file larger than number bytes when remotesystem
calls your system during the time defined in timestring. The
description of a system may contain multiple call-local-size commands,
one for each period during which you wish to limit activity. The
default is to have no limit.
called-remote-size number timestring
Limit to number bytes the size of a file that can be fetched by remote
request (either by your system on remotesystem or by it on your
system) when remotesystem calls your system during the time defined in
timestring. The description of a remotesystem can contain multiple
call-local-size commands, one for each period during which you wish to
limit activity. The default is to have no limit.
local-send directorylist ...
Limit to directorylist the directories from which your system can send
files to remotesystem. Each directory in directorylist must be
separated by white space. You can use a tilde `~' for the public
directory, i.e., /usr/spool/uucppublic. Listing a directory within
directorylist lets your system send all files within that directory
and its subdirectories.
Prefixing a directory with an exclamation point `!' specifically
excludes it and its subdirectories from being sent. For example, the
command
local-send /v/fwb !/v/fwb/Personal
means that your system can send all files in directory /v/fwb to
remotesytem except for the files in directory /v/fwb/Personal.
uucico reads directorylist from left to right, and the last directory
to apply takes effect. Therefore, you should list directories from
top down. The default is the root directory, i.e., your system can
send any file to remotesystem.
remote-send directorylist
Limit to directorylist the directories from which remotesystem can
request files. The default is /usr/spool/uucppublic.
local-receive directorylist
Limit to directorylist the directories into which your system can
write files requested from remotesystem. The default is
/usr/spool/uucppublic.
remote-receive directorylist
Limit to directorylist the directories on remotesystem into which your
system can write files. The default is /usr/spool/uucppublic. This
command cannot override permissions that localsystem has granted to
your system.
forward-to systemlist
Limit the systems to which your system will forward files to those
named in systemlist. A systemlist of ANY lets remotesystem forward
files through your system to any system it wants. The default is not
to permit forwarding to other systems. Note that if you permit
remotesystem to execute the command uucp on your system, it
effectively has permission to forward to any system.
forward-from systemlist
Limit the systems from which remotesystem request files through your
system to those named in systemlist. A systemlist of ANY lets
remotesystem request files from any system. The default is not to
permit remotesystem to request files from anywhere. Note that if you
permit remotesystem to execute the command uucp on your system, it
effectively has permission to fetch files through your system from any
other system.
forward systemlist
This command combines the commands forward-to and forward-from.
Miscellaneous Commands
The following gives miscellaneous commands that can be used in sys:
sequence yes|no
If true, this commands tells uucico to use the conversation sequencing
for remotesystem. This means that if somebody impersonates
remotesystem and logs into your system, that fact will be discovered
the next time remotesystem actually calls. The default is false.
command-path path
Limit to path the directories that a command file forwarded from
remotesystem can search for commands to execute. The directories
named in path must be separated by white space.
commands commandlist
Limit the commands that remotesystem can execute on your system to
those named in commandlist. A commandlist ALL lets remotesystem
execute all programs on your system. The default is rnews rmail.
free-space number
This command tells uucico always to leave free number bytes of space
in a file system. This command ensures that uucico will not permit
remotesystem to fill up your file system. If an incoming file is too
large to leave number bytes free on the file system, uucico refuses
the file or aborts its downloading.
Note that not every version of UUCP supports this.
pubdir directory
Name the public directory available to remote UUCP systems. The
default is /usr/spool/uucppublic.
debug activitylist
Log each UUCP activity named in activitylist when talking with
remotesystem. These logs can help you debug problems with uucico and
cu. uucico recognizes the following activities:
abnormal chat handshake
uucp-proto proto port
config spooldir execute
incoming outgoing
none tells uucico to log nothing.
max-remote-debug typelist
Limit to typelist the types of debugging that remotesystem can request
on your system. This command is designed to stop remotesystem from
filling your disk with debugging information.
Defaults
The following gives the default settings for all systems. You should
regard these as appearing at the head of /usr/lib/uucp/sys, even though
they do not explicit appear in that file:
time Never
chat "" \r\c ogin:-BREAK-ogin:-BREAK-ogin: \L word: \P
chat-timeout 10
callback n
sequence n
request y
transfer y
local-send /
remote-send ~
local-receive ~
remove-receive ~
commands rnews rmail
max-remote-debug abnormal,chat,handshake
Example
The following gives the entry in /usr/lib/uucp/sys for the system mwcbbs,
which is the Mark Williams bulletin board:
system mwcbbs
time Any
baud 2400
port MODEM
phone 17085590412
chat "" \r\d\r in:--in: nuucp word: public word: serialnumber
protocol g
protocol-parameter g window 3
protocol-parameter g packet-size 64
myname bbsuser
request yes
transfer yes
remote-send /usr/spool/uucppublic /tmp
remote-receive /usr/spool/uucppublic /tmp
commands rmail uucp
The following describes each command in detail:
system mwcbbs
Name the sytem being described, in this case mwcbbs.
time Any
Set the time during your system can contact mwcbbs, in this case any
time.
baud 2400
Set the speed at which your system can contact mwcbbs; here 2400 baud.
port MWCBBS
Set the port through which your system can dial out to mwcbbs; here,
port MWCBBS. This port is defined in the file /usr/lib/uucp/port; for
details on this file and how to modify its data, see the Lexicon entry
for port.
phone 17085590412
This gives the telephone number of mwcbbs.
chat '' '' \r\d\r in:--in: nuucp word: public word: serialnumber
Give the chat script with which your system logs into mwcbbs. See the
section on chat scripts, above, for details on how to interpret this
command.
protocol g
Use the g protocol.
protocol-parameter g window 3
Set the window used with protocol g to three.
protocol-parameter g packet-size 64
Set the size of the packet used with protocol g to 64 bytes.
myname bbsuser
Identify yourself to mwcbbs as user bbsuser.
request yes
Let mwcbbs send files to your system, and request files from your
system. Setting this to no would forbid mwcbbs to do so.
transfer yes
Permit files to be transferred from your system to mwcbbs, and vice
versa, regardless of whether your system calls mwcbbs or vice versa.
remote-send /usr/spool/uucppublic /tmp
Permit mwcbbs to request files only from directories
/usr/spool/uucppublic and /tmp.
remote-receive /usr/spool/uucppublic /tmp
Limit the directories into which your system will write files
requested from mwcbbs to /usr/spool/uucppublic /tmp.
commands rmail uucp
Limit the commands that mwcbbs can execute on your system to rmail and
uucp.
See Also
Administering COHERENT,
dial,
port,
UUCP
Baker, S.: From UUCP to eternity. UNIX Review, April 1993, pp. 15-26.
Summarizes the history of UUCP and describes the working of the g protocol.
Notes
Only the superuser root can edit /usr/lib/uucp/sys.
The file sys supports many commands in addition to the ones described here.
This article describes only those commands that might be used in typical
UUCP connections. For more information, see the original Taylor UUCP
documentation, which is in the archive /usr/src/alien/uudoc104.tar.Z.











