Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

schroot : gérer plus efficacement les environnement chroot

Dans un précédent article, je présentais la commande chroot pour chrooter le système.
Toutefois, la création d’un environnement sécurité (prison) n’est pas forcément simple à mettre en place.
Pour y parvenir plus facilement, il existe l’outil schroot destiné à gérer plus efficacement les environnement chroot.

Dans ce tutoriel, je vous apprends à utiliser schroot.

schroot : gérer plus efficacement les environnement chroot

Qu’est-ce que Schroot

Schroot est un outil de gestion des environnements chroot sous Linux. Les environnements chroot sont des environnements isolés qui peuvent être utilisés pour exécuter des programmes ou des shells avec des autorisations restreintes. Cela peut être utile à des fins de sécurité, par exemple pour exécuter du code non fiable, ou à des fins de test, par exemple pour exécuter des programmes dans un environnement différent.

Schroot facilite la gestion des environnements chroot en offrant un certain nombre de fonctionnalités, notamment

  • la possibilité de créer et de gérer plusieurs environnements chroot
  • la possibilité de configurer facilement des environnements chroot
  • la possibilité de monter et de démonter des systèmes de fichiers dans des environnements chroot
  • la possibilité de démarrer et d’arrêter des processus dans des environnements chroot

Avec schroot, vous pouvez créer et gérer plusieurs environnements chroot, chacun avec son propre ensemble d’options de configuration. Ces options peuvent inclure le répertoire racine, les points de montage et les identifiants d’utilisateur et de groupe, entre autres. Ce niveau de personnalisation vous permet d’adapter chaque environnement à vos besoins spécifiques.

Comment installer schroot

Pour installer schroot sur Debian ou Ubuntu :

sudo apt-get install schroot

Il est recommandé d’installer également debootstrap :

sudo apt-get install debootstrap

Comment créer un environnement schroot

Créer l’environnement chroot

Pour utiliser schroot, vous devez d’abord créer un environnement chroot. Pour ce faire, créez un répertoire, copiez-y les fichiers nécessaires et configurez les points de montage requis.
Mais on peut aussi créer un environnement virtuelle complet à l’aide la commande deboostrap.

Par exemple pour créer un environnement chroot d’une image Ubuntu 64-bits dans /jail/ubuntu :

sudo debootstrap --arch amd64 jammy /jail/ubuntu http://fr.archive.ubuntu.com/ubuntu/

Ou encore avec Debian 64-bits :

sudo debootstrap --arch amd64 bullseye /jail/debian http://ftp.fr.debian.org/debian/

Une fois l’environnement chroot créé, vous pouvez utiliser la commande schroot pour exécuter des commandes ou lancer un shell interactif dans cet environnement.

Créer le fichier de configuration schroot

Ensuite, il faut créer le fichier de configuration dans l’emplacement suivant : /etc/schroot/chroot.d
Il faut créer un fichier de configuration pour chaque environnement chroot.
Par exemple pour notre environnement chroot Debian : /etc/schroot/chroot.d/bullseye.conf

Le contenu est le suivant :

[bullseye]
description=Debian 11.8 (bullseye)
directory=/jail/debian
root-users=<nom utilisateur>
users=<nom utilisateur>
type=directory

Le fichier de configuration consiste en un nom de chroot (entouré d’une paire de crochets) et plusieurs propriétés :

  • directory — Le répertoire racine de l’environnement chroot
  • users — Une liste séparée par des virgules des utilisateurs qui ont accès à l’environnement chroot
  • root-users — Une liste séparée par des virgules des utilisateurs qui peuvent obtenir les privilèges root dans l’environnement chroot en spécifiant -u root
  • type — Il peut s’agir d’un répertoire ou d’un simple
    • Si répertoire est spécifié, le répertoire personnel sera monté dans l’environnement chroot. Dans la plupart des cas, répertoire est une option pratique et suggérée
    • Si plain est spécifié, schroot ne lancera aucun script d’installation
  • personality — La personnalité de l’environnement chroot. Pour exécuter un environnement chroot 32 bits sur une machine x86-64, définissez la personnalité à linux32
