If Bash is started with the name
rbash, or the --restricted or -r option is supplied at invocation, the shell becomes restricted. A restricted shell is used to set up an environment more controlled than the standard shell. A restricted shell behaves identically to
bash with the exception that the following are disallowed or not performed:
SHELLOPTSfrom the shell environment at startup.
execbuiltin to replace the shell with another command.
enablebuiltin command to enable disabled shell builtins.
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed (see Shell Scripts),
rbash turns off any restrictions in the shell spawned to execute the script.
The restricted shell mode is only one component of a useful restricted environment. It should be accompanied by setting
PATH to a value that allows execution of only a few verified commands (commands that allow shell escapes are particularly vulnerable), leaving the user in a non-writable directory other than his home directory after login, not allowing the restricted shell to execute shell scripts, and cleaning the environment of variables that cause some commands to modify their behavior (e.g.,
Modern systems provide more secure ways to implement a restricted environment, such as
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.