GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Configure un entorno chroot en Ubuntu con debootstrap

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!!


Ubuntu
  1. Configuración inicial del servidor con Ubuntu 14.04

  2. Cómo configurar el entorno Chroot en Ubuntu 14.04

  3. Configurar Linux Container con LXC en Ubuntu 16.04

  4. Cómo configurar la conmutación por error de IP con KeepAlived en Ubuntu y Debian

  5. ¿Usando Ubuntu con una configuración de dos pantallas?

Una guía sobre cómo instalar Ubuntu 15.04 con capturas de pantalla

Cómo configurar el entorno de desarrollo de Django en Ubuntu 18.04

Un script de Shell para configurar el entorno de desarrollo en Ubuntu

Cómo configurar WordPress en Ubuntu Server con Apache

Cómo configurar el entorno virtual de Python 3 en Ubuntu 20.04

Configuración inicial del servidor con Ubuntu 18.04