rsh(1)




NAME

     rsh, remsh, remote_shell - remote shell


SYNOPSIS

     rsh [-n] [-l username] hostname command

     rsh hostname [-n] [-l username] command

     remsh [-n] [-l username] hostname command

     remsh hostname [-n] [-l username] command

      hostname [-n] [-l username] command


DESCRIPTION

     rsh connects to the  specified  hostname  and  executes  the
     specified  command.  rsh  copies  its  standard input to the
     remote command, the standard output of the remote command to
     its  standard  output,  and the standard error of the remote
     command to its standard error.  Interrupt,  quit,  and  ter-
     minate  signals  are  propagated  to the remote command. rsh
     normally terminates when the remote command does.

     If you omit command, instead of executing a single  command,
     rsh logs you in on the remote host using rlogin(1).

     rsh will not return the exit status code of command.

     Shell metacharacters which are not quoted are interpreted on
     the  local  machine,  while quoted metacharacters are inter-
     preted on the remote machine. See EXAMPLES.

     If there is no locale setting in the initialization file  of
     the  login  shell (.cshrc, . . .) for a particular user, rsh
     always executes the command in the  "C"  locale  instead  of
     using the default locale of the remote machine.


OPTIONS

     The following options are supported:

     -l username
           Uses username as the remote username instead  of  your
           local  username.  In  the  absence of this option, the
           remote username is the same as your local username.

     -n    Redirects the input of rsh to /dev/null. You sometimes
           need  this  option  to  avoid unfortunate interactions
           between rsh and the shell which invokes it.  For exam-
           ple,  if  you  are running rsh and invoke a rsh in the
           background without redirecting its input away from the
           terminal, it will block even if no reads are posted by
           the remote command.  The -n option will prevent this.

     The type of remote shell (sh, rsh, or other)  is  determined
     by  the  user's  entry in the file /etc/passwd on the remote
     system.


OPERANDS

     The following operand is supported:

     command
           The command to be executed on the specified hostname.


USAGE

     See largefile(5) for the description of the behavior of  rsh
     and remsh when encountering files greater than or equal to 2
     Gbyte ( 2**31 bytes).

     The rsh and remsh commands are IPv6-enabled. See ip6(7P).

     Hostnames are given in the hosts database, which may be con-
     tained  in  the  /etc/hosts  file,  the Internet domain name
     database, or both. Each host  has  one  official  name  (the
     first name in the database entry) and optionally one or more
     nicknames. Official hostnames or nicknames may be  given  as
     hostname.

     If the name of the file from which rsh is executed  is  any-
     thing  other  than  rsh, rsh takes this name as its hostname
     argument. This allows you to create a symbolic link  to  rsh
     in  the  name  of a host which, when executed, will invoke a
     remote shell on that host. By creating a directory and popu-
     lating  it with symbolic links in the names of commonly used
     hosts, then including the directory in your  shell's  search
     path, you can run rsh by typing hostname to your shell.

     If rsh is invoked with the basename remsh,  rsh  will  check
     for  the  existence of the file /usr/bin/remsh. If this file
     exists, rsh will behave as if remsh is an alias for rsh.  If
     /usr/bin/remsh  does  not exist, rsh will behave as if remsh
     is a host name.

     Each remote machine may have a file  named  /etc/hosts.equiv
     containing  a list of trusted hostnames with which it shares
     usernames. Users with the same username on  both  the  local
     and  remote  machine may run rsh from the machines listed in
     the remote machine's /etc/hosts file. Individual  users  may
     set  up  a  similar  private  equivalence list with the file
     .rhosts in their home directories. Each line  in  this  file
     contains two names: a hostname and a username separated by a
     space. The entry permits the  user  named  username  who  is
     logged into hostname to use rsh to access the remote machine
     as the remote user. If the name of the  local  host  is  not
     found  in  the  /etc/hosts.equiv file on the remote machine,
     and the local username and hostname are  not  found  in  the
     remote  user's  .rhosts file, then the access is denied. The
     hostnames listed in the /etc/hosts.equiv and  .rhosts  files
     must be the official hostnames listed in the hosts database;
     nicknames may not be used in either of these files.

     You cannot log in using rsh as a trusted user from a trusted
     hostname if the trusted user account is locked.

     rsh will not prompt for a password if access  is  denied  on
     the remote machine unless the command argument is omitted.


EXAMPLES

     Example 1: Using rsh to append files

     The following command:

     example% rsh lizard cat lizard.file >> example.file

     appends the remote file lizard.file from the machine  called
     lizard to the file called example.file on the machine called
     example, while the command:

     example% rsh lizard cat lizard.file ">>" lizard.file2

     appends the file lizard.file on the machine called lizard to
     the  file  lizard.file2  which  also  resides on the machine
     called lizard.


EXIT STATUS

     The following exit values are returned:

     0     Successful completion.

     1     An error occurred.


FILES

     /etc/hosts
           Internet host table

     /etc/hosts.equiv
           trusted remote hosts and users

     /etc/passwd
           system password file


ATTRIBUTES

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

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWrcmdc                   |
    |_____________________________|_____________________________|
    | CSI                         | enabled                     |
    |_____________________________|_____________________________|


SEE ALSO

     on(1), rlogin(1), telnet(1), vi(1), in.named(1M),  hosts(4),
     hosts.equiv(4),   ipnodes(4),  attributes(5),  largefile(5),
     ip6(7P)


NOTES

     When a system is listed in hosts.equiv, its security must be
     as  good  as  local  security. One insecure system listed in
     hosts.equiv can compromise the security of the  entire  sys-
     tem.

     You cannot run an interactive command (such as  vi(1)).  Use
     rlogin if you wish to do this.

     Stop signals stop the local rsh process only. This is  argu-
     ably  wrong,  but currently hard to fix for reasons too com-
     plicated to explain here.

     The current local environment is not passed  to  the  remote
     shell.

     Sometimes the -n option is needed for reasons that are  less
     than obvious. For example, the command:

     example% rsh somehost dd if=/dev/nrmt0 bs=20b | tar xvpBf -

     will put your shell into a strange  state.  Evidently,  what
     happens  is  that the tar terminates before the rsh. The rsh
     then tries to write into the ``broken pipe'' and, instead of
     terminating  neatly, proceeds to compete with your shell for
     its standard input. Invoking rsh with the -n  option  avoids
     such incidents.

     This bug occurs only when rsh is at the beginning of a pipe-
     line  and  is not reading standard input.  Do not use the -n
     if rsh actually needs to read standard input.  For example:

     example% tar cf - . | rsh sundial dd of=/dev/rmt0 obs=20b

     does not produce the bug. If you were to use  the  -n  in  a
     case  like  this,  rsh would incorrectly read from /dev/null
     instead of from the pipe.


Man(1) output converted with man2html