Ich muss einen Prozess in einem Chroot mit einem virtuellen /proc-Dateisystem ausführen, sodass der Prozess keinen Zugriff auf andere Prozesse auf demselben Host hat. Der Prozess muss unter Root ausgeführt werden und vollen Zugriff auf Dateien im Chroot haben. Außerdem müssen alle Änderungen am Dateisystem im Chroot-Verzeichnis erhalten bleiben.
Ist es überhaupt möglich?
Antwort1
Es ist möglich, /proc in einer Chroot-Umgebung zu mounten - siehediese Antwortfür weitere Informationen.
Ich hätte Bedenken, dass das Programm keinen Zugriff auf andere Prozesse erhalten könnte, da auf viele (wenn nicht alle) dieser Informationen über /proc zugegriffen werden kann (über /proc/[PID-Nummer] erhalten Sie Zugriff darauf).
Es ist unklar, was Sie mit „Änderungen am Dateisystem“ meinen, aber wenn diese Änderungen das Dateisystem mit Ausnahme spezieller Teile wie /proc, /dev/ usw. betreffen, bleiben diese im Chroot.
Antwort2
Sie können dies mithilfe von Linux-Namespaces erreichen. Container (Docker, lxc) werden aus diesen erstellt. man unshare
ist Ihr Freund. Beachten Sie, dass Angreifer leicht entkommen können, chroot
wenn Sie es unsachgemäß verwenden. Informieren Sie sich darüber, bevor Sie es verwenden. Sie wurden gewarnt.