Créer le fichier de configuration schroot

Après avoir créé le fichier de configuration, vous pouvez lister les environnements chroot disponibles :

schroot -l

Cela doit renvoyer notre environnement chroot debian.

Comment entrer dans un environnement schroot

schroot -c bullseye

Pour sortir du chroot, utilisez la commande suivante :

exit
Comment entrer dans un environnement schroot

Pour se connecter en root dans l’environnement chroot :

 schroot -c bullseye -u root
Comment entrer dans un environnement schroot
  • Démarrer un shell interactif dans un chroot spécifique en tant qu’utilisateur spécifique :
schroot --chroot <environnement chroot> --user <utilisateur1> <utilisateur2>

Par exemple :

schroot --chroot bullseye --user mak

Comment exécuter des commandes dans le chroot ou connecter un utilisateur

Si vous désirez exécuter une commande dans un chroot spécifique, utilisez la syntaxe suivante :

schroot --chroot <environnement chroot> -- <commande>

Par exemple :

schroot --chroot bullseye -- cat /etc/passwd
Comment exécuter des commandes dans le chroot ou connecter un utilisateur

Pour exécuter une commande avec des options dans un chroot spécifique :

schroot --chroot <environnement chroot> <commande> -- <options de la commande>

Si vous souhaitez exécuter une commande dans tous les chroots disponibles :

schroot --all -- <commande>

Par exemple :

schroot --all -- cat /etc/passwd

Comment gérer les sessions schroot

La commande schroot -c la plus simple mentionnée dans la section précédente démarre une session automatique avant d’exécuter la commande et met fin à la session automatique une fois la commande terminée.
Lorsqu’une session démarre, schroot monte les systèmes de fichiers et exécute les crochets de démarrage.
Lorsqu’une session se termine, schroot exécute les crochets de sortie et démonte les systèmes de fichiers.
Cela peut prendre du temps si vous devez entrer et sortir d’un chroot plusieurs fois.

Pour démarrer une session :

schroot -b -c <environnement chroot>

Liste de toutes les sessions Schroot

Pour obtenir la liste de toutes les sessions Schroot, exécutez :

schroot -l --all-sessions

Ce qui renvoie par exemple, le nom du chroot suivi d’un UID :

session:bullseye-fead4ce9-5521-425f-830e-435782e84ed4

Entrer dans une session Schroot

Pour entrer dans une session Schroot, exécutez :

 schroot -r -c <nom de la session>

Soit par exemple :

schroot -r -c bullseye-fead4ce9-5521-425f-830e-435782e84ed4

Cette commande est similaire à la commande schroot -c la plus simple mentionnée plus haut. Vous pouvez ajouter la commande à exécuter ou spécifier -u root pour obtenir les privilèges de root.

Entrer dans une session Schroot

Fin d’une session Schroot

Pour mettre fin à une session Schroot (c’est-à-dire démonter tous les systèmes de fichiers et exécuter les crochets de sortie), exécutez la commande :

schroot -e -c <nom de la session>

Par exemple :

schroot -e -c bullseye-fead4ce9-5521-425f-830e-435782e84ed4

Attention, si l’ordinateur redémarre avant que le plus simple schroot -c ne soit terminé, la session automatique ne sera pas clôturée. Pour nettoyer ces sessions, vous devez trouver leurs noms avec schroot -l –all-sessions et terminer ces sessions avec schroot -e -c <nom-de-la-session>.

Mettre fin à une session Schroot

Arrêter une session chroot

schroot --list --all-sessions
schroot -e -c precise-ca6c72e4-0e9f-4721-8a0e-cca359e2c2fd

Comment supprimer les environnement chroot

  • Arrêter la session lié à l’environnement chroot
  • Supprimer le fichier de configuration de /etc/schroot/chroot.d
  • Lister les chroot pour vérifier que l’environnement chroot n’est plus présent
schroot --list
  • Supprimer les fichiers du chroot (ex /jail, /chroot)

L’article schroot : gérer plus efficacement les environnement chroot est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires