Да. Либо в uird_configs зашивать жестко
Можно сделать так. Кладем в корень файл paranoia, и записываем в него - 0. Ноль означает - отключено, все что больше нуля - включено. Так при желании даже уровень паранойи можно задать.
Где, кроме eval еще могут быть потенциально проблемные места?
Там где дебаг шелл доступ к шелу.
Подробнее напиши. Не понял о чем ты.
Это проблемное место по безопасности имеешь ввиду?
Тогда и qse, qs запрещать тоже надо.
Я думаю параноикам больше всего подойдёт LUKS. Даже grub2 можно разместить на зашифрованном разделе, ибо умеет.
С luks понятно, надо сделать.
А вот по уровням паранойи такая вырисовывается картина.
Уровень - 0. Разрешено все.
Уровень - 1. Запрещаем eval cmdline
Уровень - 2. Запрещаем все шеллы: и дебаг, и qs, и после ненайденных источников.
Уровень - 3. Запрещаем поиск. Все источники должны быть заданы с полными путями от /dev, метки или uuid
Уровень - 4. Запрещаем вообще все параметры из cmdline, используем только дефолтный конфиг.
Чет типа такого Самый главный вопрос надо ли вообще это все.
Думаю 1 и 2 можно объединить, так как запрещать eval cmdline при возможности использования qs не имеет особого смысла в плане безопасности.
Уровень безопасности, кстати, где будет задаваться?
Планирую делать файлик в корне уирда с цифрой внутри. А вот надо ли к этому какой-то интерфейс городить или просто руками цифру менять - не знаю.
Надо ключ и подпись в какое либо место ложить и определять по нему. Например рядом с uird_configs
Учитывая, что я так и не понял до конца как это должно работать придется тебе, Антон, самому запилить Можно в 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 думаю можно тестить.