Песочница¶
zoryn запускает скрипты из .gear/up.d/ и .gear/merge-up.d/ в песочнице для защиты чувствительных файлов (~/.ssh, ~/.gnupg, ~/.config) от ненадёжных скриптов из репозитория.
Установка¶
Bubblewrap для лёгкой изоляции:
Для гибридного режима (bwrap + chroot hasher с зависимостями сборки):
Режимы запуска¶
| Режим | Описание |
|---|---|
hybrid | bwrap + chroot hasher — использует зависимости сборки пакета (по умолчанию, если установлены оба инструмента) |
bwrap | Только bubblewrap — лёгкая изоляция через namespaces, использует системные пути хоста |
direct | Без изоляции — полный доступ к файловой системе (не рекомендуется) |
Режим определяется автоматически: hybrid, если доступны bwrap и hsh; bwrap, если только bwrap; иначе direct.
Если настроенный режим недоступен, zoryn запросит подтверждение перед запуском хуков без изоляции. В неинтерактивном режиме выполнение отклоняется. Используйте --no-sandbox для пропуска подтверждения и запуска без песочницы.
Конфигурация¶
В ~/.zoryn:
[sandbox]
runner = "hybrid"
path = "/usr/bin:/bin"
[sandbox.chroot]
prepare = "gear-hsh --commit -- --mountpoints=/proc,/dev/pts,/dev/kvm --lazy-cleanup --build-srpm-only"
[sandbox.hasher]
workdir = "~/hasher"
Для отдельного проекта (~/.config/zoryn/projects.d/<project>.toml):
[sandbox]
runner = "hybrid"
[sandbox.chroot]
prepare = "gear-hsh --commit -- --mountpoints=/proc,/dev/pts,/dev/kvm --lazy-cleanup --build-srpm-only"
Дополнительные пакеты¶
В .gear/version-up:
Пакет git ставится всегда. Пакеты из этой секции ставятся после подготовки chroot через hsh-install.
Флаги CLI¶
zoryn up --sandbox=hybrid # использовать hybrid (по умолчанию)
zoryn up --sandbox=bwrap # bubblewrap с путями хоста
zoryn up --no-sandbox # полностью отключить песочницу
Как работает hybrid¶
В режиме hybrid hasher готовит chroot со сборочными зависимостями пакета (из spec-файла), а bwrap запускает скрипты, используя пути из этого chroot. Это даёт и изоляцию файловой системы, и доступ к нужным инструментам без setuid-привилегий во время выполнения.