Мне нужно запустить процесс в chroot с виртуальной файловой системой /proc, чтобы процесс не мог получить доступ к другим процессам, запущенным на том же хосте. Процесс должен быть запущен под root и иметь полный доступ к файлам в chroot. Также любые изменения в файловой системе должны быть сохранены в chrooted-каталоге.
Возможно ли это вообще?
решение1
Можно смонтировать /proc в среде chroot — см.этот ответдля более подробной информации.
У меня возникли бы опасения, что программа не сможет получить доступ к другим процессам, поскольку большая часть (если не вся) этой информации может быть доступна через /proc (/proc/[номер pid] предоставит вам доступ к ней).
Непонятно, что вы подразумеваете под «изменениями в файловой системе», но если эти изменения касаются файловой системы, за исключением специальных битов, таких как /proc, /dev/ и т. д., то они останутся в chroot.
решение2
Вы можете сделать это с помощью пространств имен Linux. Контейнеры (Docker, lxc) сделаны из них. man unshare
Ваш друг. Остерегайтесь, что злоумышленник может легко скрыться, chroot
если Вы используете его неправильно. Прочтите об этом, прежде чем использовать его. Вас предупредили.