El comando chroot es una herramienta clásica y poderosa en GNU/Linux que permite ejecutar procesos dentro de un directorio tratado como si fuera la raíz (/) del sistema. Aunque suele pasar desapercibido para muchos administradores, es una utilidad imprescindible para tareas de rescate, reparación de sistemas, pruebas controladas o aislamientos muy simples sin recurrir a contenedores.
¿Para qué se usa chroot?
chroot (change root) se utiliza principalmente para:
- 🔧 Recuperar sistemas dañados desde un entorno live, montando la partición afectada y accediendo a ella como si fuese el sistema real.
- 🛠️ Reinstalar bootloaders (como GRUB) en un sistema que no arranca.
- 🔐 Confinar procesos en un espacio controlado (sandbox muy básico).
- 🧪 Probar software dentro de un entorno aislado.
- 📦 Construir entornos mínimos (por ejemplo, durante la creación de imágenes o sistemas rootfs).
- 👤 Simular entornos de login o shells restringidos para usuarios.
A diferencia de tecnologías como LXC, Docker o systemd-nspawn, chroot no aísla recursos del kernel como red o procesos. Es una jaula mínima, pero extremadamente útil.
Sintaxis básica
La sintaxis principal es:
chroot [opciones] <nuevo_root> [comando] [args]Donde:
<nuevo_root>→ Directorio que se tratará como nueva raíz/.
Las opciones más usadas:
[comando]→ Programa que quieres ejecutar dentro del nuevo entorno (por defecto/bin/sh).[args]→ Argumentos opcionales para el comando.
| Opción | Descripción |
|---|---|
--userspec=<usuario:grupo> |
Ejecuta el comando con un usuario y grupo concretos. |
--groups=<g1,g2> |
Define grupos adicionales. |
--skip-chdir |
No cambia al directorio / dentro del nuevo root. |
--help |
Muestra ayuda del comando. |
Ejemplos prácticos
A continuación os dejamos algunos ejemplos interesantes del comando.
Entrar a un sistema desde un LiveCD
Con esto ya estás "dentro" del sistema como si hubieras iniciado desde él.
mount /dev/sda2 /mnt
mount -t proc /proc /mnt/proc
mount --rbind /sys /mnt/sys
mount --rbind /dev /mnt/dev
chroot /mntEjecutar un comando concreto dentro del chroot
chroot /mnt /bin/basho directamente:
chroot /mnt ls -la /rootCrear un entorno mínimo y entrar en él
Crear estructura:
mkdir -p /home/t3rr0rz0n3/jail/{bin,lib,lib64}
cp /bin/bash /home/t3rr0rz0n3/jail/bin/
Copiar librerías necesarias:
ldd /bin/bashCopiarlas a mano (ejemplo):
cp /lib/x86_64-linux-gnu/libtinfo.so.6 /home/t3rr0rz0n3/jail/lib/
cp /lib/x86_64-linux-gnu/libc.so.6 /home/t3rr0rz0n3/jail/lib/
Entrar en el chroot:
chroot /home/t3rr0rz0n3/jail /bin/bash
Conclusión
chroot es una de esas herramientas clásicas de GNU/Linux que, pese a su simplicidad, sigue siendo fundamental para tareas de administración, recuperación y creación de entornos controlados. Su capacidad para "trasladar" procesos a un nuevo root lo convierte en un aliado imprescindible en situaciones de emergencia, en la reparación de sistemas y en flujos de trabajo donde se requiere un entorno limpio y aislado sin recurrir a contenedores complejos. Dominar su uso permite a cualquier sysadmin ampliar su caja de herramientas y entender mejor cómo funciona la jerarquía del sistema y sus dependencias.
¿Buscas otro comando?
¡Revisa nuestro "Diccionario de comandos para GNU/Linux"!
Diccionario de comandos para GNU/LinuxMás sobre ./voidNull
- 📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "De la A a la Z: Los comandos de GNU/Linux"
- 💪 ¡Forma parte de la Comunidad de ./voidNull!
- 🤖 Disfruta de todos nuestros Cursos sobre Ansible, Proxmox, Home Assistant entre otros.
- 📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra Newsletter mensual.
Comentarios