- Chroot
-
chroot
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 BSD 4.2 fuera publicado) 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 ejecutar un programa que provoca desconfianza, 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 ejecutarse 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.
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. Esto puede prevenir algunas formas de ligado corrupto que surgen cuando los desarrolladores construyen proyectos con diferentes bibliotecas instaladas.
- Compatibilidad
- El software heredado o que usa una diferente interfaz binaria de aplicación algunas veces debe de ejecutarse en un chroot porque las bibliotecas que lo soportan o los archivos de datos podrían, de otra forma, entrar en conflicto de nombres o enlaces con los del sistema.
Enlaces externos
- Que es y como funciona chroot (español)
Categorías: Software para Linux | Software para Unix -
Wikimedia foundation. 2010.