El comando chroot en Linux – Introducción para principiantes

En este artículo discutimos la función y el uso de la Comando chroot en Linux con ejemplos

Tabla de contenido

¿Qué es el comando chroot?

El comando chroot cambia el directorio raíz aparente del proceso actual, así como sus procesos secundarios. En un sistema basado en Unix, la raíz se refiere al directorio base (/). Chroot crea un entorno raíz falso dentro del cual se ejecuta el proceso. Los procesos que se ejecutan en dicho entorno no pueden acceder a archivos y comandos fuera de ese entorno o podemos decir que “el proceso está encarcelado dentro de ese entorno”. Por lo tanto, el entorno creado también se llama el “cárcel chroot” .

¿Dónde se usa el comando chroot?

El entorno choort puede ser particularmente útil para los siguientes propósitos:

  • Recuperando su sistema de archivos y reinstalando el gestor de arranque: Podemos usar el comando chroot para montar un sistema de archivos dañado en un punto de montaje en un CD en vivo. Si lo hace, nos permite trabajar en el sistema de daños e intentar repararlo como si estuviera montado normalmente en la raíz (/).
  • Pruebas de software: Los entornos de prueba proporcionan una buena manera de ejecutar y probar software nuevo que, de otro modo, podría haber causado problemas en todo el sistema. En general, los contenedores se utilizan para este tipo de tareas, pero el entorno chroot puede ser una opción fácil para probar pequeños scripts sin dejar un rasguño en su sistema principal.
  • Software en ejecución con dependencias incompatibles: Se pueden ejecutar dos software con dependencias en conflicto manteniendo una aplicación y sus dependencias en una carpeta chroot separada.

¿Cómo usar el comando chroot en Linux?

Con la teoría aclarada, aprendamos cómo usar el comando chroot.

Sintaxis de chroot con argumentos:

                      
chroot [OPTION] NEWROOT [COMMAND [ARG]...]

                    

Ejecuta el COMANDO con el directorio raíz establecido en NEWROOT.

Las OPCIONES disponibles para chroot son:

userspec=USUARIO:GRUPO Para especificar el usuario y el grupo (ID o nombre) a utilizar
grupos=G_LIST Para especificar grupos suplementarios como g1,g2,..,gN
saltar-chdir No cambia el directorio de trabajo a ‘/’

Si no se especifica ningún COMANDO, se ejecuta el comando predeterminado “$SHELL” -i.

Sintaxis de chroot con opciones:

                      
chroot OPTION

                    

Las OPCIONES son:

ayuda Para mostrar ayuda y salir.
versión Imprime la información de la versión y sale.

Ejemplo de uso del comando chroot

Para una demostración del comando chroot, crearemos un entorno chroot y ejecutaremos el bash caparazón en su interior.

1. Cree el directorio chroot. Llamémoslo fake_root.

                      
mkdir $HOME/fake_root

                    

2. Cree los directorios requeridos dentro de fake_root usando el comando mkdir. El contenedor generalmente contiene los binarios y lib,lib64 contiene conjuntamente las bibliotecas requeridas por estos programas.

                      
mkdir -p $HOME/fake_root/{bin,lib,lib64} 

                    

3. Copie los archivos binarios necesarios desde la raíz al entorno chroot. A veces también es una buena opción incluir editores de texto como vim para pequeños propósitos de edición.

                      
cp /bin/{bash,ls} $HOME/fake_root/bin/

                    

4. Estos archivos binarios tienen dependencias que se almacenan dentro de lib y lib64. También necesitamos copiar estas dependencias dentro del entorno chroot si queremos que los binarios funcionen correctamente.

                      
ldd /bin/{bash,ls}

                    
Fig 1: Dependencia de ls y bash en Ubuntu

5. Copie las dependencias al entorno chroot usando el comando cp

                      
cp --parent {/lib/x86_64-linux-gnu/libtinfo.so.6,/lib/x86_64-linux-gnu/libdl.so.2,/lib/x86_64-linux-gnu/libc.so.6,/lib64/ld-linux-x86-64.so.2,/lib/x86_64-linux-gnu/libpthread.so.0,/lib/x86_64-linux-gnu/libselinux.so.1,/lib/x86_64-linux-gnu/libpcre2-8.so.0,} ~/fake_root/

                    

6. Después de haber copiado con éxito las dependencias, ejecute el comando chroot

                      
sudo chroot $HOME/jail /bin/bash

                    
Figura 2: Enter el entorno chroot

Después de activar el entorno chroot, puede probarlo comprobando si puede acceder a los archivos fuera de fake_root sin escalar el privilegios de root .

Conclusión

Esto nos lleva al final de este artículo sobre el comando chroot. Estén atentos para obtener más información sobre dichos comandos de Linux en el futuro.

Related Posts