【发布时间】:2019-04-21 03:18:17
【问题描述】:
更大的目标:
编写针对课堂学校环境的批处理用户管理器。
问题
我想编写一个用户管理器,它使用 GUI 来为课堂环境添加、管理和删除用户。我正在开发的程序是ltsp-manager。
到目前为止,所有的用户管理都是通过执行 bash 命令来完成的。来自 python 脚本。这意味着所有的 GUI 都必须以 root 身份运行,并且一切都是手工制作的。
目标
创建一个处理所有帐户管理的 Dbus 服务,并让 GUI 以不时需要密码的普通用户身份运行。
我环顾四周,发现在org.freedesktop.Accounts 中已经有一个service 在做很多我想做的功能。但是,它也缺少一些。完全缺少的是组的管理。
使用org.freedesktop.Accounts 功能并添加一些附加功能/方法的好方法是什么?
到目前为止的想法
我想到的事情包括:
- 只需重做所有工作 - 意味着大量重复工作。
- 复制接口并编写调用原始接口的函数
- 编写一个只实现附加功能而不触及原始功能的服务。然后客户端将使用原始服务和新编写的服务。
我所有的测试实验都是用python3 和pydbus 完成的,这似乎是许多人中最好的选择。
我从未编写过真实世界的 dbus 服务 - 尽管实验确实在 d-feet 中显示了一些结果。这个问题实际上并不是我需要输入什么类型的问题,而是一个最佳实践问题。
【问题讨论】:
标签: python-3.x dbus user-accounts freedesktop.org