Uird.next

Да. Либо в uird_configs зашивать жестко

Можно сделать так. Кладем в корень файл paranoia, и записываем в него - 0. Ноль означает - отключено, все что больше нуля - включено. Так при желании даже уровень паранойи можно задать.
Где, кроме eval еще могут быть потенциально проблемные места?

Там где дебаг шелл доступ к шелу.

Подробнее напиши. Не понял о чем ты.
Это проблемное место по безопасности имеешь ввиду?

Тогда и qse, qs запрещать тоже надо.

Я думаю параноикам больше всего подойдёт LUKS. Даже grub2 можно разместить на зашифрованном разделе, ибо умеет.

С luks понятно, надо сделать.
А вот по уровням паранойи такая вырисовывается картина.
Уровень - 0. Разрешено все.
Уровень - 1. Запрещаем eval cmdline
Уровень - 2. Запрещаем все шеллы: и дебаг, и qs, и после ненайденных источников.
Уровень - 3. Запрещаем поиск. Все источники должны быть заданы с полными путями от /dev, метки или uuid
Уровень - 4. Запрещаем вообще все параметры из cmdline, используем только дефолтный конфиг.

Чет типа такого :slight_smile: Самый главный вопрос надо ли вообще это все.

Думаю 1 и 2 можно объединить, так как запрещать eval cmdline при возможности использования qs не имеет особого смысла в плане безопасности.

Уровень безопасности, кстати, где будет задаваться?

Планирую делать файлик в корне уирда с цифрой внутри. А вот надо ли к этому какой-то интерфейс городить или просто руками цифру менять - не знаю.

Надо ключ и подпись в какое либо место ложить и определять по нему. Например рядом с uird_configs

Учитывая, что я так и не понял до конца как это должно работать придется тебе, Антон, самому запилить :slight_smile: Можно в uird.next ветку она как раз для экспериментов.

Прикрутил LUKS для разделов. Код в uird.next, но получилось достаточно просто можно в основную ветку перенести тоже. Пробуйте. Никакого особого синтаксиса не требуется, просто указываете источник на разделе c LUKS от /dev/sd…

Хорошая новость)
По uuid не подключится?
Я думаю пока не стоит торопиться добавлять в мастер. Надо вдоль и поперек протестировать. Вообще мне кажется надо все разработки вести в отдельной ветке, типа develop, и в мастер сливать только после тщательных тестов.

По uuid должно, но не проверял.

Надо наверное по ключу тоже запилить.

С ключем вроде тоже нормально получается. Пока только uird.from, остальное не смотрел.
Синтаксис получается такой:

uird.from=/dev/sda1::KEY=/path/keyfile. 

Это будет работать и для ключей встроенныхв uird и для внешних. Сперва проверяется есть ли указанный файл-ключ в uird, если не найдено ищет как обычно это делается в uird. Для встроенных ключей сделал папку keys в корне uird, если положить туда ключ он будет добавлен в корень uird.
У LUKS’а есть 8 слотов для ключей и парольных фраз, то есть можно иметь и пароль и файл-ключ к разделу. Если настроить груб2 на загрузку с LUKS раздела по паролю, то uird сможет подключить этот же раздел по ключу. То есть пароль вводим только один раз.
Есть один всплывший косячек. Пока не знаю как быть. Еcли у нас один из разделов LUKS, а в uird.from источники заданы без указания разделов, то при поиске uird будет пытаться подключать и LUKS разделы тоже, то есть спросит пароль и даже трижды :))
З.Ы. Параллельно пришлось переделать работу с sgn файлами на новый синтаксис. Мешались :). Получилось проще и с точки зрения кода и с точки зрения пользователя. То есть так:

uird.from=/MagOS::SGN=MagOS.sgn 

З.З.Ы по такому же переносу uird.mode в подпараметры uird.changes пока думаю. Будет ли удобнее заменить

uird.mode=changes uird.changes=/changes.img

на

uird.changes=/changes.img::MODE=mount

?

Последнее не совсем понял аналогию. Специальный mode=mount? Или просто не эквивалентный пример?

С Ильфатом обсуждали, что по идее uird.mode можно упразднить.
Сделать как подпараметры к uird.changes

Еще немного правок. LUKS думаю можно тестить.