¿Por qué necesito usar chroot?

13

Esta pregunta chroot-jail-what-is-it-and-how-do-i-use-it se refiere a qué es y cómo usar chroot.

Lo que no entiendo es por qué necesito usar chroot. Entiendo lo que hace, pero no puedo pensar en un caso en el que necesito usarlo, dado que no es un mecanismo de seguridad o una caja de arena, ya que la respuesta señala "no deberías usarlo chrootcomo seguridad medida para evitar que un programa modifique archivos fuera de su sistema de archivos simulado ".

Específicamente, ¿por qué un determinado proceso necesita asignar un subdirectorio como el sistema de archivos raíz?

Alexandru Irimiea
fuente
tener más distribuciones en un sistema de archivos.
Ipor Sircer
¿Qué significa eso?
Alexandru Irimiea
1
Si bien es posible que no evite que un hacker determinado salga de la cárcel, lo hace más difícil y casi seguramente evitará accesos accidentales .
Barmar
si desea crear un nuevo sistema operativo desde cero, esto puede usarse para configurar un entorno nuevo que sea independiente del sistema de archivos del host. eche un vistazo al proyecto LFS (Linux desde cero)
chenchuk

Respuestas:

13

Hay muchas razones para usar un entorno chrooteado, puede usarlo para mantener diferentes versiones de un programa, puede usarlo para simular un entorno específico con el fin de probar algunas características, para crear imágenes de un sistema diferente de su principal uno, etc.

Wikipedia puede darle más información sobre las cárceles chroot y sus usos.

Desde allí:

Pruebas y desarrollo : se puede configurar un entorno de prueba en el chroot para el software que de otro modo sería demasiado arriesgado para implementar en un sistema de producción.

Control de dependencia : el software se puede desarrollar, construir y probar en un chroot poblado solo con sus dependencias esperadas. Esto puede evitar algunos tipos de desvío de enlaces que pueden resultar de que los desarrolladores creen proyectos con diferentes conjuntos de bibliotecas de programas instalados.

Compatibilidad : el software heredado o el software que utiliza un ABI diferente a veces debe ejecutarse en un chroot porque sus bibliotecas o archivos de datos compatibles pueden chocar en nombre o vinculación con los del sistema host.

Recuperación : en caso de que un sistema se vuelva no arrancable, se puede usar un chroot para regresar al entorno dañado después del arranque desde un sistema de archivos raíz alternativo (como un medio de instalación o un Live CD).

Separación de privilegios : los programas pueden llevar descriptores de archivo abiertos (para archivos, tuberías y conexiones de red) al chroot, lo que puede simplificar el diseño de la cárcel al hacer innecesario dejar archivos de trabajo dentro del directorio chroot. Esto también simplifica la disposición común de ejecutar las partes potencialmente vulnerables de un programa privilegiado en una caja de arena, para contener preventivamente una violación de seguridad. Tenga en cuenta que chroot no es necesariamente suficiente para contener un proceso con privilegios de root.

Alberto Méndez
fuente
3
Básicamente, si está ejecutando un conjunto de programas que desean leer / escribir cosas específicas en su lugar a partir de /, pero no desea estropear su sistema existente, un chroot es útil incluso si se ejecuta como root (que es cuando no tiene sentido desde una perspectiva de seguridad). Funciona como un "redirector" que siempre y cuando confíes en el programa es útil.
LawrenceC