тюрьма процесса chroot с произвольным каталогом, установленным как root при каждом запуске - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь запустить команду, которая должна быть ограничена одним каталогом и выполняется в функции оболочки из веб-приложения.

Моя цель - запустить эту программу, но ограничить ее одним каталогом. Этот каталог будет меняться каждый раз, когда я хочу запустить программу, и несколько экземпляров должны иметь возможность работать в разных каталогах одновременно.

Я посмотрел на chroot, и кажется, что файловую систему нужно создавать каждый раз. Я ищу более временное решение, которое принимает желаемый корневой каталог и не требует, чтобы я копировал файлы повсюду или занимался странной сборкой вещей.

1 Ответ

0 голосов
/ 10 ноября 2019

Скорее всего, вам понадобятся контейнеры .

Контейнеру требуется миллисекунды для запуска, и каждый раз при запуске он создает полную тюрьму для chroot. Команда, подобная docker run --rm --volume /var/chroot/jail/whatever:/workdir ubuntu stat /workdir, будет запускать stat в каталоге chroot jail, а все среды будут последним выпуском Ubuntu. Это тогда сломает тюрьму chroot. Повторный запуск создаст совершенно новую тюрьму.

Вам нужно будет создать свое веб-приложение в виде образа докера поверх любой нужной вам тюрьмы (Ubuntu, CentOS и т. Д.), Что означает настройку системы сборки насоздать такое изображение.

...