linux - Vala 和 PolicyKit

标签 linux permissions dbus vala

我正在 Vala 中创建一个简单的基于 GTK+ 的应用程序,它应该能够写入系统目录,因此它需要 root 访问权限。我意识到授予完全根访问权限不是一个好主意,因此我需要一种方法来获得临时权限。

理论上,PolicyKit D-Bus 服务是完成这项工作的工具,但我不知道如何使用它,更不用说在 Vala 代码中了。任何见解将不胜感激。

更新: 我做了一些进一步的挖掘。我的出发点是 this .所以基本上我需要的是找出如何使这些解决方案适应 PolicyKit。为此,需要找到PolicyKit的D-Bus接口(interface)。我找到了here . (奇怪的是,我没有在本地 /usr/share/dbus-1/interfaces 文件夹中找到它。)但现在我不知道如何继续。

最佳答案

polkit Reference Manual包含一些很好的信息,包括对 writing polkit applications 的高级概述.

与其直接使用 D-Bus 接口(interface),不如考虑使用 libpolkit-gobject-1图书馆。您可以直接使用 GIR,或使用 vapigen 生成一个 VAPI(我会推荐)。 Here是我刚刚生成的。我不太熟悉 API,但是使用 C API 引用作为引用来弄清楚 Vala API 非常容易。

关于linux - Vala 和 PolicyKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15042074/

相关文章:

permissions - 如何在 IIS 6 中允许用户回收应用程序池?

c - 在 C 宏中执行算术运算

c - 执行系统调用时出现问题,系统调用未向内核显示

c - 为什么这个 linux 伪终端程序不起作用?

python - 通过 linux 发送格式化的 html 邮件

c++ - Windbus 示例应用程序无法启动(无法解析服务器地址错误)

hadoop - distcp - HDFS 文件的访问执行权限错误

java - 设置创建的目录的权限以将文件复制到其中

c++ - Qt DBus : register object that implements multiple interfaces

c - dbus - 在接口(interface) NULL 上将对象注册到远程