Большая цель:
Написание пакетного менеджера пользователей, предназначенного для школьной среды.
Проблема
Я хочу написать пользователяМенеджер, который использует графический интерфейс для добавления, управления и удаления пользователей в аудиториях.Программа, над которой я работаю: ltsp-manager .
До сих пор все управление пользователями осуществлялось с помощью команд bash.Из скрипта Python.Это означает, что весь графический интерфейс должен запускаться с правами root, и все вручную.
Цель
Создать службу Dbus, которая обрабатывает все управление учетными записями, и позволить графическому интерфейсу работать как обычный пользователь, требующий парольвремя от времени.
Я оглянулся и обнаружил, что в org.freedesktop.Accounts
уже есть служба , выполняющая большую часть функций, которые я хочу сделать.Однако, это также испытывает недостаток в некоторых.Что-то, чего совершенно не хватает, - это управление группами.
Какой хороший способ использовать функциональность org.freedesktop.Accounts
и добавить некоторые дополнительные функции / методы?
Пока мысли
Вот что мне пришло в голову:
- просто переделать все, что означает много дублирующихся работ.
- скопировать интерфейсы и написать функции, которые вызывают исходные
- написать сервис, который реализует только дополнительные функции, не касаясь оригинальных.Затем клиент будет использовать исходный сервис и только что написанный.
Все мои эксперименты по тестированию выполняются с python3
и pydbus
, что, по-видимому, является лучшим выбором среди многих.
Я никогда не писал реальный сервис dbus - хотя эксперименты показывают некоторые результаты в d-feet
.Этот вопрос на самом деле не является тем, что мне нужно, чтобы напечатать тип вопроса, а скорее вопросом наилучшей практики.