rbash representa el shell bash restringido. En UNIX, como operar cuando se crea un usuario, se asigna un shell predeterminado (/bin/bash). Entonces, un usuario puede moverse a los directorios de cualquiera, para evitar esta situación, podemos asignar el shell restringido a un usuario, el shell restringido es como un entorno similar a una cárcel o un entorno chroot.
¿Por qué rbash?
Si bash se inicia con el nombre rbash, o se proporciona la opción -r en la invocación, el shell se restringe. Un shell restringido se utiliza para configurar un entorno más controlado que el shell estándar. Se comporta de manera idéntica a bash con la excepción de que lo siguiente no está permitido o no se realiza:
- cambiar directorios con cd
- establecer o desactivar los valores de SHELL, PATH, ENV o BASH_ENV
- especificar nombres de comandos que contengan /
- especificar un nombre de archivo que contenga / como argumento para el comando integrado
- especificar un nombre de archivo que contenga una barra oblicua como argumento para la opción -p del comando integrado hash
- importar definiciones de funciones desde el entorno de shell al inicio
- analizar el valor de SHELLOPTS desde el entorno de shell al inicio
- redirigir la salida utilizando los operadores de redirección>,>|, <>,>&, &> y>>
- usando el comando integrado exec para reemplazar el shell con otro comando
- agregar o eliminar comandos incorporados con las opciones -f y -d para habilitar el comando incorporado
- usando el comando enable builtin para habilitar las funciones integradas de shell deshabilitadas
- especificando la opción -p en el comando incorporado.
- desactivar el modo restringido con set +r o set +o restringido.
Cómo configurar shell restringido
Establezca el entorno que desee para un usuario en particular y puede colocar el archivo de inicio:$HOME/.bash_profile, como se muestra a continuación:
# .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH bash -r
Ahora inicie sesión con el usuario e intente cambiar los directorios.
$ cd /etc/ bash: cd: restricted $ cd /tmp/ bash: cd: restricted
Para configurar Shell restringido para todos los usuarios, cree un enlace simbólico de /bin/bash a /bin/rbash:
# cd /bin # ln -s bash rbash