Inicio > Gestión de paquetes y sistema > chroot

chroot: Cambiar el directorio raíz

El comando chroot cambia el directorio raíz del proceso actual al nuevo directorio raíz especificado. Esto es muy útil para probar software en un entorno aislado, recuperar un sistema dañado o ejecutar aplicaciones específicas en un entorno restringido.

Descripción general

chroot es la abreviatura de 'change root' (cambiar raíz) y es un comando que cambia el directorio raíz del proceso en ejecución actual. Al usar este comando, puede crear un entorno aislado donde el directorio especificado actúa como si fuera el directorio raíz principal del sistema. Este entorno se utiliza principalmente para la recuperación del sistema, el aislamiento de entornos de desarrollo y prueba, y el sandboxing para mejorar la seguridad.

Principales áreas de aplicación

  • Recuperación de sistemas dañados (por ejemplo, reinstalación del cargador de arranque, solución de problemas de paquetes)
  • Aislamiento de entornos de desarrollo y prueba (compilación/ejecución de software sin afectar el sistema host)
  • Sandboxing para mejorar la seguridad (restringir el acceso al sistema de archivos de aplicaciones específicas)
  • Compilación de paquetes para otras arquitecturas (configuración de entornos de compilación cruzada)

Opciones principales

El comando chroot toma el nuevo directorio raíz y el comando a ejecutar como argumentos, y puede controlar su comportamiento con algunas opciones adicionales.

Comportamiento básico y personalización de usuario

Información y ayuda

Comando generado:

Combina los comandos.

Descripción:

`chroot` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Explore las diversas formas de configurar un entorno aislado y ejecutar comandos usando chroot. Generalmente, se requieren privilegios de root para ejecutar el comando chroot.

Entrar en un entorno chroot básico

sudo chroot /mnt/my_root /bin/bash

Establece el directorio `/mnt/my_root` como la nueva raíz y ejecuta el shell `/bin/bash` dentro de ese entorno. Antes de ejecutar este ejemplo, el directorio `/mnt/my_root` debe existir y contener los archivos mínimos del sistema (por ejemplo, `/bin/bash`).

Ejecutar un comando específico dentro de chroot

sudo chroot /mnt/new_env ls -l /

Ejecuta el comando `ls -l /` dentro del nuevo directorio raíz `/mnt/new_env`. Este comando listará el contenido del directorio raíz dentro de `/mnt/new_env`.

Personalizar un entorno chroot

sudo chroot --userspec=testuser:testgroup /mnt/chroot_jail /bin/bash

Entra en el entorno `/mnt/chroot_jail` pero ejecuta el shell `/bin/bash` con los privilegios del usuario `testuser` y el grupo `testgroup`. Este usuario/grupo debe existir dentro del entorno chroot.

Consejos y precauciones

Consejos y puntos a tener en cuenta para usar el entorno chroot de manera efectiva y segura.

Puntos de montaje necesarios

Para que muchas utilidades del sistema funcionen correctamente dentro de un entorno chroot, es necesario montar sistemas de archivos virtuales específicos del sistema host dentro del entorno chroot.

  • /proc: Acceso a información de procesos y configuración del sistema
  • /sys: Acceso a información del kernel y hardware
  • /dev: Acceso a archivos de dispositivos (por ejemplo, terminales, discos)
  • /dev/pts: Soporte de terminales virtuales (necesario para usar el shell)

Bibliotecas y archivos ejecutables

Los comandos que desee ejecutar dentro del entorno chroot deben tener todos los archivos ejecutables y bibliotecas dinámicas (shared libraries) necesarios dentro de ese entorno. De lo contrario, puede encontrar errores como 'command not found' o 'No such file or directory'. Puede usar el comando `ldd` para verificar las bibliotecas necesarias.

Se requieren privilegios de root

El comando chroot modifica el directorio raíz del sistema, por lo que debe ejecutarse con privilegios de root (sudo).

Salir del entorno chroot

Puede volver al shell original de su sistema host escribiendo el comando `exit` en el shell que se ejecuta dentro del entorno chroot.

Precauciones de seguridad

chroot no es un mecanismo de aislamiento de seguridad perfecto. Existen varias formas en que un usuario con privilegios de root puede escapar del entorno chroot. Si necesita un aislamiento más robusto, considere tecnologías de contenedores (Docker, LXC) o máquinas virtuales.


Comandos de la misma categoría