Linux: Mit schroot als normaler Linux-Benutzer in eine chroot wechseln

scroot steht für „secure chroot“ und erlaubt es normalen System-Benutzern eines Linux-Systems den Chroot-Aufruf zu machen.
Dies ist in manchen Szenarien recht paktisch, wenn man einem normalen Systembenutzer eine eigene Linux-Umgebung zur verfügung stellen möchte in der er tun und lassen kann, was er möchte.
Zusätzlich hat schroot diverse vorteile wie z.B. das es die mountpoints vom Hostsystem mit in die chroot mounten kann oder das komplette /home Verzeichnis des users mit in die Chroot mappt – so hat man dann auf alle Dateien des /home Verzeichnis auch in der chroot zugriff.

Installation unter Debian:

apt-get install schroot


Wir gehen im folgenden Beispiel davon aus, dass wir eien chroot haben, welche ein minimales Linux System wieder spiegelt und im Home verzeichnis des Users „sven“ liegt (home/sven/chroot).
Dann sähe die Config (/etc/schroot/schroot.conf) wie folgt aus:

[svenchroot]
description=Sven seine Chroot
directory=/home/sven/chroot
users=sven
groups=sven
root-groups=root

Damit wird in der Config-Datei gesagt das die Chroot mit dem Alias „svenchroot“ angesprochen werden kann, im Pfad “/home/sven/chroot“ liegt und der User „sven“ + die Gruppe „sven“ und alle user in der Gruppe root als root darauf zugreifen dürfen.

Möchte man nun als User in diese chroot rein chrooten, macht man dies mit folgedem Aufruf:

schroot -c svenchroot

Wobei das Argument für den Parameter -c der Alias in den Eckigen Klammern der schroot.conf ist.

Nun sind wir als User „sven“ in der chroot “/home/sven/chroot“.
Jetzt wäre natürlich noch schön, wenn gleich nach dem Login Kommandos wie „df“ oder „free“ funktionieren würden.
Dies ist nämlich momentan noch nicht der fall, weil “/dev“ und “/proc“ noch nicht gemountet sind.
Um dies zu ermöglichen, kann man die Config-Datei (/etc/schroot/schroot.conf) um folgende Zeilen erweitert:

type=directory
run-setup-scripts=true
run-exec-scripts=true

Hierdurch weiss schroot das es sich bei der chroot um ein Verzeichnis handelt und das es die Scripte in “/etc/schroot/default/“ und “/etc/schroot/setup.d/“ ausführen soll, welche beim Aufruf des Befehls „chroot -c svenchroot“ z.B. gleich automatisch “/proc“ und “/dev“ mit mountet.

Eine Liste der Chroots, welche schroot verwenden kann man sich auch anzeigen lassen:

root@test:~# schroot -l
chroot:svenchroot

leave your comment


*

Unterstütze den Frickelblog!