Запустите nix-оболочку только с установленным текущим каталогом (аналогично контейнеру)

Я ищу способ запустить оболочку с установленными внутри определенными пакетами, но без ненужного доступа к остальной части системы, то есть:

  • Только текущий каталог (pwd) смонтирован, нет доступа к другим частям файловой системы*
  • Доступны только запрошенные пакеты*, плюс оболочка
  • Возможность отключить доступ к сети будет плюсом.
  • Обычно нет доступа к другим частям системы*
    Поэтому я ищу среду, подобную той, которую можно достичь с помощьюdocker: (илиpodman, и т. д...)
            docker run -it -v "$PWD:/pwd" -w /pwd $someImage
    
    или Гикс:
            guix shell --pure --container --network $somePackage
    

*кроме строго необходимых

Возможно ли это сnix? Преимущество будет заключаться в том, что хранилище содержимого пакетов используется совместно с хост-системой, знанием системы и т. д.; и, по сравнению сguix, что у Nix гораздо больше доступных пакетов..

1 ответ

Базовые технологии контейнеров — это chroot и пространства имен, которые вы можете использовать для достижения того, что ищете.

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

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

Другие вопросы по тегам