アクティブディスプレイ/ vtが実行中の場所と異なる場合、一部のコマンドは失敗します。この問題をどのように修正/解決できますか?

アクティブディスプレイ/ vtが実行中の場所と異なる場合、一部のコマンドは失敗します。この問題をどのように修正/解決できますか?

DISPLAY=:0このアプレットはfgconsole(7)のXで実行されます。

ネットワークアプレット
関連nm-applet/NetworkManagerこのコマンドを実行しsleep 10;nmcli nm enable false;beep(インターネットに接続している必要があり、切断されます)、すばやく「Ctrl + Alt + F1」を押してvt1に進みます。次のように失敗します。

"**(プロセス:1388670):警告**:ネットワークの有効化/無効化中にエラーが発生しました。ネットワークを有効化/無効化する権限がありません。

CPU周波数
indicator-cpufreqsleep 10;cpufreq-selector -g powersave;beepこのコマンドを実行し、「Ctrl + Alt + F1」をすばやく押してvt1に移動すると、
このメッセージで失敗します。

"SetGovernor呼び出しエラー:呼び出し元は認証されていません。"

どうすれば修正できますか?
(これがなぜ起こるのかを知っていれば私も知りたいです。

PS:必須 beepsudo modprobe pcspkr
、他のX(たとえば)sudo -k X :1 & sleep 5;xterm -display :1で実行されたときに同じエラーメッセージで失敗します。

答え1

PolicyKitがあります。

PolicyKitは、誰が何をする権限を持っているかを制御するためのクライアントサーバーシステムです。信頼できるプログラム(NetworkManagerなど)は、リモートプロシージャコールを介してPolicyKitを呼び出すユーザーに、xeが要求した操作を実行する権限があるかどうかを尋ねます。

承認サーバーで処理される作業規則は/usr/share/polkit-1/actionsこのディレクトリにあります。ルールは、すべてのユーザーに適用する方法、非アクティブ仮想端末であるローカル仮想端末にログインしたユーザーに適用する方法、および非アクティブ仮想端末であるローカル仮想端末にログインしたユーザーに適用する方法を説明できます。はいアクティブな仮想端末。これら3つは異なる場合があります。

明らかに、システムの規則によれば、これらのさまざまな特権タスクは、アクティブな仮想端末にログインしているユーザーだけが実行できます。したがって、これが発生しないようにするには、ルールを変更してください。

追加読書

  • polkit。 Ubuntu Trustyのマニュアルページ。 8. 2010.(株)キャノニカル

関連情報