当活动的 display/vt 与它们运行的​​位置不同时,某些命令会失败,如何修复/解决该问题?

当活动的 display/vt 与它们运行的​​位置不同时,某些命令会失败,如何修复/解决该问题?

DISPLAY=:0这些小程序在( fgconsole7)处的 X 上运行。

网络小程序
相关nm-applet/NetworkManager运行此命令sleep 10;nmcli nm enable false;beep(您必须连接到互联网,它将断开连接)并快速按“Ctrl+Alt+F1”转到vt1。它失败了:

“**(进程:1388670):警告**:启用/禁用网络时出错:无权启用/禁用网络”

CPU频率
indicator-cpufreq与运行此命令 相关sleep 10;cpufreq-selector -g powersave;beep并快速按“Ctrl+Alt+F1”转到 vt1
它将失败并显示此消息

“调用 SetGovernor 时出错:调用者未经授权”

如何修复它?
(如果您知道为什么会发生这种情况,我也想知道)
(作为普通用户,如果在右侧显示屏上,我们可以发出这些命令,所以如果可能的话,我更喜欢不需要 sudo 的答案)

PS.: beep需要sudo modprobe pcspkr
当在另一个 X(例如sudo -k X :1 & sleep 5;xterm -display :1)上运行时,它们也会失败并出现相同的错误消息。

答案1

你有PolicyKit。

PolicyKit 是一个客户端-服务器系统,用于控制谁有权做什么。受信任的程序(例如 NetworkManager)通过远程过程调用询问 PolicyKit 调用它的用户是否有权执行 xe 所请求的操作。

由授权服务器处理的操作规则位于该/usr/share/polkit-1/actions目录中。规则可以说明它们如何应用于所有用户,如何应用于登录到非活动虚拟终端的本地虚拟终端的用户,以及如何应用于登录到非活动虚拟终端的本地虚拟终端的用户。活动的虚拟终端。这三者可能有所不同。

显然,系统上的规则规定,这些各种特权任务只能由登录到活动虚拟终端的用户执行。因此,如果您不希望出现这种情况,请更改规则。

进一步阅读

  • polkit。 Ubuntu Trusty 手册页。 8. 2010. Canonical 有限公司

相关内容