¿Qué es / bin / rbash?


14

Estaba aprendiendo sobre los programas de shell comunes .

Cuando corro cat /etc/shells, muestra:

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

Que hay /bin/rbashaqui ¿Se usa en secuencias de comandos?


66
¿Qué parte de man rbashno está clara?
Stig Hemmer

1
@StigHemmer. No lo hice man rbashTambién me da información detallada. Gracias.
margarita

3
Leer la página del manual siempre debe ser su primer intento de comprender una herramienta. También debe leerlo en la máquina donde aparece para asegurarse de que está leyendo sobre la versión correcta.

Respuestas:


16

De wikipedia

El shell restringido es un shell de Unix que restringe algunas de las capacidades disponibles para una sesión de usuario interactiva, o para un script de shell, que se ejecuta dentro de él. Su objetivo es proporcionar una capa adicional de seguridad, pero es insuficiente para permitir la ejecución de software completamente no confiable. Una operación en modo restringido se encuentra en el shell Bourne original [1] y su posterior contraparte bash, [2] y en el shell Korn. [3] En algunos casos, se utiliza un shell restringido junto con una cárcel chroot, en un intento adicional de limitar el acceso al sistema en su conjunto.

Consulte la respuesta de Soren A para conocer las limitaciones que se aplican a los depósitos restringidos.

Puedes correr bashen modo restringido

bash -r
bash --restricted

En mi sistema:

$ file /bin/rbash
/bin/rbash: symbolic link to bash

Entonces si corro /bin/rbash, estoy corriendobash

PERO

Es suficiente crear un enlace llamado rbash que apunte directamente a bash. Aunque esto invoca a bash directamente, sin las opciones -ro --restricted, bash reconoce que se invocó a través de rbash y aparece como un shell restringido.

Como puedes probar fácilmente:

zanna@monster:~$ rbash
zanna@monster:~$ cd playground
rbash: cd: restricted

1
Parece mucha restricción. Entonces, ¿cómo es útil? ¿Se usa en secuencias de comandos?
margarita

3
Podría establecerse como shell predeterminado para un usuario que desea capturar en un directorio en particular, por ejemplo @passa
Zanna

2
@passa que no tiene secuencias de comandos, y los shells restringidos son singularmente inútiles para las secuencias de comandos. Como usted sabe, o puede determinar, qué acciones se realizan en un script, no tiene sentido usar un shell restringido para el script.
muru

@muru De acuerdo. Entonces, esto podría usarse con el propósito que dijo zanna en su comentario.
margarita

1
Esto es útil para un administrador del sistema porque puede evitar que otros usuarios realicen tareas peligrosas. Es algo menos útil para el usuario final.

17

rbash es una versión restringida (capacidades reducidas) de bash. Vea este artículo: https://en.wikipedia.org/wiki/Restricted_shell

Del artículo:

Las siguientes operaciones no están permitidas en un shell restringido:

changing directory
specifying absolute pathnames or names containing a slash
setting the PATH or SHELL variable
redirection of output

bash agrega más restricciones, que incluyen:

limitations on function definitions
limitations on the use of slash-ed filenames in bash builtins

Las restricciones en el shell restringido de Korn son muy similares a las del shell Bourne restringido.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.