## 4.8. Restricted Shells

Restricted shells can be invoked in any of the following ways:

>     rksh		Korn shell
>     ksh -r
>     set -r

>     /usr/lib/rsh	Bourne shell
>     set -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.

Copyright © 2003 O'Reilly & Associates. All rights reserved.