gpt4 book ai didi

ubuntu - 使用单个消息将 gksudo 替换为 pkexec

转载 作者:行者123 更新时间:2023-12-04 18:08:00 25 4
gpt4 key购买 nike

我的 GUI 将以用户身份启动。程序中有一个更新机制,它调用具有 root 权限的包装脚本。为此,我使用了 gksudo,直到我意识到它已被 pkexec 取代。

如果我只是用 pkexec 替换 gksudo,它工作得很好。但我想向用户传达自己的信息。因此,我必须在 /usr/share/polkit-1/actions

中修改或生成一个 xml-policy 文件

我的问题是,当我调用

pkexec <my-program>

我会收到此提示,它在 Details-->Action 中指向 org.freedesktop.policykit.exec

enter image description here

我是否必须将一个action id条目放入这个 xml 文件 (org.freedesktop.policykit.exec) 或者我是否必须创建我自己的 .将名为 com.myStuff.updater.policy 的策略文件放入 /usr/share/polkit-1/actions?

  <vendor>myStuff</vendor>
<vendor_url>http://myStuff.com</vendor_url>
<icon_name>myStuff</icon_name>

<action id="com.myStuff.updater">
<description>My description</description>
<message>My message</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>auth_self_keep</allow_active>
</defaults>
<annotate key="com.myStuff.updater.exec.path">/my/path/to/wrapper.sh</annotate>
<annotate key="com.myStuff.updater.exec.allow_gui">true</annotate>
</action>

或者我应该使用 pkexec 在我的 .desktop 文件中调用我的整个应用程序吗?

最佳答案

我强烈建议创建您自己的 .policy 文件并单独保留 org.freedesktop.policykit.exec,原因如下:

  • pkexec 在终端、.desktop 文件等某些情况下无法按预期工作。这实际上是一个关于双叉的 Gnome 错误.

  • 使用您自己的 .policy 文件,您可以随意编辑它,甚至可以为您的脚本配置无密码 root 权限!这是一个非常有趣的功能!

  • 您可以简单地使用它的名称调用您的脚本,就像任何其他命令一样,不需要在它前面添加 pkexecsudo 或任何它可以在任何地方工作的东西。

您可以使用 gparted 的策略文件作为模板。

关于ubuntu - 使用单个消息将 gksudo 替换为 pkexec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21990213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com