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`а с демоном от обычного пользователя? Или надо после каждого изменения править системные конфиги и перезагружать машину?
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YLab Тольятти
от 90 000 до 150 000 руб.
Algomost Москва
от 150 000 руб.
DataFork Москва
от 100 000 до 140 000 руб.