Opening bash shell in restricted mode
A restricted shell is used to set up an environment more controlled than the standard shell.Bash shell can be opened in restricted mode. If bash shell is started with the name
rbash, or the
-r option is supplied at invocation, it is opened as a restricted shell.
The following commands will open a bash shell in restricted mode.
$ bash --restricted
$ bash -r
Characteristics of a restricted mode bash shell
A restricted shell behaves identically to bash with the following exceptions.
- You can’t change directories using
- Set or unset environment variables. Eg: SHELL, PATH, ENV etc.
- Specify command names containing slashes.
- Specify a filename containing a slash as an argument to the
.(dot) built-in command.
- Specifying a filename containing a slash as an argument to the -p option to the
- 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
execbuilt-in to replace the shell with another command.
- Adding or deleting built-in commands with the -f and -d options to the
- Using the
enablebuilt-in command to enable disabled shell built-ins.
- Specifying the -p option to the
- 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,
rbash turns off any restrictions in the shell spawned to execute the script.