Некоторые команды не выполняются, если активный дисплей/виртуальный том отличается от того, где они запущены. Как это исправить/обойти?

Некоторые команды не выполняются, если активный дисплей/виртуальный том отличается от того, где они запущены. Как это исправить/обойти?

Эти апплеты работают на X DISPLAY=:0( fgconsole7).

NetworkApplet
Относится к nm-applet/ NetworkManagerвыполните эту команду sleep 10;nmcli nm enable false;beep(вы должны быть подключены к Интернету, иначе он будет отключен) И быстро нажмите "Ctrl+Alt+F1", чтобы перейти к vt1. Это не удается с:

"** (процесс:1388670): ПРЕДУПРЕЖДЕНИЕ **: Ошибка включения/отключения сети: нет прав на включение/отключение сети"

Частота ЦП
Связано с 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 Ltd.

Связанный контент