tech:chroot
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tech:chroot [2025/03/28 09:47] – Jean-Baptiste | tech:chroot [2026/02/25 15:55] (Version actuelle) – Jean-Baptiste | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # Chroot Linux | ||
| + | |||
| + | |||
| + | |||
| + | Voir : | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * http:// | ||
| + | * https:// | ||
| + | * http:// | ||
| + | * http:// | ||
| + | * http:// | ||
| + | * https:// | ||
| + | * http:// | ||
| + | |||
| + | Chroot Infinite BusyBox with systemd | ||
| + | * http:// | ||
| + | * switch_root | ||
| + | |||
| + | libpam-chroot: | ||
| + | |||
| + | * https:// | ||
| + | * http:// | ||
| + | |||
| + | Voir fakeroot et consorts | ||
| + | * fakeroot | ||
| + | * fakeroot-ng | ||
| + | * proot | ||
| + | * become-root | ||
| + | * rootlesskit (Linux-native "fake root" for rootless containers) | ||
| + | and yet slow): | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | Voir aussi : | ||
| + | * pivot_root & switch_root | ||
| + | * [Debootstrap](https:// | ||
| + | * Docker | ||
| + | * bwrap | ||
| + | * [Firejail](https:// | ||
| + | * ex : '' | ||
| + | * [Firejail : Le couteau suisse du confinement sous Linux](https:// | ||
| + | * Procenv | ||
| + | |||
| + | '' | ||
| + | ~~~bash | ||
| + | CHROOTDIR=/ | ||
| + | |||
| + | mkdir ${CHROOTDIR} | ||
| + | mkdir ${CHROOTDIR}/ | ||
| + | |||
| + | mount -t sysfs /sys ${CHROOTDIR}/ | ||
| + | mount -t proc proc ${CHROOTDIR}/ | ||
| + | mount -n -t tmpfs none ${CHROOTDIR}/ | ||
| + | |||
| + | mkdir ${CHROOTDIR}/ | ||
| + | mkdir ${CHROOTDIR}/ | ||
| + | |||
| + | mount -vt devpts -o gid=4, | ||
| + | mount -vt tmpfs none ${CHROOTDIR}/ | ||
| + | |||
| + | mknod -m 622 ${CHROOTDIR}/ | ||
| + | mknod -m 666 ${CHROOTDIR}/ | ||
| + | mknod -m 666 ${CHROOTDIR}/ | ||
| + | mknod -m 666 ${CHROOTDIR}/ | ||
| + | mknod -m 666 ${CHROOTDIR}/ | ||
| + | mknod -m 444 ${CHROOTDIR}/ | ||
| + | mknod -m 444 ${CHROOTDIR}/ | ||
| + | chown root:tty ${CHROOTDIR}/ | ||
| + | #mknod -m 600 ${CHROOTDIR}/ | ||
| + | |||
| + | cp -p /etc/hosts / | ||
| + | touch ${CHROOTDIR}/ | ||
| + | |||
| + | mkdir ${CHROOTDIR}/ | ||
| + | cp -p / | ||
| + | |||
| + | mkdir ${CHROOTDIR}/ | ||
| + | cp -p / | ||
| + | cp -p / | ||
| + | |||
| + | egrep " | ||
| + | |||
| + | chroot ${CHROOTDIR} /bin/bash | ||
| + | #mount -vt devpts -o gid=4, | ||
| + | #mount -vt tmpfs none /dev/shm | ||
| + | |||
| + | chroot ${CHROOTDIR} /bin/bash | ||
| + | |||
| + | exelist=' | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | |||
| + | ## Exemple avec bash | ||
| + | |||
| + | ~~~bash | ||
| + | ldd / | ||
| + | mkdir ${CHROOTDIR}/ | ||
| + | cp -p / | ||
| + | cp -p / | ||
| + | cp -p / | ||
| + | cp -p / | ||
| + | cp -p / | ||
| + | cp -p /bin/bash ${CHROOTDIR}/ | ||
| + | |||
| + | # Authentification | ||
| + | cp -a /etc/pam.* / | ||
| + | cp -a / | ||
| + | cp -p / | ||
| + | cp -p / | ||
| + | cp -p / | ||
| + | |||
| + | cp -a / | ||
| + | cp -p / | ||
| + | mkdir / | ||
| + | cp -a / | ||
| + | mkdir -p / | ||
| + | |||
| + | cp -p / | ||
| + | cp -a /etc/ssh/ / | ||
| + | |||
| + | # Locale | ||
| + | cp -a / | ||
| + | |||
| + | #cp -a / | ||
| + | ~~~ | ||
| + | |||
| + | Pour top, atop | ||
| + | ~~~ | ||
| + | ' | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | cp -a / | ||
| + | |||
| + | touch ${CHROOTDIR}/ | ||
| + | touch ${CHROOTDIR}/ | ||
| + | |||
| + | |||
| + | touch ${CHROOTDIR}/ | ||
| + | |||
| + | cp -r /etc/skel / | ||
| + | |||
| + | |||
| + | touch / | ||
| + | chown jibe: -R / | ||
| + | |||
| + | chroot ${CHROOTDIR} | ||
| + | |||
| + | chmod 1777 / | ||
| + | |||
| + | #mkdir -p / | ||
| + | |||
| + | cp -p / | ||
| + | |||
| + | #Pour les script init (services) | ||
| + | cp -a /lib/lsb / | ||
| + | ~~~ | ||
| + | |||
| + | Truc ? | ||
| + | |||
| + | ''/ | ||
| + | ~~~ | ||
| + | chroot: | ||
| + | ~~~ | ||
| + | |||
| + | ''/ | ||
| + | ~~~bash | ||
| + | #! /bin/bash | ||
| + | |||
| + | #exec -c / | ||
| + | #sudo / | ||
| + | sudo / | ||
| + | ~~~ | ||
| + | |||
| + | http:// | ||
| + | |||
| + | ~~~ | ||
| + | chroot ALL=(root) NOPASSWD: / | ||
| + | ~~~ | ||
| + | |||
| + | **ATTENTION** Grosse faille de sécurité que je n' | ||
| + | Si l' | ||
| + | |||
| + | mknod -m 666 / | ||
| + | |||
| + | Dans le chroot | ||
| + | ~~~bash | ||
| + | /sbin/getty 38400 tty8 | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | umount ${CHROOTDIR}/ | ||
| + | umount ${CHROOTDIR} | ||
| + | |||
| + | rmdir ${CHROOTDIR}/ | ||
| + | rmdir ${CHROOTDIR} | ||
| + | |||
| + | umount /chroot/* | ||
| + | umount /chroot/* | ||
| + | ~~~ | ||
| + | |||
| + | ### Comment savoir si je suis dans un chroot ? | ||
| + | |||
| + | Les numeros d' | ||
| + | ~~~bash | ||
| + | ls -id / | ||
| + | ~~~ | ||
| + | Voir http:// | ||
| + | |||
| + | ## Firejail | ||
| + | |||
| + | Voir : https:// | ||
| + | |||
| + | ~~~bash | ||
| + | firefail --seccomp --debug firefox | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ## Mount kernel virtual file systems | ||
| + | |||
| + | Source : https:// | ||
| + | |||
| + | '' | ||
| + | ~~~bash | ||
| + | #!/bin/sh | ||
| + | # | ||
| + | # SPDX-License-Identifier: | ||
| + | # | ||
| + | |||
| + | ### BEGIN INIT INFO | ||
| + | # Provides: | ||
| + | # Required-Start: | ||
| + | # Required-Stop: | ||
| + | # Default-Start: | ||
| + | # Default-Stop: | ||
| + | # Short-Description: | ||
| + | # Description: | ||
| + | # provides and that are required by everything. | ||
| + | ### END INIT INFO | ||
| + | |||
| + | if [ -e /proc ] && ! [ -e / | ||
| + | mount -t proc proc /proc | ||
| + | fi | ||
| + | |||
| + | if [ -e /sys ] && grep -q sysfs / | ||
| + | mount -t sysfs sysfs /sys | ||
| + | fi | ||
| + | |||
| + | if [ -e / | ||
| + | mount -t debugfs debugfs / | ||
| + | fi | ||
| + | |||
| + | if [ -e / | ||
| + | mount -t configfs configfs / | ||
| + | fi | ||
| + | |||
| + | if [ -e / | ||
| + | mount -t efivarfs efivarfs / | ||
| + | fi | ||
| + | |||
| + | if ! [ -e /dev/zero ] && [ -e /dev ] && grep -q devtmpfs / | ||
| + | mount -n -t devtmpfs devtmpfs /dev | ||
| + | fi | ||
| + | |||
| + | ~~~ | ||
| + | |||
| + | |||
| + | |||
| + | ## Pb / | ||
| + | |||
| + | ~~~ | ||
| + | -bash: / | ||
| + | -bash: / | ||
| + | -bash: / | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ## Autres | ||
| + | |||
| + | ~~~bash | ||
| + | chroot --userspec=nobody | ||
| + | ~~~ | ||
| + | |||
