unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Page:
Section:
Apropos / Subsearch:
optional field

RSH(1C)                                                                RSH(1C)



NAME
       rsh - remote shell

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

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

AVAILABILITY
       This  command  is  available  with the Networking software installation
       option.  Refer to for information on how to install optional software.

DESCRIPTION
       rsh connects to the specified hostname and executes the specified  com-
       mand.   rsh  copies its standard input to the remote command, the stan-
       dard output of the remote command to its standard output, and the stan-
       dard  error  of  the  remote command to its standard error.  Interrupt,
       quit and terminate 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(1C).

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

       Hostnames are given in the hosts database, which may  be  contained  in
       the  /etc/hosts file, the Network Information Service (NIS) hosts data-
       base, the Internet domain name database, or  some  combination  of  the
       three.  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 anything 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.   The
       /usr/hosts directory is provided to be populated with symbolic links in
       the names of commonly used hosts.   By  including  /usr/hosts  in  your
       shell's search path, you can run rsh by typing hostname to your shell.

       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 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 per-
       mits 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.

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

OPTIONS
       -l username
              Use username as the remote username instead of your local  user-
              name.  In the absence of this option, the remote username is the
              same as your local username.

       -n     Redirect 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 example, if you are running rsh and
              start 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.

EXAMPLES
       The following command appends the  remote  file  lizard.file  from  the
       machine  called  lizard  to the file called example.file on the machine
       called example.

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

       This example appends the file lizard.file on the machine called  lizard
       to  the  file  another.lizard.file  which  also  resides on the machine
       called lizard.

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

FILES
       /etc/hosts
       /usr/hosts/*
       /etc/passwd

SEE ALSO
       rlogin(1C), vi(1), ypcat(1), hosts(5), named(8C), rshd(8C)

BUGS
       You cannot run an interactive command (such as vi(1));  use  rlogin  if
       you wish to do so.

       Stop  signals  stop the local rsh process only; this is arguably wrong,
       but currently hard to fix for reasons too complicated 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  obvi-
       ous.   For  example,  the  command below puts your shell into a strange
       state.

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

       Evidently, what happens is that the tar terminates before the rsh.  The
       rsh  then  tries to write into the "broken pipe" and, instead of termi-
       nating neatly, proceeds to compete with your  shell  for  its  standard
       input.  Invoking rsh with the -n option avoids such incidents.

       Note:  this  bug occurs only when rsh is at the beginning of a pipeline
       and is not reading standard input.  Do not use the -n if  rsh  actually
       needs  to read standard input.  For example, the following command does
       not produce the bug.

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

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

NOTES
       The  Network Information Service (NIS) was formerly known as Sun Yellow
       Pages (YP).  The functionality of the two remains the  same;  only  the
       name has changed.



                               17 December 1987                        RSH(1C)