Restricted shells can be invoked in any of the following ways:
rksh
Korn shellksh -r
set -r
/usr/lib/rsh
Bourne shellset -r
Restricted shells can also be set up by supplying the full pathname to rksh or rsh in the shell field of /etc/passwd or by using them as the value for the SHELL variable.
Restricted shells act the same as their nonrestricted counterparts, except that the following are prohibited:
Changing directory (i.e., using cd).
Setting the PATH variable. rksh also prohibits setting ENV and SHELL.
Specifying a /
for command names or pathnames.
Redirecting output (i.e., using >
and >>
). ksh also prohibits the use of <>
.
Adding new built-in commands (ksh93).
Shell scripts can still be run, since in that case the restricted shell calls ksh or sh to run the script. This includes the /etc/profile, $HOME/.profile, and $ENV files.
Restricted shells are not used much in practice, as they are difficult to set up correctly.