GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Configurer un environnement chroot sur Ubuntu avec debootstrap

Chrooter

Chrooter fournit un moyen de configurer un environnement isolé à l'intérieur d'un système d'exploitation, où des applications spécifiques peuvent s'exécuter sans interagir avec le reste du système. Il est également appelé une prison et est souvent utilisé pour créer un environnement de test pour les applications qui ne peuvent pas être directement installées sur le système en raison de divers problèmes tels que la stabilité ou la sécurité.

Exécuter des applications 32 bits dans un environnement chroot 64 bits ubuntu

Parce que chroot isole l'application dans un environnement séparé, il est également utilisé pour exécuter des applications 32 bits dans un environnement de système d'exploitation 64 bits. Aujourd'hui, la plupart des systèmes d'exploitation et des applications fonctionnent en 64 bits sur les ordinateurs de bureau et les serveurs.

Cependant, il existe des scénarios où les applications ne peuvent pas être migrées vers 64 bits, en raison de diverses restrictions. Cela se produit dans les organisations où de grandes applications héritées fonctionnent depuis longtemps. Pour que ces applications continuent de fonctionner, il est nécessaire d'installer un système d'exploitation 32 bits ou de créer un environnement 32 bits dans une installation de système d'exploitation 64 bits.

L'environnement chroot

Un environnement chroot est un moyen de créer une soi-disant "prison" séparée dans votre système, exécutant un système d'exploitation différent de celui de l'hôte. En d'autres termes, il s'agit d'un système d'exploitation exécuté dans un autre système d'exploitation. Techniquement, l'utilisateur change temporairement le répertoire racine (généralement /) vers un autre répertoire racine (dans notre exemple, /srv/chroot).

Dans tous les systèmes d'exploitation basés sur Unix, le répertoire racine est le sommet de l'arborescence du système de fichiers, et les applications ne peuvent accéder à aucun fichier ou répertoire plus haut, par conséquent, ayant une nouvelle racine différente et changeant, les applications s'exécutant là, sont isolés du reste du système hôte.

Cette approche présente de nombreux avantages :

-  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

Dans ce cas, nous profiterons de cette fonctionnalité pour exécuter nativement des applications 32 bits dans un hôte 64 bits.

Les packages nécessaires pour configurer l'environnement chroot sont debootstrap et schroot , qui sont disponibles dans le référentiel ubuntu. La commande schroot est utilisée pour configurer l'environnement chroot.

Débootstrap vous permet d'installer une nouvelle copie fraîche de n'importe quel système Debian (ou basé sur Debian) dans un répertoire avec toutes les commandes de base et les binaires nécessaires pour exécuter une instance de base du système d'exploitation.

Vous pouvez chrooter directement en tant que root en exécutant simplement la commande chroot, mais les utilisateurs normaux ne peuvent pas utiliser cette commande. Le schroot autorise l'accès aux chroots pour les utilisateurs normaux utilisant le même mécanisme, mais avec la vérification des autorisations et la possibilité d'une configuration automatisée supplémentaire de l'environnement de chroot, comme le montage de systèmes de fichiers supplémentaires et d'autres tâches de configuration.

Cette configuration automatisée est effectuée par l'action de scripts de configuration qui peuvent être personnalisés et étendus pour effectuer toutes les actions requises, expliquées ci-dessous.

Voici les étapes pour implémenter cette fonctionnalité dans Ubuntu 12.04 :

1. Installez les packages :

La première étape consiste à installer les packages avec apt-get :

$ sudo apt-get install debootstrap
$ sudo apt-get install schroot

2. Créez une configuration schroot :

Nous devons configurer schroot en fonction de nos besoins dans le fichier de configuration.

Choisissez un nom court pour le chroot, nous avons utilisé precise_i386 :

$ sudo gedit /etc/schroot/chroot.d/precise_i386.conf

Procédez ensuite à la configuration, comme dans cet exemple :

[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

Modifiez les valeurs des paramètres de configuration dans l'exemple ci-dessus pour les adapter à votre système :

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. Installer Ubuntu 32 bits avec debootstrap

Debootstrap télécharge et installe un système d'exploitation minimal dans votre environnement chroot .

Vous pouvez installer n'importe quelle distribution basée sur Debian de votre choix, tant que vous disposez d'un référentiel disponible. J'adore cet utilitaire, il vous fait gagner beaucoup de temps et de travail.

Dans notre exemple, nous avons placé l'environnement chroot sous le répertoire /srv/chroot/precise_i386 et c'est le répertoire racine de l'environnement chroot.

$ sudo mkdir -p /srv/chroot/precise_i386
$ sudo debootstrap --variant=buildd --arch=i386 precise /srv/chroot/precise_i386 http://archive.ubuntu.com/ubuntu/

Il faut un certain temps (selon votre bande passante) pour télécharger, installer et configurer le système complet. Il faut environ 500M pour une installation minimale.

4. Testez l'environnement chroot

Maintenant, nous devrions avoir notre Ubuntu 32 bits installé.

Commencez par lister les environnements chroot disponibles à l'aide de la commande schroot.

$ schroot -l
chroot:precise_i386

vous devriez vous attendre à precise_i386 en conséquence.

Maintenant, allons-y, tapez simplement en tant qu'utilisateur habituel

$ schroot -c precise_i386 -u root

Vous êtes maintenant dans l'environnement chrooté en tant que root !

Vérifiez que le message d'invite est légèrement différent de d'habitude et que vous avez de nouvelles valeurs pour les commandes suivantes

lsb_release -a
uname -a

5. Configuration supplémentaire

Maintenant que nous avons un environnement 32 bits fonctionnel, finissons d'installer les exigences minimales et toutes les bibliothèques et applications nécessaires.

$ apt-get install ubuntu-minimal

Cela téléchargera et installera les packages nécessaires à une installation minimale d'ubuntu.

C'est tout.

Vous pouvez commencer à installer les packages, les bibliothèques et les dépendances dont votre application a besoin, comme d'habitude avec la commande apt-get ou dpkg. Il récupérera la version i386, tant que vous le faites dans l'environnement chroot.

Vous pouvez le mettre à jour et le mettre à niveau, comme vous le faites avec le système hôte; éditez votre /etc/apt/sources.list et modifiez selon vos besoins.

Les répertoires personnels des utilisateurs au sein du chroot sont partagés avec l'hébergeur.
Ceci est très utile pour avoir accès aux applications, documents et fichiers dont vous auriez besoin.

Pour terminer ce tutoriel, afin de lancer une application graphique depuis le chroot, vous devez exporter la variable d'environnement DISPLAY.

$ DISPLAY=:0.0 ./yourapp

N'hésitez pas à envoyer toute question ou commentaire concernant cet article.

J'espère que vous l'avez aimé et que vous l'avez trouvé utile !


Ubuntu
  1. Configuration initiale du serveur avec Ubuntu 14.04

  2. Comment configurer l'environnement chroot dans Ubuntu 14.04

  3. Comment configurer le basculement IP avec KeepAlived sur Ubuntu et Debian

  4. Utiliser Ubuntu avec une configuration à deux écrans ?

  5. Configurer un shell emprisonné avec jailkit sur Ubuntu

Un guide sur l'installation d'Ubuntu 15.04 avec des captures d'écran

Comment configurer l'environnement de développement Django sur Ubuntu 18.04

Un script shell pour configurer l'environnement de développement dans Ubuntu

Comment configurer WordPress sur Ubuntu Server avec Apache

Comment configurer l'environnement virtuel Python 3 sur Ubuntu 20.04

Configuration initiale du serveur avec Ubuntu 18.04