
Я пытаюсь настроить selinux для загрузки системы Debian в реальном времени.
SELinux неработоспособен из-за обильных изменений во время сборки и конфигурации системы и требует перемаркировки всей файловой системы. Это должно быть выполнено при сборке с файловой системой как распакованным файлом squashfs, изнутри chroot или systemd-nspawn или из хостовой системы.
Пока не найдено способа успешно это сделать. Файл /etc/selinux/default/contexts/files/file_contexts.subs_dist должен создавать псевдонимы для целевых файловых систем, находящихся за расположениями файловых систем, но попытка использовать его для перенаправления файловой системы хоста на распакованную систему squash во время перемаркировки SELinux не сработала: SELinux продолжил перемаркировку файловой системы хоста, а файловая система squashfs была указана как неизвестный тип файла.
Есть ли простой способ переименовать файловую систему для SELinux в squashfs?
решение1
На данный момент мне не удалось найти решение этой проблемы, хотя я уверен, что можно будет запустить SELinux в или на записываемой распакованной файловой системе squashfs.
В противном случае, одно из решений для сборки в реальном времени — это сборка вручную с использованием debootstrap, без isolinux на этом этапе и, следовательно, без squashfs или iso, добавление ядра и пакетов; затем загрузка этого записываемого Debian на USB-накопитель или загрузка в виртуальном госте; затем запуск перемаркировки SELinux для файловой системы. После этого процесс сборки можно продолжить с isolinux на squashfs, iso и обычную, не записываемую гибридную систему.
Записываемый метод описан здесь:
https://vdmit.org/linux/debian-live-usb-debootstrap.html
Предпочтительная, непереписываемая гибридная ручная сборка — ручной метод, который в противном случае пытались автоматизировать с помощью сценариев сборки в реальном времени Debian — описана здесь:
https://l3net.wordpress.com/2013/09/21/how-to-build-a-debian-livecd/
Единственным недостатком этого метода является то, что на этапе debootstrap должна быть представлена полная конфигурация, как и в загружаемой гибридной системе, чтобы маркировка была корректной, и что по-прежнему не существует метода перемаркировки распакованного squash, что я считаю неприемлемым, поскольку squashfs может потребоваться редактировать после сборки.
Дополнительные объекты, импортируемые с помощью config-hooks, конечно, требуют соответствующих или пользовательских контекстов или разрешающих контекстов, помеченных после загрузки, но это второстепенная задача, требующая небольшого потребления оперативной памяти.
В противном случае это все еще открытый вопрос.