これらのアプレットはX上でDISPLAY=:0
(fgconsole
7)で実行されています。
ネットワークアプレット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
ディレクトリにあります。ルールでは、すべてのユーザーに適用する方法、アクティブな仮想端末ではないローカル仮想端末にログオンしているユーザーに適用する方法、アクティブな仮想端末ではないローカル仮想端末にログオンしているユーザーに適用する方法を指定できます。はアクティブな仮想端末。3 つすべてが異なる場合があります。
明らかに、システムのルールでは、これらのさまざまな特権タスクは、アクティブな仮想端末にログオンしているユーザーのみが実行できるようになっています。したがって、そうならないようにしたい場合は、ルールを変更してください。
参考文献
polkit
. Ubuntu Trusty man ページ。2010 年 8 月。Canonical Ltd.