GNU/Linux >> Tutoriales Linux >  >> Linux

Una guía práctica para el comando chroot en Linux

A veces, es posible que necesite aislar un proceso de otros procesos que se ejecutan en su sistema. Podemos hacer esto con el uso del comando chroot en Linux.

En este tutorial, le mostraremos qué es el comando chroot y cómo puede usarlo para crear un chroot jail y atrapar a un usuario o grupo en un entorno aislado.

Comprender el comando chroot en Linux

El comando chroot es esencial en los sistemas Linux. Le ayuda a cambiar el directorio raíz de un proceso junto con sus procesos secundarios. Cuando creamos un directorio raíz falso para un usuario o grupo, pierde acceso al directorio raíz verdadero.

Por lo tanto, el usuario o grupo ahora está aislado del resto de nuestro sistema. Esto puede tener muchos usos, como los siguientes:

  • Cree un entorno de prueba para el desarrollo y las pruebas de software.
  • Inicie la reinstalación de los archivos del gestor de arranque en su sistema
  • Ejecutar software que puede estar decrepitado
  • Mejore la seguridad mediante un mecanismo de delimitación

El comando chroot esencialmente crea un entorno virtual. Su función es similar a una máquina virtual, pero no requiere que dedique recursos dedicados para la cárcel chroot.

El entorno virtual comparte todo el núcleo con el sistema host.

Sintaxis del Comando chroot

El comando chroot en Linux tiene la siguiente sintaxis.

chroot [-OPTION] [PATH FOR NEW ROOT] [PATH FOR SERVER]

El único parámetro necesario para ejecutar un comando chroot es la ruta del nuevo directorio raíz. Sin embargo, puede usar las opciones disponibles en el comando chroot para lograr los resultados deseados.

Estas son las opciones a su disposición cuando usa el comando chroot en Linux.

  • –userspec=USUARIO[:GRUPO] – Se usa para definir el usuario o el grupo en el que deseamos usar el comando chroot. Podemos especificar el grupo o usuario que deseamos utilizar por nombre o ID
  • –groups=G_List– Usado para especificar grupos suplementarios que deseamos usar como G1, G2… Gn
  • — ayuda – Le muestra una pantalla de ayuda y sale
  • –versión– Muestra los datos de la versión y sale

Crear una cárcel de comandos chroot

Ahora que entendemos el comando chroot y su sintaxis, es hora de usarlo. Para mostrarle cómo se hace, crearemos una cárcel chroot.

Un chroot jail es un entorno virtual creado al cambiar el directorio raíz de un usuario o grupo a un nuevo directorio. Este nuevo directorio sirve como directorio raíz falso para nuestro chroot jail.

Repasemos los pasos que debe seguir para usar el comando chroot en Linux para crear una cárcel chroot.

1. Crear un Directorio

Primero, comenzaremos creando un directorio raíz falso en /home/chroot_jail usando el comando mkdir.

mkdir $home/chroot_jail

Esto creará un directorio en la dirección dada que usaremos para nuestro chroot jail. Sin embargo, antes de permitir que el comando chroot haga su trabajo, debemos agregar los archivos necesarios a nuestro nuevo directorio.

2. Agregar directorios raíz requeridos

Comenzaremos creando /bin, /lib y /lib64 en nuestro directorio jail. El comando para crear estos directorios se proporciona a continuación.

mkdir -p $home/chroot_jail/{bin,lib,lib64}

Como puede notar, los directorios que estamos creando dentro de nuestro entorno virtual se especifican entre llaves ('{}').

Ahora, usaremos el comando cd para hacer de chroot_jail nuestro nuevo directorio raíz.

cd $home/chroot_jail

3. Mover los archivos binarios de comandos permitidos

Estamos creando un entorno Linux minimalista para este ejemplo. Usemos los comandos bash, ls, rm y touch para ser parte de la funcionalidad de nuestro entorno virtual.

Copie los archivos binarios de nuestro directorio raíz /bin al directorio /bin de nuestro chroot_jail. Lo hacemos usando el comando cp con la etiqueta -v (verbose) para que podamos ver lo que se está copiando en el momento dado.

cp -v /bin/{bash,touch,ls,rm} $home/chroot_jail

Como puede ver, los binarios que deseamos copiar se mencionan entre llaves. Los archivos de los binarios proporcionados ahora se han copiado en nuestro nuevo directorio chroot jail.

4. Resolución de dependencias de comandos

Pero estos binarios tendrán dependencias. Las dependencias para bash se pueden encontrar usando el comando ldd.

ldd /bin/bash

Ahora usaremos el comando cp para copiar cuidadosamente los directorios a nuestro chroot jail uno por uno. Debemos asegurarnos de copiar todas las bibliotecas de dependencia, de lo contrario, nuestro chroot jail no funcionará correctamente. Reemplace la parte con los directorios separados por comas.

cp -v {<List dependencies here>} $home/chroot_jail/lib64

Repetiremos estos pasos para todos los comandos que queramos permitir dentro del chroot jail. Busque las bibliotecas de dependencia y cópielas en el directorio chroot_jail.

5. Cambiar al nuevo directorio raíz

Ahora, todo lo que nos queda por hacer es cambiar el directorio raíz de nuestro chroot jail al nuevo directorio falso que acabamos de crear.

Para cambiar el directorio y especificar que bash se ejecute como la aplicación que ejecutamos como shell para nuestro entorno virtualizado, usamos el siguiente comando.

sudo chroot $home/chroot_jail/bin/bash

Es posible que se le solicite que ingrese su contraseña de usuario para continuar. En ese caso, introduzca su contraseña de usuario y se ejecutará el comando.

Si ha seguido todos los pasos correctamente, debería esperar ver un resultado similar al siguiente en su pantalla.

Como puede ver en la captura de pantalla, la versión 4.4 de bash ahora se está ejecutando como shell para nuestro chroot jail.

Ahora, nuestro entorno Linux virtual minimalista se ha creado y está listo para usar. Podemos interactuar con el entorno virtual usando bash como un sistema Linux normal.

Conclusión

El comando chroot en Linux es un comando simple pero efectivo en el conjunto de herramientas de un usuario de Linux. Su capacidad para crear un entorno virtualizado, sin necesidad de ningún software de monitorización como vemos con las máquinas virtuales, lo convierte en una alternativa ligera para este uso.

Este tutorial tuvo como objetivo ayudarlo a comprender qué es chroot y luego mostrarle cómo construir una cárcel chroot simple. Si tiene alguna consulta, comentario o sugerencia, no dude en comunicarse con nosotros en los comentarios a continuación.


Linux
  1. Una guía de la terminal de Linux para principiantes

  2. 8 consejos para la línea de comandos de Linux

  3. Domina el comando ls de Linux

  4. 8 ejemplos prácticos del comando Linux Xargs para principiantes

  5. 5 ejemplos prácticos del comando dd en Linux

12 ejemplos prácticos de In Command en Linux

25 Comando mv práctico en Linux para usuarios cotidianos

Los 50 Ejemplos Prácticos del Comando SED en Linux

5 ejemplos prácticos del comando de lectura en Linux

El comando apt:una guía práctica de uso

Comandos prácticos de Linux y Unix Tee para el administrador de Linux