• M mos-auth
  • Информация о проекте
    • Информация о проекте
    • Активность
    • Метки
    • Участники
  • Репозиторий
    • Репозиторий
    • Файлы
    • Коммиты
    • Ветки
    • Теги
    • Участники
    • Диаграмма
    • Сравнение
  • Задачи 3
    • Задачи 3
    • Список
    • Доски
    • Спринты
  • Запросы на слияние 0
    • Запросы на слияние 0
  • CI/CD
    • CI/CD
    • Конвейеры
    • Задания
    • Расписания
  • Развертывания
    • Развертывания
    • Окружения
    • Релизы
  • Пакеты и реестры
    • Пакеты и реестры
    • Реестр пакетов
    • Реестр контейнеров
  • Мониторинг
    • Мониторинг
    • Метрики
    • Инциденты
  • Аналитика
    • Аналитика
    • Поток ценности
    • CI/CD
    • Репозиторий
  • Wiki
    • Wiki
  • Сниппеты
    • Сниппеты
  • Активность
  • Диаграмма
  • Создать новую задачу
  • Задания
  • Коммиты
  • Доски с задачами
Свернуть панель
  • MOS
  • Исходные коды
  • mos-auth
  • Задачи
  • #15
Закр.
Открыто
Задача созд. Ноя 05, 2024 пользователемsgakerru@sgakerruВладелец

Улучшения механизма конфигурации sddm-темы

Текущий механизм

В данный момент при включении механизм следующий:

  1. Делается полный бэкап /etc/sddm.conf в /var/lib/mos-auth/sddm.conf.mos-auth-bak.

  2. Делается бэкап настроек [Theme] Current, [Users] MinimumUid, [Users] MaximumUid в /var/lib/mos-auth/mos-auth-old-settings.

  3. Эти параметры записываются новыми значениями в /etc/sddm.conf.

4*. При изменении значений в sddm-kcm, он переносит эти значения (текущую тему и диапазон UID) в /etc/sddm.conf.d/kde_settings.conf.

При выключении:

  1. Просматриваются файлы /etc/sddm.conf и /etc/sddm.conf.d/kde_settings.conf на наличие параметров [Theme] Current, [Users] MinimumUid, [Users] MaximumUid.

  2. Для каждого найденного параметра идет попытка восстановления значения из /var/lib/mos-auth/mos-auth-old-settings.

  3. Либо просто удаляется параметр из /etc/sddm.conf и /etc/sddm.conf.d/kde_settings.conf, если нет сохраненного значения в /var/lib/mos-auth/mos-auth-old-settings.

  4. Удаляется /var/lib/mos-auth/mos-auth-old-settings.

Недостатки текущего механизма

  1. Значения из /etc/sddm.conf автоматически переносятся в /etc/kde_settings.conf при использовании sddm-kcm.

  2. Сам факт использования /etc/sddm.conf - нерекомендуемая практика.

  3. Как следствие, непрозрачная конфигурация - т.е просто смотря на файлы в /etc/sddm.conf и /etc/sddm.conf.d/* - неочевидно, какие параметры относятся к mos-auth, а какие нет. И соответственно, их легко перезаписать другими и потерять оригинальные значения из mos-auth.

Предполагаемый новый механизм

Можно реализовать настройки в виде drop-in конфигурации в /etc/sddm.conf.d/80-mos-auth.conf. Таким образом, прозрачно понятно, какие настройки относятся к mos-auth. Необходимости редактировать этот файл у пользователя не будет, а переопределения будут задаваться в более приоритетных файлах.

Однако, тогда необходимо иметь дело с проблемами переопределяющих файлов:

  1. /etc/sddm.conf - необходимо также, как и сейчас, сохранять текущие значения из него в бекап-файл, а после удалять параметры из /etc/sddm.conf.

  2. /etc/sddm.conf.d/kde_settings.conf - аналогично, видимо нужно делать сохранение в отдельный бекап-файл, а после удалять параметры из /etc/sddm.conf.d/kde_settings.conf.

  3. Любой более приоритетный файл пользователя в /etc/sddm.conf.d - вероятно пользователь тогда знает, что он делает, нужно выдать ошибку при попытке активации через mos-auth-config enable и оповестить об этом пользователя, что активации mos-auth мешает более приоритетный файл в /etc/sddm.conf.d.

Одной из проблем также является тот факт, что sddm-kcm при любом изменении в сохранит все значения формы в файл /etc/sddm.conf.d/kde_settings.conf.

Таким образом, при деактивации mos-auth нужно просматривать этот файл и удалять из него те значения, которые совпадают с mos-auth, т.е

'Current=mos-auth'
'MaximumUid=1000000000'
'MinimumUid=10000000'

Однако, не трогать их, если они такими были ДО активации mos-auth (т.е пользователь их поставил намеренно еще до активации mos-auth).

Всегда восстанавливать значения из бекап-файла для /etc/sddm.conf.d/kde_settings.conf вероятно не стоит, поскольку уже при активированной mos-auth, пользователь мог менять через sddm-kcm диапазон UID и этот диапазон можно сохранить после деактивации mos-auth, даже если до активации этот диапазон был иным.

Текущие выводы

Возможно, стоит повременить с этим улучшением, пока не определится статус улучшений sddm-kcm (https://hub.mos.ru/mos/dev-tasks/features/-/issues/66).

Например, если sddm-kcm будет сохранять только переопределяющие настройки, тогда при деактивации mos-auth не придется менять значения в этом файле, достаточно будет только удаления /etc/sddm.conf.d/80-mos-auth.conf для деактивации mos-auth.

Отредактировано Ноя 05, 2024 пользователем sgakerru
Ответственный
Назначить
Оценка трудозатрат