uux(1C) uux(1C)
NAME
uux - UNIX-to-UNIX system command execution
SYNOPSIS
uux [options] command-string
DESCRIPTION
The uux command gathers zero or more files from various
systems, executes a command on a named system, and then sends
standard output to a file on another named system.
Files
/var/spool/uucp spool directories
/etc/uucp/Permissions remote execution permissions
/usr/lib/uucp/* other programs
/etc/uucp/* other data and programs
/usr/lib/locale/locale/LC_MESSAGES/uxbnu.abi
language-specific message file [See
LANG on environ(5).]
USAGE
uux processes supplementary code set characters according to
the locale specified in the LC_CTYPE environment variable [see
LANG on environ(5)].
For security reasons, most installations historically limited
the list of commands that were executable on behalf of an
incoming request from uux, permitting only the receipt of mail
[see mail(1)].
An authentication mechanism has been built into uux that works
with a key management system to authenticate requesting users
and machines in a reliable way. This feature works in
conjunction with the uuxqt(1M) command and the ID mapping
feature. It allows a remote request to be executed reliably
under a local identity. (Remote execution permissions are
defined in /etc/uucp/Config and /etc/uucp/Permissions.)
command-string is made up of one or more arguments and looks
like a shell command line, except that the command and file
names may be prefixed by system-name!. A null system-name is
interpreted as the local system.
File names may be one of:
Copyright 1994 Novell, Inc. Page 1
uux(1C) uux(1C)
1. A full pathname.
2. A pathname preceded by ~xxx, where xxx is a login on
the named system and is replaced by the login
directory of user xxx.
3. Anything else is prefixed by the pathname of the
current directory.
As an example, the command
uux "!diff sys1!/home/dan/file1 sys2!/a4/dan/file2 > !~/dan/file.diff"
will get the file1 and file2 files from the sys1 and sys2
machines, execute the diff(1) command on the two files and put
the output in file.diff in the local PUBDIR/dan/ directory.
PUBDIR is a public directory defined in the uucp source. By
default, PUBDIR is /var/spool/uucppublic.
Any special shell characters such as <, >, ;, | should be
quoted either by quoting the entire command-string, or by
quoting the special characters as individual arguments.
uux attempts to get all appropriate files to the system where
they will be processed. For files that are output files, the
file name must be escaped using parentheses. For example, the
command:
uux "a!cut -f1 b!/usr/file > c!/usr/file"
gets /usr/file from system b and sends it to system a,
executes the cut command on that file, and sends the output of
the cut command to system c.
uux will notify you if the requested command on the remote
system was disallowed. The response comes by remote mail from
the remote machine. This notification can be turned off with
the -n option.
The following options are interpreted by uux:
- Use the standard input to uux as the standard input
to command-string.
-aname Replace the initiating user id with user name.
Notification will be returned to user name.
Copyright 1994 Novell, Inc. Page 2
uux(1C) uux(1C)
-b If the exit status is non-zero, return whatever
standard input was provided.
-c Do not copy local files to the spool directory for
transfer to the remote machine (default).
-C Force the copy of local files to the spool directory
for transfer.
-ggrade grade defines a service grade. It can be a single
letter, number, or a string of alphanumeric
characters. The uuglist(1C) command determines
whether it is appropriate to use the single letter,
number, or string of alphanumeric characters as a
service grade. The output of the uuglist command
will be a list of the service grades available or a
message that says to use a single letter or number
as a grade of service.
-j Output the job id string on the standard output.
This job identification can be used by uustat(1C) to
obtain the job status or terminate the job.
-n Do not notify the user if the command fails.
-p The same as - option. Use the standard input to uux
as the input to command-string.
-r Do not start the file transfer; just queue the job.
-sfile Report the status of the transfer in file.
-xdebug_level
Produce debugging output on the standard output.
debug_level is a number between 0 and 9; as it
increases to 9, more detailed debugging information
is given.
-z Send success notification to the user.
Note that any commands that a user will be allowed to execute
via uux need to be added to the /etc/uucp/Permissions file,
along with the actual pathname of the command. If a pathname
is not specified, the default path, /usr/bin, is searched. If
a command has a symbolic link to another command, the link
will not be followed by uux, and the user will get back an
Copyright 1994 Novell, Inc. Page 3
uux(1C) uux(1C)
error message stating that they do not have permission to
execute the command.
Warnings
Only the first command of a shell pipeline may have a system-
name!. All other commands are executed on the system of the
first command.
The use of the shell metacharacter * will probably not do what
you want it to do.
The shell tokens << and >> are not implemented.
The execution of commands on remote systems takes place in an
execution directory known to the uucp system. All files
required for the execution will be put into this directory
unless they already reside on that machine. The simple file
name (without path or machine reference) must therefore be
unique within the uux request. The following command will not
work:
uux "a!diff b!/home/dan/xyz c!/home/dan/xyz > !xyz.diff"
but the command
uux "a!diff a!/home/dan/xyz c!/home/dan/xyz > !xyz.diff"
will work (if diff is a permitted command).
Protected files and files that are in protected directories
that are owned by the requester can be sent in commands using
uux. However, if the requester is root, and the directory is
not searchable by ``other,'' the request will fail.
REFERENCES
cryptkey(1), cut(1), environ(5), mail(1), uucp(1C),
uuglist(1C), uustat(1C)
Copyright 1994 Novell, Inc. Page 4