6.10 The Restricted Shell ========================= 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: * Changing directories with the `cd' builtin. * Setting or unsetting the values of the `SHELL', `PATH', `ENV', or `BASH_ENV' variables. * Specifying command names containing slashes. * Specifying a filename containing a slash as an argument to the `.' builtin command. * Specifying a filename containing a slash as an argument to the `-p' option to the `hash' builtin command. * Importing function definitions from the shell environment at startup. * Parsing the value of `SHELLOPTS' from the shell environment at startup. * Redirecting output using the `>', `>|', `<>', `>&', `&>', and `>>' redirection operators. * Using the `exec' builtin to replace the shell with another command. * Adding or deleting builtin commands with the `-f' and `-d' options to the `enable' builtin. * Using the `enable' builtin command to enable disabled shell builtins. * Specifying the `-p' option to the `command' builtin. * Turning off restricted mode with `set +r' or `set +o restricted'. These restrictions are enforced after any startup files are read. When a command that is found to be a shell script is executed (*note Shell Scripts::), `rbash' turns off any restrictions in the shell spawned to execute the script.