Изолированная среда сборки (введение)
Зачем:
- "Чистая" хост-система
- "Чистое" и управляемое сборочное окружение
- Произвольное базовое хранилище
- Безопасность сборки (для хост-сисемы)
В Fedora и Debian:
ALT Hasher
(из описания)
- Пользователь C порождает среду (aptbox) для работы с apt.
- Полностью удаляется сборочная среда, возможно оставшаяся от предыдущей сборки. Удаление происходит последовательно в чруте пользователем U, в чруте пользователем R и, наконец, пользователем C.
- Пользователь C создаёт каркас новой сборочной среды, состоящий из вспомогательных каталогов и вспомогательных статически слинкованных программ (ash, find и cpio). С помощью вспомогательной привилегированной программы создаётся фиксированный набор устройств, достаточной для нормального функционирования сборочной среды и при этом не несущий угрозы host-системе.
- Порождается базовая установочная среда, представляющая собой набор средств, необходимых для штатной установки пакетов в эту среду. Пользователь C с помощью aptbox определяет набор пакетов, необходимых для порождения базовой установочной среды. Пользователь R с помощью вспомогательных статически слинкованных программ распаковывает эти пакеты.
- Порождается базовая сборочная среда, представляющая собой набор средств, необходимых для сборки любого пакета. Пользователь C с помощью aptbox определяет набор пакетов, пользователь R устанавливает их.
- Проверяется исходный пакет.
- Порождается сборочная среда для данного пакета. Пользователь U извлекает сборочные зависимости пакета, пользователь C с помощью aptbox определяет набор пакетов для установки, и пользователь R устанавливает их.
- Пользователь U осуществляет сборку пакета и проверку результатов сборки.
Такая схема призвана исключить атаки вида U->R, U->C, R->C, а также все виды атак на root.
(установка и настройка hasher)
- Поставьте hasher:
# apt-get install hasher
- Добавьте аккаунт, под которым вы работаете, в hasher:
# hasher-useradd <USER>
Больше никаких действий от имени root производить не надо.
Выйдите из системы (logout) и зайдите обратно (hasher-useradd изменяет список групп, в которых состоит пользователь).
- Создайте рабочую директорию для hasher:
$ mkdir ~/hasher
Сборка:
$ hsh ~/hasher path/to/foobar-0.0-alt0.src.rpm
Результат сборки доступен в ~/hasher/repo.
Для наблюдения за процессом используйте ключ -v.