Para el sistema operativo Linux, hay una herramienta disponible, conocida como chroot, que proporciona una forma más fácil y más rápida de sandboxing una aplicación. Con chroot, puede instalar y probar cualquier aplicación sin afectar el resto del sistema.
Este artículo explicará cómo usar chroot en Debian 10 Buster, junto con algunos ejemplos. Para explicación, crearemos un entorno de chroot para la fiesta 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 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 este directorio raíz alternativo, lo que hace que la aplicación la considere como el directorio raíz original. El directorio raíz es el directorio más importante en la jerarquía, y ninguna aplicación puede alcanzar más alto que este directorio, por lo que así es como Chroot aísla la aplicación del resto del sistema.
Casos de uso
Sintaxis
La siguiente es la sintaxis básica para el comando chroot:
$ chrootdominio
Siga los pasos a continuación para usar el comando chroot en Debian para configurar un entorno de chroot.
Crear un directorio de raíz alternativo
Primero, cree un directorio de raíz alternativo que se utilizará para el entorno chroot.
$ sudo mkdir ~/new_root
El comando anterior creará el New_root directorio bajo el Hogar Directorio, que se utilizará como directorio raíz en el entorno chroot.
Agregar directorios esenciales
Crea los directorios "bin", "lib" y "lib64" bajo el ~/new_root directorio:
$ sudo mkdir -p ~/new_root/bin, lib, lib64
Copiar binarios del programa
Todo lo necesario para ejecutar una aplicación en el entorno chroot debe estar en el directorio de raíz alternativa. En este artículo, crearemos un entorno de chroot para la fiesta y algunos comandos, incluidos los comandos "LS", "IP" y "PWD". Por lo tanto, copiaremos los binarios del /papelera directorio a la alternativa ~/new_root/bin directorio. Para localizar los binarios de los comandos, use el comando que:
$ que Bash LS IP PWD
A continuación, copie los binarios de los comandos al ~/new_root/bin directorio.
$ sudo cp -v/bin/bash, ls, ip, pwd ~/new_root/bin
Copiar dependencias del programa
También tendremos que averiguar qué dependencias necesita nuestro programa. Primero, necesitaremos encontrar cuáles son esas dependencias, y luego las copiaremos al ~/new_root/Lib Directory.
Copiar dependencias para bash
Primero, descubra las dependencias para el programa BASH:
$ ldd /bin /bash
Luego, copie estas dependencias al ~/new_root/lib directorio.
$ cp -v/lib/x86_64-linux-gnu/libtinfo.entonces.6, libdl.entonces.2, libc.entonces.6 ~/new_root/lib
Para los archivos /lib64, cópielos al ~/new_root/lib64 directorio.
$ cp -v /lib64 /ld-linux-x86-64.entonces.2 ~/new_root/lib64
Copiar dependencias para el comando ls
Primero, descubra las dependencias para el comando LS:
$ ldd /bin /ls
Luego, copie estas dependencias al ~/new_root/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 ~/new_root/lib
Para los archivos /lib64, cópielos al ~/new_root/lib64 directorio.
$ sudo cp -v /lib64 /ld-linux-x86-64.entonces.2 ~/new_root/lib64
Copiar dependencias para el comando IP
Primero, descubra las dependencias para el comando IP:
$ ldd /bin /ip
Luego, copie estas dependencias al ~/new_root/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 ~/new_root/lib
Para los archivos /lib64, cópielos al ~/new_root/lib64 directorio.
$ sudo cp -v /lib64 /ld-linux-x86-64.entonces.2 ~/new_root/lib64
Copiar dependencias para el comando pwd
Primero, descubra las dependencias para el comando pwd:
$ ldd /bin /pwd
Luego, copie estas dependencias al ~/new_root/lib directorio.
$ sudo cp -v/lib/x86_64-linux-gnu/libc.entonces.6 ~/new_root/lib
Para los archivos /lib64, cópielos al ~/new_root/lib64 directorio.
$ sudo cp -v /lib64 /ld-linux-x86-64.entonces.2 ~/new_root/lib64
Para ver todos los directorios en el directorio raíz alternativo, use el siguiente comando:
$ ls -r
Cambiar a un directorio de raíz alternativo
Ahora, finalmente estamos preparados para cambiar a nuestro nuevo entorno de chroot. Para cambiar el directorio raíz, ejecute el siguiente comando en el shell con privilegios raíz:
$ sudo chroot ~/new_root/bin/bash
Dónde ~/new_root es nuestro directorio de raíz alternativa y /bin/bash es la aplicación que hemos utilizado para configurar el entorno chroot.
Después de ejecutar el comando anterior, verá que la solicitud 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 bash).
Nota: Puede encontrar el siguiente error después de ejecutar el comando chroot, como lo hice:
Si se produce 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 incorporados. Puede encontrar los comandos incorporados ejecutando el ayuda comando en el shell.
Puedes ver que hemos probado los comandos "LS", "PW" y "IP", y todos tuvieron éxito. Si ejecutamos algún comando que no sea estos tres comandos y los comandos incorporados, 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 "claros", y todos ellos fallaron.
Salir chroot
Para salir del entorno chroot, use el salida dominio.
Conclusión
En este artículo, has 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 de chroot para Bash y otros comandos. Ahora, debe 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.