Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ uux(1C) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cryptkey(1)

cut(1)

environ(5)

mail(1)

uucp(1C)

uuglist(1C)

uustat(1C)






       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








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026