chroot
De Wikipedia, la enciclopedia libre
Esta página está siendo traducida del idioma inglés a partir del artículo Chroot, razón por la cual puede haber lagunas de contenidos, errores sintácticos o escritos sin traducir. Puedes colaborar con Wikipedia continuando con la traducción desde el artículo original |
Un chroot en un sistema operativo Unix es una operación que cambia el directorio raíz, afectando solamente al proceso actual y a sus procesos hijos. "chroot" se refiere a la llamada de sistema chroot(2) o al programa ejecutable chroot(8).
El sistema chroot fue introducido por Bill Joy el 18 de marzo de 1982 (17 meses antes de que 4.2BSD fuera liberado) para probar su sistema de instalación y construcción. No fue pensado como un mecanismo de seguridad.
Un programa que se ejecuta en un entorno de directorio raíz cambiado, no puede acceder a archivos fuera de ese directorio. A menudo es malentendido como un dispositivo de seguridad, usado en un vago intento de crear una zona segura para correr un programa que provoca desconfianza, o que no está probado o que de algún modo es peligroso, como si chroot fuera un mecanismo real de jaula funcional.
En la práctica, hacer un chroot es complicado ya que los programas esperan encontrar en lugares predeterminados el espacio de almacenamiento, archivos de configuración, sus bibliotecas de enlace dinámico; entonces para habilitar a los programas que puedan correr dentro de un directorio chroot, se debe incluir también un conjunto mínimo de estos archivos, ya que el programa no puede acceder fuera de la jaula.
Los programas tienen permitido llevarse descriptores de archivos abiertos (sean de archivos físicos, de tuberías, o de conexiones de red) dentro del chroot, lo cual puede simplificar el diseño de la jaula haciendo innecesario dejar archivos funcionales dentro del directorio chroot. Esto también funciona como un sistema de capacidades simple, en el cual, al programa se le otorga acceso explícito a los recursos externos del chroot basado en los descriptores que puede llevar a su interior.
[editar] Usos
Se puede usar un ambiente chroot para crear y mantener una copia virtual separada del sistema operativo. Esto puede ser útil para:
-
- Pruebas y desarrollo
- Se puede crear un área de prueba con chroot para el software que de otra forma sería muy arriesgado de usar en un sistema de producción.
- Control de dependencia
- Los programas pueden ser desarrollados, construidos y puestos a prueba en un chroot solo con las dependencias esperadas. Ésto puede prevenir algunas formas de ligado corrupto que surgen cuando los desarrolladores construyen proyectos con diferentes librerías instaladas.
- Compatibilidad
- El software heredado o que usa una diferent interfaz binaria de aplicación algunas veces debe de correrse en un chroot porque las librerías que lo soportan o los archivos de datos podrían de otra forma entrar en conflicto en nombre o ligado con los del sistema.