Debian

Cómo usar chroot en Debian 10

Cómo usar chroot en Debian 10
En un entorno de prueba, a menudo necesitamos aislar ciertas aplicaciones para evitar que dañen o espíen el resto del sistema. Hay diferentes herramientas disponibles para hacer sandboxing de un programa y evitar que afecte al resto del sistema, como VirtualBox, VMware, Xen, KVM, etc. Sin embargo, solo para una o unas pocas aplicaciones, el sandboxing de un sistema operativo completo no parece práctico.

Para el sistema operativo Linux, hay una herramienta disponible, conocida como chroot, que proporciona una forma más fácil y rápida de convertir una aplicación en sandbox. Con chroot, puede instalar y probar cualquier aplicación sin afectar al resto del sistema.

Este artículo explicará cómo usar chroot en Debian 10 Buster, junto con algunos ejemplos. Para obtener una explicación, crearemos un entorno chroot para bash y algunos de los comandos, como los comandos "ls", "ip" y "pwd".

Que es chroot?

La herramienta chroot es un comando en Linux que cambia el directorio raíz de una aplicación a otro directorio. Los procesos que se ejecutan en este nuevo directorio raíz no pueden acceder a los archivos fuera de él. Por lo tanto, aísla las operaciones de las aplicaciones del resto del sistema.

¿Cómo funciona chroot??

Chroot funciona copiando la aplicación y todos sus ejecutables y dependencias dentro del directorio raíz alternativo. Luego ejecuta la aplicación desde dentro de este directorio raíz alternativo, lo que hace que la aplicación lo considere como el directorio raíz original. El directorio raíz es el directorio más alto en la jerarquía, y ninguna aplicación puede llegar más alto que este directorio, así es como chroot aísla la aplicación del resto del sistema.

Casos de uso

Sintaxis

La siguiente es la sintaxis básica del comando chroot:

$ chroot mando

Siga los pasos a continuación para usar el comando chroot en Debian para configurar un entorno chroot.

1. Crear un directorio raíz alternativo

Primero, cree un directorio raíz alternativo para usarlo en el entorno chroot.

$ sudo mkdir ~ / new_root

El comando anterior creará el new_root directorio bajo el Casa directorio, que se utilizará como directorio raíz en el entorno chroot.

2. Agregar directorios esenciales

Cree los directorios "bin", "lib" y "lib64" en el ~ / new_root directorio:

$ sudo mkdir -p ~ / new_root / bin, lib, lib64

3. Copiar archivos binarios del programa

Todo lo necesario para ejecutar una aplicación en el entorno chroot debe estar en el directorio raíz alternativo. En este artículo, crearemos un entorno chroot para bash y algunos comandos, incluidos los comandos "ls", "ip" y "pwd". Por lo tanto, copiaremos los binarios del /compartimiento directorio a la alternativa ~ / nueva_raíz / bin directorio. Para ubicar los binarios de los comandos, use el comando which:

$ que bash ls ip pwd

A continuación, copie los binarios de los comandos en el ~ / nueva_raíz / bin directorio.

$ sudo cp -v / bin / bash, ls, ip, pwd ~ / new_root / bin

4. Copiar dependencias del programa

También necesitaremos averiguar qué dependencias necesita nuestro programa. Primero, necesitaremos encontrar cuáles son esas dependencias, y luego las copiaremos a la ~ / directorio_root_nueva / lib.

Copiar dependencias para bash

Primero, averigüe las dependencias del programa bash:

$ ldd / bin / bash

Luego, copie estas dependencias en el ~ / nueva_raíz / lib directorio.

$ cp -v / lib / x86_64-linux-gnu / libtinfo.entonces.6, libdl.entonces.2, libc.entonces.6 ~ / raíz_nueva / lib

Para los archivos / lib64, cópielos al ~ / nueva_root / lib64 directorio.

$ cp -v / lib64 / ld-linux-x86-64.entonces.2 ~ / raíz_nueva / lib64

Copiar dependencias para el comando ls

Primero, averigüe las dependencias del comando ls:

$ ldd / bin / ls

Luego, copie estas dependencias en el ~ / nueva_raíz / lib directorio.

