如何查看软件使用了哪些 pkaction

如何查看软件使用了哪些 pkaction

所以,我有一个软件在启动时总是要求输入密码。我想在运行这个软件时不gksu每次都弹出这个密码提示。

我尝试的第一个方法是将其路径添加到 sudoers。但是,这没有用。后来我发现有一种叫做 policykit 的东西,如果某个程序想要使用某些 policykit 操作,它总是会提示用户输入密码(sudoers 对此没有影响)。

我遵循了指南如何防止 PolicyKit 要求输入密码?,但它仍然不起作用,所以我想我可能添加了错误的操作。

问题:我如何才能看到pkaction我的程序使用了什么,以便我可以将其输入到我的.pkla 文件中?

答案1

Ask Ubuntu 有这个答案(如何配置 pkexec 不要求输入密码?) 比您之前找到的链接更接近您的需要。

作为查找应用程序的快速示例,我将使用自己的脚本进行说明。我想用 替换gksu已弃用的 ,pkexec所以我编写了一个名为佐治亚州立大学

我援引佐治亚州立大学从命令行使用:

gsu pkexec

注意细节下拉箭头。单击它将显示以下内容:

gsu pkexec 详细信息

在我的例子中巴基斯坦控制者组织.gnome.gedit。我将在下一个示例中使用它,您可以将其替换为您自己的:

gsu pexec 当局

如果您希望在运行时不输入密码,请进行以下设置:

  <allow_any>yes</allow_any>
  <allow_inactive>yes</allow_inactive>
  <allow_active>yes</allow_active>

就我个人而言,我不喜欢反复输入密码,但不会将其更改gedit为在使用 更改根文件时从不询问密码pkexec。但是,我希望它在给定会话中多次运行时不会反复询问密码。您可以使用 执行此操作,sudo并且可以将时间从 10 分钟延长到 120 分钟,就像我在系统上所做的那样。我希望策略套件具有类似的功能。

答案2

绕过政策工具包授权。在缺乏进一步细节的情况下,我最好的建议是不要这样做。

是因为它可能,

机制需要声明一组操作才能使用 polkit。操作对应于客户端可以请求机制执行的操作,并在机制安装到 /usr/share/polkit-1/actions 目录中的文件中定义。

pkaction --verbose

将生成有关所有 policykit 操作的详细输出。这在查看本地配置文件时很有用。您可以将此输出重定向到文本文件,以便以后以常规方式进行查看>later.review.txt

这些配置文件位于发出命令时列出的目录中sudo ls /var/lib/polkit-1/localauthority/

10-vendor.d  20-org.d  30-site.d  50-local.d  90-mandatory.d

挖掘并找到与之对应的 .pkla 文件您的未识别软件Action=。由于没有任何有用的信息,我将假装它是 Unity Greeter。我们可以查看以该命令 开头的行,sudo grep "Action=" /var/lib/polkit-1/localauthority/10-vendor.d/unity-greeter.pkla结果为

Action=org.freedesktop.NetworkManager.enable-disable-network;org.freedesktop.NetworkManager.enable-disable-wifi;org.freedesktop.NetworkManager.enable-disable-wwan;org.freedesktop.NetworkManager.enable-disable-wimax;
Action=org.freedesktop.NetworkManager.sleep-wake
Action=org.freedesktop.NetworkManager.wifi.share.protected;org.freedesktop.NetworkManager.wifi.share.open
Action=org.freedesktop.NetworkManager.settings.modify.own;org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.settings.modify.hostname
Action=org.freedesktop.NetworkManager.use-user-connections
Action=org.freedesktop.NetworkManager.network-control

欲了解更多信息,请参阅最新的 polkit 参考手册这里并且可以找到有关 systemd 的相关信息这里

正如@muru 指出的那样,还有一个相关的问答这里

资料来源:

https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html

如何防止 PolicyKit 要求输入密码?

相关内容