當活動的 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 有限公司

相關內容