$ sudo cp -v / lib / x86_64-linux-gnu / libselinux.entonces.1, libc.entonces.6, libpcre.entonces.3,
libdl.entonces.2, libpthread.entonces.0 / lib64 / ld-linux-x86-64.entonces.2 ~ / raíz_nueva / lib

Para los archivos / lib64, cópielos en el ~ / nueva_root / lib64 directorio.

$ sudo cp -v / lib64 / ld-linux-x86-64.entonces.2 ~ / raíz_nueva / lib64

Copiar dependencias para el comando ip

Primero, averigüe las dependencias del comando ip:

$ ldd / bin / ip

Luego, copie estas dependencias en el ~ / nueva_raíz / lib directorio.

$ cp -v / lib / x86_64-linux
gnu / libselinux.entonces.1 libelf.entonces.1, libmnl.entonces.0, libcap.entonces.2, libdl.entonces.2, libc.entonces.6,
libpcre.entonces.3, libz.entonces.1, libpthread.entonces.0 ~ / nueva_raíz / lib

Para los archivos / lib64, cópielos al ~ / nueva_root / lib64 directorio.

$ sudo cp -v / lib64 / ld-linux-x86-64.entonces.2 ~ / raíz_nueva / lib64

Copiar dependencias para el comando pwd

Primero, averigüe las dependencias del comando pwd:

$ ldd / bin / pwd

Luego, copie estas dependencias en el ~ / nueva_raíz / lib directorio.

$ sudo cp -v / lib / x86_64-linux-gnu / libc.entonces.6 ~ / raíz_nueva / lib

Para los archivos / lib64, cópielos al ~ / nueva_root / lib64 directorio.

$ sudo cp -v / lib64 / ld-linux-x86-64.entonces.2 ~ / raíz_nueva / lib64

Para ver todos los directorios en el directorio raíz alternativo, use el siguiente comando:

$ ls -R

5. Cambiar al directorio raíz alternativo

Ahora, finalmente estamos preparados para cambiar a nuestro nuevo entorno chroot. Para cambiar el directorio raíz, ejecute el siguiente comando en el shell con privilegios de root:

$ sudo chroot ~ / new_root / bin / bash

Dónde ~ / new_root es nuestro directorio raíz alternativo y / bin / bash es la aplicación que hemos utilizado para configurar el entorno chroot.

Después de ejecutar el comando anterior, verá que el indicador de bash ha cambiado a bash-x.y que en nuestro caso es bash-5.0 (donde 5.0 es el número de versión de bash).

Nota: puede encontrar el siguiente error después de ejecutar el comando chroot, como hice yo:

Si ocurre este error, verifique que haya agregado todas las bibliotecas y ejecutables relacionados con el programa requerido al nuevo directorio raíz.

Después de ingresar al entorno chroot, solo podrá acceder al archivo dentro de él. Intente ejecutar los comandos que ha configurado para su entorno chroot, incluidos algunos comandos integrados. Puede encontrar los comandos integrados ejecutando el ayuda comando en el caparazón.

Puede ver que hemos probado los comandos "ls", "pw" e "ip", y todos tuvieron éxito. Si ejecutamos cualquier comando que no sean estos tres comandos y los comandos integrados, el comando fallará, ya que no lo hemos configurado para el entorno chroot. Como puede ver en la siguiente captura de pantalla, hemos intentado ejecutar los comandos "touch", "ping" y "clear", y todos fallaron.

6. Salir de chroot

Para salir del entorno chroot, use el Salida mando.

Conclusión

En este artículo, ha aprendido qué es chroot y cómo funciona en Linux. Este artículo le mostró paso a paso cómo usar chroot en Debian 10 Buster para crear un entorno chroot para bash y otros comandos. Ahora, debería sentirse cómodo usando el comando chroot para cambiar el directorio raíz de un proceso y sus subprocesos y aislarlos del resto del sistema.

5 mejores juegos de arcade para Linux
Hoy en día, las computadoras son máquinas serias que se usan para jugar. Si no puede obtener la nueva puntuación más alta, sabrá a qué me refiero. En ...
Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...
Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...