Einige Befehle schlagen fehl, wenn sich das aktive Display/VT von dem unterscheidet, auf dem sie ausgeführt werden. Wie kann das behoben/umgangen werden?

Einige Befehle schlagen fehl, wenn sich das aktive Display/VT von dem unterscheidet, auf dem sie ausgeführt werden. Wie kann das behoben/umgangen werden?

Diese Applets laufen auf X unter DISPLAY=:0( fgconsole7).

NetzwerkApplet
Bezogen auf nm-applet/ NetworkManagerführen Sie diesen Befehl aus sleep 10;nmcli nm enable false;beep(Sie müssen mit dem Internet verbunden sein, die Verbindung wird getrennt) UND drücken Sie schnell "Strg+Alt+F1", um zu vt1 zu gelangen. Es schlägt fehl mit:

"** (Prozess:1388670): WARNUNG **: Fehler beim Aktivieren/Deaktivieren des Netzwerks: Keine Berechtigung zum Aktivieren/Deaktivieren des Netzwerks"

CPU-Frequenz
indicator-cpufreqFühren Sie diesen Befehl aus sleep 10;cpufreq-selector -g powersave;beepund drücken Sie schnell "Strg+Alt+F1", um zu vt1 zu gelangen.
Es wird mit dieser Meldung fehlschlagen

„Fehler beim Aufruf von SetGovernor: Anrufer ist nicht autorisiert“

Wie man es repariert?
(wenn Sie wissen, warum das passiert, würde ich es auch gerne wissen)
(als normaler Benutzer können wir diese Befehle auf der richtigen Anzeige ausführen, daher bevorzuge ich nach Möglichkeit eine Antwort, die kein sudo erfordert)

PS.: beeperfordert. sudo modprobe pcspkr
Sie schlagen auch fehl, wenn sie auf einem anderen X (zB sudo -k X :1 & sleep 5;xterm -display :1) ausgeführt werden, mit den gleichen Fehlermeldungen.

Antwort1

Sie haben PolicyKit.

PolicyKit ist ein Client-Server-System zur Kontrolle darüber, wer was tun darf. Ein vertrauenswürdiges Programm wie NetworkManager fragt PolicyKit über einen Remote Procedure Call, ob der Benutzer, der es aufgerufen hat, berechtigt ist, die von xe angeforderte Aktion auszuführen.

Die Regeln für Aktionen, die vom Autorisierungsserver verarbeitet werden, befinden sich im /usr/share/polkit-1/actionsVerzeichnis. Regeln können angeben, wie sie für alle Benutzer gelten, wie sie für Benutzer gelten, die an lokalen virtuellen Terminals angemeldet sind, die nicht das aktive virtuelle Terminal sind, und wie sie für Benutzer gelten, die an lokalen virtuellen Terminals angemeldet sind, dieSinddas aktive virtuelle Terminal. Alle drei können unterschiedlich sein.

Offensichtlich besagen die Regeln Ihres Systems, dass diese verschiedenen privilegierten Aufgaben nur von Benutzern ausgeführt werden können, die an dem aktiven virtuellen Terminal angemeldet sind. Ändern Sie also die Regeln, wenn Sie dies nicht möchten.

Weiterführende Literatur

  • polkit. Ubuntu Trusty-Manpages. 8. 2010. Canonical Ltd.

verwandte Informationen