|
|
If you omit command, instead of executing a single command, rsh logs you in on the remote host using rlogin(1tcp).
Shell metacharacters that are not quoted are interpreted on the local machine, while quoted metacharacters are interpreted on the remote machine. See the examples below.
Hostnames are given in the hosts data base, which may be contained in the /etc/hosts file, the Internet domain name data base, or both. Each host has one official name (the first name in the data base entry) and optionally one or more nicknames. Official host names 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. By creating a directory and populating 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.
Each remote machine may have a file named /etc/hosts.equiv containing a list of trusted host names with which it shares user names. Users with the same user name on both the local and remote machine may rsh from the machines listed in the remote machine's /etc/hosts file without supplying a password. 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. An entry in a remote user's .rhosts file permits the user named username who is logged into hostname to use rsh to access the remote machine as the remote user without supplying a password. If the name of the local host is not found in the /etc/hosts.equiv file on the remote machine, and the local user name and host name are not found in the remote user's .rhosts file, then the remote machine will prompt for a password. Host names listed in the /etc/hosts.equiv and .rhosts files must be the official host names listed in the hosts data base; nicknames may not be used in either of these files.
To counter security problems, the .rhosts file must be owned by either the remote user or by a privileged user.
rsh will not prompt for a password if access is denied on the remote machine unless the command argument is omitted.
The current local environment is not passed to the remote shell.
You cannot run an interactive command (such as vi(1)) using rsh. Use rlogin if you want to do so.
Sometimes the -n option is needed for reasons that are less than obvious.
For example, the command:
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 pipeline and
is not reading standard input.
Do not use the -n if rsh
actually needs to read standard input.
For 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.
Prior to Release 4, the rsh command invoked the restricted shell. This restricted shell command is /usr/lib/rsh and can be executed by using the full pathname.
Stop signals stop the local rsh process only; this is arguably wrong, but currently hard to fix for reasons too complicated to explain here.
appends the remote file lizard.file
from the machine called lizard
to the file called example.file on the local machine,
while the command:
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.