Croot
Croot proporciona una forma de configurar un entorno aislado dentro de un sistema operativo, donde las aplicaciones específicas pueden ejecutarse sin interactuar con el resto del sistema. También se le llama cárcel y a menudo se usa para crear un entorno de prueba para aplicaciones que pueden no estar instaladas directamente en el sistema debido a varios problemas como la estabilidad o la seguridad.
Ejecución de aplicaciones de 32 bits en un entorno chroot ubuntu de 64 bits
Debido a que chroot aísla la aplicación en un entorno separado, también se usa para ejecutar aplicaciones de 32 bits dentro de un entorno de sistema operativo de 64 bits. Hoy en día, la mayoría de los sistemas operativos y aplicaciones son de 64 bits tanto en equipos de escritorio como en servidores.
Sin embargo, hay escenarios en los que las aplicaciones no se pueden migrar a 64 bits debido a varias restricciones. Esto sucede en organizaciones donde se han estado ejecutando grandes aplicaciones heredadas durante mucho tiempo. Para que dichas aplicaciones sigan ejecutándose, es necesario tener instalado un sistema operativo de 32 bits o crear un entorno de 32 bits dentro de una instalación de sistema operativo de 64 bits.
El entorno chroot
Un entorno chroot es una forma de crear una llamada "cárcel" separada en su sistema, ejecutando un sistema operativo diferente al del host. En otras palabras, es un sistema operativo que se ejecuta dentro de otro sistema operativo. Técnicamente, el usuario cambia temporalmente el directorio raíz (generalmente /) a otro directorio raíz (en nuestro ejemplo, /srv/chroot).
En todos los sistemas operativos basados en Unix, el directorio raíz es la parte superior del árbol del sistema de archivos, y las aplicaciones no pueden acceder a ningún archivo o directorio superior, por lo tanto, al tener una raíz nueva, diferente y cambiarla, las aplicaciones que se ejecutan allí, están aislados del resto del sistema host.
Este enfoque tiene muchas ventajas:
- Test applications without the risk of compromising the entire host system. - From the security point of view, whatever happens in the chroot environment won't affect the host system (not even under root user) - A different operating system running in the same hardware
En este caso, aprovecharemos esta función para ejecutar aplicaciones de 32 bits de forma nativa en un host de 64 bits.
Los paquetes necesarios para configurar el entorno chroot son debootstrap y schroot , que están disponibles en el repositorio de ubuntu. El comando schroot se usa para configurar el entorno chroot.
Reinicio le permite instalar una copia nueva de cualquier sistema Debian (o basado en Debian) en un directorio con todos los comandos básicos y archivos binarios necesarios para ejecutar una instancia básica del sistema operativo.
Puede hacer chroot directamente como root simplemente ejecutando el comando chroot, pero los usuarios normales no pueden usar este comando. El schroot permite el acceso a chroots para usuarios normales utilizando el mismo mecanismo, pero con comprobación de permisos y permite una configuración automatizada adicional del entorno chroot, como el montaje de sistemas de archivos adicionales y otras tareas de configuración.
Esta configuración automatizada se realiza mediante la acción de scripts de configuración que se pueden personalizar y ampliar para realizar cualquier acción requerida, que se explica a continuación.
Estos son los pasos para implementar esta funcionalidad en Ubuntu 12.04:
1. Instale los paquetes:
El primer paso es instalar los paquetes con apt-get:
$ sudo apt-get install debootstrap $ sudo apt-get install schroot
2. Cree una configuración schroot:
Tenemos que configurar schroot para satisfacer nuestras necesidades en el archivo de configuración.
Elija un nombre corto para el chroot, usamos precision_i386 :
$ sudo gedit /etc/schroot/chroot.d/precise_i386.conf
Luego proceda con la configuración, como en este ejemplo:
[precise_i386] description=Ubuntu 12.04 Precise for i386 location=/srv/chroot/precise_i386 personality=linux32 root-users=bob type=directory users=alice,bob,charlie
Modifique los valores de los parámetros de configuración en el ejemplo anterior para que se ajusten a su sistema:
location - This should be a directory that is outside of the /home tree. The latest schroot documentation recommends /srv/chroot. personality - Enable this line if the host system is 64-bit running on an amd64/x64 computer and the chroot is 32-bit for i386. Otherwise, leave it disabled, by adding "#" as first character. root-users - These are users on the host system that can invoke the schroot program and get direct access to the chroot system as the root user. users - These are users on the host system that can invoke the schroot program and get access to the chroot system. Your username on the host system should be here.
3. Instale ubuntu de 32 bits con debootstrap
Debootstrap descarga e instala un sistema operativo mínimo dentro de su entorno chroot .
Puede instalar cualquier distribución basada en Debian de su preferencia, siempre que tenga un repositorio disponible. Me encanta esta utilidad, te ahorra mucho tiempo y trabajo.
En nuestro ejemplo, colocamos el entorno chroot en el directorio /srv/chroot/precise_i386 y este es el directorio raíz del entorno chroot.
$ sudo mkdir -p /srv/chroot/precise_i386 $ sudo debootstrap --variant=buildd --arch=i386 precise /srv/chroot/precise_i386 http://archive.ubuntu.com/ubuntu/
Toma algún tiempo (dependiendo de su ancho de banda) descargar, instalar y configurar el sistema completo. Se necesitan alrededor de 500M para una instalación mínima.
4. Probar el entorno chroot
Ahora, deberíamos tener nuestro Ubuntu de 32 bits instalado.
Primero enumere los entornos chroot disponibles usando el comando schroot.
$ schroot -l chroot:precise_i386
debe esperar precision_i386 como resultado.
Ahora comencemos, simplemente escriba como su usuario habitual
$ schroot -c precise_i386 -u root
¡Ahora, estás en el entorno chroot como root!
Verifique que el mensaje de solicitud sea ligeramente diferente de lo habitual y que tenga nuevos valores para los siguientes comandos
lsb_release -a uname -a
5. Configuración adicional
Ahora que tenemos un entorno funcional de 32 bits, terminemos de instalar los requisitos mínimos y todas las bibliotecas y aplicaciones necesarias.
$ apt-get install ubuntu-minimal
Esto descargará e instalará los paquetes necesarios de una instalación mínima de ubuntu.
Eso es todo.
Puede comenzar a instalar los paquetes, bibliotecas y dependencias que necesita su aplicación, como de costumbre con el comando apt-get o dpkg. Recuperará la versión i386, siempre que lo haga dentro del entorno chroot.
Puede actualizarlo y actualizarlo, como lo hace con el sistema host; edite su /etc/apt/sources.list y modifíquelo según sus necesidades.
Los directorios de inicio de los usuarios dentro del chroot se comparten con el host.
Esto es muy útil para tener acceso a las aplicaciones, documentos y archivos que debería necesitar.
Para finalizar este tutorial, para ejecutar una aplicación gráfica desde el chroot, debe exportar la variable de entorno DISPLAY.
$ DISPLAY=:0.0 ./yourapp
No dude en enviar cualquier pregunta o comentario sobre este artículo.
¡¡Espero que les haya gustado y encontrado de ayuda!!