ri_gilfanov
@ri_gilfanov
Web- and desktop-developer

Как реализовать и тестировать greeter для LightDM на Python?

LightDM — desktop manager на Си, позволяющий пользователям запускать графическое окружение рабочего стола (desktop environment) в операционных системах GNU/Linux.

Архитектура LightDM модульная:
  • есть демон (daemon), отвечающий за авторизацию и запуск окружения рабочего стола;
  • есть greeter — графическое приложение с окном приветствия и формой авторизации пользователя GNU/Linux.

Greeter`ов существует много, но у меня задача написать на Python свой greeter, взаимодействующий с демоном.

Документация описывающая API демона LightDM не очень хороша и напоминает скупой справочник по модулям и функциям с не до конца понятным примером простого greeter`а на языке Си (см. тут в разделе Description).

Так же в исходниках LightDM на GitHub я нашёл пример тестового гритера на Python, написанный в функциональном стиле и без какой-либо документации или комментариев.

Помимо этого, на GitHub поиск репозиториев по запросу "LightDM language:python" дал другие примеры гритеров на Python (в основном, заброшенные):

Тестовый пример из исходников LightDM, в сравнении с другими примерами, выглядит неоправданно переусложнённым. Там реализована вся функциональность, явно запрашиваются переменные окружения Linux и зачем-то используется unix сокет, который как-то видимо надо указывать и для демона.

Кажется во всех примерах на Python используются сигналы GObject, которые дёргают методы API, а за авторизацию и открытие сессии отвечают сразу несколько методов API.

Но и по исходникам сторонних greeter`ов, я не до конца понимаю:
  • Как происходит авторизация и валидация пароля пользователя, а так же открытие сессии? Особенно вопросы вызывает валидация пароля, который вроде обозначается словом prompt вместо password. При этом, часто фигурирует метод show_prompt, что странно для валидации.
  • Можно ли тестировать взаимодействие greeter`а с демоном от обычного пользователя? Или надо после каждого изменения править системные конфиги и перезагружать машину?
  • Вопрос задан
  • 221 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы