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

这些小程序在DISPLAY =:0(fgconsole 7)的X上运行.

NetworkApplet
与nm-applet / NetworkManager相关,运行此命令sleep 10; nmcli nm enable false; beep(你必须连接到互联网,它将被断开)并快速点击“Ctrl Alt F1”转到vt1.它失败了:

“** (process:1388670): WARNING **: Error enabling/disabling
networking: Not authorized to enable/disable networking”

CpuFrequency
与indicator-cpufreq相关运行此命令sleep 10; cpufreq-selector -g powersave; beep AND fastly hit“Ctrl Alt F1”转到vt1
它会因此消息而失败

“Error calling SetGovernor: Caller is not authorized”

怎么解决?
(如果你知道为什么会这样,我也想知道)
(作为普通用户,如果在正确的显示器上我们可以发出这些命令,所以我更喜欢一个不需要sudo的答案,如果可能的话)

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

解决方法:

你有PolicyKit.

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

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

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

进一步阅读

> polkit.Ubuntu Trusty手册页. 8. 2010. Canonical Ltd.

上一篇:如何撤销对mysql中新用户的*.*的访问?


下一篇:linux – 如何让用户创建目录,尽管不创建子目录