3

或者至少是代码的一部分。本质上,我需要应用程序能够写入,/etc但作为一个仅根访问权限的目录,应用程序需要对该目录具有根或假根访问权限。我想创建并保存文件,~/Desktop以便用户可以使用终端将其移动到 /etc 但我放弃了这种方法有两个原因:

  1. 该应用程序旨在消除使用终端的需要(这也是为什么,我不希望用户需要运行应用程序$sudo APPNAME
  2. 让应用程序将文件拖放到桌面需要它知道完整路径,'~' 似乎不起作用并返回错误。
4

1 回答 1

3

如果您想与操作系统更清晰地集成,我建议您尝试使用PolicyKit

有多种与之交互的方式:

  1. 使用 DBus。你可以在这里找到一个很好的例子。
  2. 通过 GObject 自省使用 Polkit 模块。这是一个例子。

在这两种情况下,您都需要在 /usr/share/polkit-1/actions 上为您的应用程序安装特定的操作配置(或使用已经存在的配置,如 exec)。

以这种方式实现它可能会花费您更多的精力,但在我看来,它比子进程更干净,并且可以更好地与操作系统和桌面环境集成(例如,密码请求对话框由 DE 提供) .

于 2013-01-06T19:06:35.487 回答