tomld - chroot

Végre sikerült megoldanom a chroot kérdését is. Tartottam tőle, hogy alapjaiban újra kell írnom nagy részét, de hála sikerült nagyon egyszerű módon megoldanom.

Ha tomld olyan rendszeren volt indítva, amely tartalmazott chroot-ból indított folyamatokat, akkor a létrehozott szabályaikban az elérési utak a valós, vagyis a chroot-tal prefix-elt könyvtár neveket tartalmazták. Ez azért volt probléma, mert a szabályaimat a "/" gyökérhez igazítottam. Tehát pl. a "/" gyökeret kivételként kezelem, és nem wildcard-ozok ki mindent ebben a könyvtárban, ha írás történik ide, stb.

Ehhez meg kellett keresnem azokat a folyamatokat, amelyek chroot-ból lettek indítva és amelyek binárisa is a chroot könyvtárukon belül találhatók. Ehhez köszi a segítséget ebből a topic-ból.

Nekem ilyen több debootstrap-el összeállított környezetem. Azok a folyamatok nem érdekesek, ahol a daemon forkol egy child process-t chroot-ba zárva.

Úgy oldottam meg, hogy a tomld.conf-ban található [exception] [wildcard] és [replace] bejegyzések elérési útja elé odateszem a chroot könyvtárakkal prefixelteket is. Ez logikailag is megfelelő, mert egy külső folyamat nyilván nem fog egy idegen chroot környezetben turkálni (ettől függetlenül megteheti), de a chroot-os domain bejegyzései pedig ennek megfelelően lesznek kezelve.

Így ha van egy /chroot-ból indított processzem, akkor így fog kinézni elméletben az új konfig:


# [exception]
# /
# /dev/
# /etc/
# /home/\*/
# /root/
# /chroot/
# /chroot/dev/
# /chroot/etc/
# /chroot/home/\*/
# /chroot/root/
#
# [wildcard]
# /home/\{\*\}/
# /usr/share/\{\*\}/
# /etc/fonts/\{\*\}/
# /var/cache/\{\*\}/
# /dev/pts/
# /chroot/home/\{\*\}/
# /chroot/usr/share/\{\*\}/
# /chroot/etc/fonts/\{\*\}/
# /chroot/var/cache/\{\*\}/
# /chroot/dev/pts/
#
# [replace]
# /run/gdm/auth-for-\*/
# /var/run/gdm/auth-for-\*/
# /home/\*/.recently-used.xbel.\*
# /chroot/run/gdm/auth-for-\*/
# /chroot/var/run/gdm/auth-for-\*/
# /chroot/home/\*/.recently-used.xbel.\*

Ezt eddig így teszteltem kézzel beírva, de most tomld kigyűjti és tárolja az aktuális helyzettől függően minden új futási ciklusban, akár ha elindul egy új chroot-ból futtatott folyamat. Így ez is teljesen automatikus lett.

Új verzió: v0.53.