2

В Linux я хотел бы иметь возможность запускать что-либо из командной строки в "безопасной" среде, т.е. быть уверенным, что он не может читать или записывать какие-либо файлы на моем компьютере, и даже лучше, если он не может получить доступ к сети ,

Я думал о создании пользователя с правами чтения только в текущей папке (и больше нигде), и su для этого пользователя, чтобы запустить команду, это будет работать? А как насчет сети?

Чтобы ты делал ?

2 ответа2

3

смотреть на

  • Chroot Jails (Schroot популярен)
  • UML (несколько сложнее)

Чтобы действительно ограничить доступ к периферии, требуется полная / гипервизированная виртуализация.

  • QEMU / QEMU-KVM для полной изоляции

Использование debootstrap (для дистрибутивов на основе Debian) будет хорошей отправной точкой

PS. BSD и Solaris изначально поддерживают зоны/контейнеры, которые выполняют именно этот тип изоляции. Solaris, без сомнения, превосходит (с полной виртуализацией сетевой подсистемы вызов Crossbow), но, к сожалению, Oracle убил дистрибутив OpenSolaris.

Вы должны быть в состоянии что-то сделать на основе Nexenta (пользовательская область Debian на ядре Solaris) или IllumOS (форк, основанный на последних опубликованных OpenSolaris), но я ожидаю, что BSD будет ближе к Linux.

0

То, что вы хотите, лучше всего достигается с помощью обязательного контроля доступа, такого как AppArmor. Какой-то тип MAC в настоящее время включен почти в каждый дистрибутив, но обычно с довольно либеральными разрешениями, поэтому вы добавляете свои собственные настраиваемые ограничения в соответствии со своими потребностями.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .