uux - UNIX-to-UNIX system command execution


     uux [-] [-bcCjnprz] [-a name] [-g grade] [-s  filename]  [-x
     debug_level] command-string


     The uux utility will gather zero or more files from  various
     systems,  execute  a  command on a specified system and then
     send standard output to a file on a specified system.

     Note:  For security reasons, most  installations  limit  the
     list of commands executable on behalf of an incoming request
     from uux, permitting only the receipt of mail (see mail(1)).
     (Remote     execution    permissions    are    defined    in

     The command-string is made up of one or more arguments  that
     look  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 the following:

        o  An absolute path name.

        o  A path name preceded by ~xxx, where  xxx  is  a  login
           name  on  the specified system and is replaced by that
           user's login directory.

     Anything else is prefixed by the current directory.

     As an example, the command:

     example% uux "!diff sys1!/home/dan/filename1 \
            sys2!/a4/dan/filename2 > !~/dan/filename.diff"

     will get the filename1 and filename2 files from the sys1 and
     sys2 machines, execute a diff(1) command and put the results
     in filename.diff in the local PUBDIR/dan/ directory.  PUBDIR
     is  a  public  directory  defined  in  the  uucp  source. By
     default, this directory is /var/spool/uucppublic.

     Any special shell characters (such as < >  ;  |)  should  be
     quoted either by quoting the entire command-string, or quot-
     ing the special  characters  as  individual  arguments.  The
     redirection operators >>,  <<, >|, and >& cannot be used.

     uux will attempt to get all appropriate files to the  speci-
     fied system where they will be processed. For files that are
     output  files,  the  file  name  must   be   escaped   using
     parentheses. For example, the command:

     example% uux "a!cut -f1 b!/usr/filename > c!/usr/filename"

     gets /usr/filename from system b and sends it to  system  a,
     performs  a cut command on that file and sends the result of
     the cut command to system c.

     uux will notify you if the requested command on  the  remote
     system  was  disallowed. This notification can be turned off
     by the -n option. The response comes by remote mail from the
     remote machine.


     The following options are supported:

     -     The standard input to uux is made the  standard  input
           to the command-string.

     -a name
           Uses name as the user job identification replacing the
           initiator  user-id.  (Notification will be returned to
           user-id name.)

     -b    Returns whatever standard input was  provided  to  the
           uux command if the exit status is non-zero.

     -c    Does not copy local file to the  spool  directory  for
           transfer to the remote machine (default).

     -C    Forces the copy of local files to the spool  directory
           for transfer.

     -g grade
           grade can be either a  single  letter,  number,  or  a
           string  of  alphanumeric characters defining a service
           grade. The uuglist(1C) command determines  whether  it
           is  appropriate to use the single letter, number, or a
           string of alphanumeric characters as a service  grade.
           The  output from the uuglist command will be a list of
           service grades that are available or  a  message  that
           says  to  use a single letter or number as a  grade of

     -j    Outputs the jobid string on the standard output  which
           is the job identification. This job identification can
           be used by uustat(1C) to obtain the  status   or  ter-
           minate a job.

     -n    Does not notify the user if the command fails.

     -p    Same as -. The standard  input  to  uux  is  made  the
           standard input to the command-string.

     -r    Does not start the file transfer, but just queues  the

     -s filename
           Reports status  of  the  transfer  in  filename.  This
           option  is  accepted  for  compatibility,  but  it  is
           ignored because it is insecure.

     -x debug_level
           Produces debugging  output  on  the  standard  output.
           debug_level   is   a   number  between  0  and  9.  As
           debug_level increases to 9,  more  detailed  debugging
           information is given.

     -z    Sends success notification to the user.


     See environ(5) for descriptions of the following environment
     variables  that  affect  the execution of uux: LANG, LC_ALL,


     The following exit values are returned:

     0     Successful completion.

     >0    An error occurred.


           other data and programs

           remote execution permissions

           other programs

           spool directories


     See attributes(5) for descriptions of the  following  attri-

    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    | Availability                | SUNWbnuu                    |
    | Interface Stability         | Standard                    |


     cut(1), mail(1), uucp(1C), uuglist(1C),  uustat(1C),  attri-
     butes(5), environ(5), standards(5)


     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. There-
     fore, the simple file name (without path or  machine  refer-
     ence)  must  be unique within the uux request. The following
     command will NOT work:

     example% uux "a!diff b!/home/dan/xyz c!/home/dan/xyz > !xyz.diff"

     But the command:

     example% 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 direc-
     tory is not searchable by "other", the request will fail.

     The following restrictions apply to the shell pipeline  pro-
     cessed by uux:

        o  In gathering files from  different  systems,  pathname
           expansion  in  not  performed  by uux. Thus, a request
           such as

               uux "c89 remsys!~/*.c"

     would attempt to copy the file named literally  *.c  to  the
     local system.

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

        o  The use of the shell metacharacter * will probably not
           do what you want it to do.

        o  The shell tokens << and >> are not implemented.

        o  The redirection operators >>, <<, >|, and >& cannot be

        o  The reserved word ! cannot be used at the head of  the
           pipeline to modify the exit status.

        o  Alias substitution is not performed.

Man(1) output converted with man2html