On démarre notre périple après avoir installé notre autre version de Debian (voir le wiki DF), ou quoi que ce soit d'autre, sur une partition dédiée. Pour cette page c'est une sid qui est prise en exemple.
Tout se passe dans le dossier /etc/schroot, et donc en root.
A noter que pour l'exemple du fichier principal ci-dessous, la valeur de la clé “type” ne doit pas être différente de “directory”.
Quant à la clé “profile” elle désigne le répertoire de config qui sera lu par schroot.
Ici c'est le user “bidule” et son groupe du même nom qui va utiliser le chroot.
[sidchroot] type=directory directory=/media/sidchroot users=bidule groups=bidule preserve-environment=true profile=sidchroot
Ensuite, selon l'utilisation du chroot on peut choisir comme modèle un des dossiers (sauf ceux de scripts). Tous comportent plus ou moins les mêmes fichiers mais avec des pré-configurations différentes. On peut aussi picorer dans chaque….
Pour créer simplement le dossier “sidchroot” pour une session avec des appli graphiques.
cp -r desktop sidchroot
Dans le répertoire “sidchroot” on peut conserver le fichier “fstab” tel quel:
# fstab: static file system information for chroots. # Note that the mount point will be prefixed by the chroot path # (CHROOT_PATH) # # <file system> <mount point> <type> <options> <dump> <pass> /proc /proc none rw,bind 0 0 /sys /sys none rw,bind 0 0 /dev /dev none rw,bind 0 0 /dev/pts /dev/pts none rw,bind 0 0 /home /home none rw,bind 0 0 /tmp /tmp none rw,bind 0 0 # If you use gdm3, uncomment this line to allow Xauth to work #/var/run/gdm3 /var/run/gdm3 none rw,bind 0 0 # For PulseAudio and other desktop-related things /var/lib/dbus /var/lib/dbus none rw,bind 0 0 # It may be desirable to have access to /run, especially if you wish # to run additional services in the chroot. However, note that this # may potentially cause undesirable behaviour on upgrades, such as # killing services on the host. #/run /run none rw,bind 0 0 #/run/lock /run/lock none rw,bind 0 0 #/dev/shm /dev/shm none rw,bind 0 0 #/run/shm /run/shm none rw,bind 0 0
Mais phlinux n'aime pas “binder” le /home ni /sys. A noter que /run peut poser des problèmes comme il est indiqué dans les commentaires.
De même que tout “fstab” on peut ajouter le montage de la racine (c'est à dire la partition de la distribution chrootée) et, pourquoi pas, une partition utile dans le chroot.
Ce qui donne par exemple:
# <file system> <mount point> <type> <options> <dump> <pass> UUID=xxxx41ef-13f6-xxxx-a484-9b1ec5fd6271 / ext4 defaults 0 0 /proc /proc none rw,bind 0 0 /dev /dev none rw,bind 0 0 /dev/pts /dev/pts none rw,bind 0 0 /tmp /tmp none rw,bind 0 0 /var/lib/dbus /var/lib/dbus none rw,bind 0 0 UUID=6c66xxxx-35c0-4336-xxxx-b14c2ddc2835 /media/stock ext3 defaults 0 0
Toujours dans le dossier “sidchroot” on peut utiliser le fichier “copyfiles” pour copier dans le chroot des fichiers du système hôte.
Par exemple:
# Files to copy into the chroot from the host system. # # <source and destination> /home/bidule/.Xauthority # certainement indispensable pour des sessions en graphiques /etc/resolv.conf # utile/indispensable pour le réseau
Enfin, vérifier le fichier “nssdatabases”. Dans la liste des fichiers qui peuvent être copiés dans le chroot, beaucoup, voire tous, sont déjà présents suite à la construction de la distribution si on a suivi le wiki DF. Donc à commenter selon les besoins.
Et pis…..c'est tout.
Comme d'hab….. Sauf qu'avec cette configuration plus besoin de pré-monter la partition du chroot depuis l'hôte et de farcir son “fstab” avec des lignes de “bind”, ni même d'écrire des scripts savants… Tout se fait au lancement de l'appli ou de l'accès au chroot par le login.
Quelques rappels de “classiques” avec l'exemple de sidchroot:
schroot -c sidchroot gimp
schroot -c sidchroot /bin/bash
Pour mettre à jour son chroot (petites variations d'options possibles suivant le $TERM utilisé):
$TERM -f -e schroot -c sidchroot -- /bin/bash -c "su -"
Et une petite astuce qui peut servir pour passer une option à l'appli lancée:
schroot -c sidchroot -- mpv --playlist
Les experts pourront peut être apporter la confirmation que cette config est également plus sécurisée car vraiment transparente.
A bientôt sur DF