Выполнить команду sudo (openvt) с глобальным сочетанием клавиш
Моя цель здесь - запустить cmatrix
Сценарий и заблокировать рабочий стол одновременно, так что cmatrix будет отображаться в качестве заставки, пока я не вернусь и не разблокирую компьютер.
Мой сценарий выглядит так:
gnome-screensaver-command -l & sudo openvt -ws cmatrix
Теперь я хотел, чтобы скрипт мог запускаться без необходимости каждый раз вводить пароль sudo, поэтому я изменил файл sudoers ( вот так). Это работает, если я запускаю его в терминале, пока все хорошо.
Затем я добавил его в PATH
потому что я хотел привязать его к глобальному ярлыку Ctrl+Alt+L
, но это не сработает, если я вызову его через ярлык. Рабочий стол просто мигает на доли секунды, как он хотел показать cmatrix
, но затем он идет прямо к экрану разблокировки.
Я понял, что часть с openvt
работает не так, как должно, даже если это единственное в сценарии.
Есть идеи, как добиться того, чего я хочу?
РЕДАКТИРОВАТЬ: В доли секунды, когда рабочий стол мигает, мне удалось прочитать это на экране:
Error opening terminal: unknown
2 ответа
Собственно теперь я и сам нашел решение - проблема и решение те же, что и в этом вопросе. Мне просто нужно было добавить эту строку в мой скрипт:
export TERM=xterm
Взгляните на эту тему: https://unix.stackexchange.com/questions/91541/why-is-path-reset-in-a-sudo-command
Когда вы запускаете команду sudo, ваш PATH сбрасывается, поэтому злой хакер не может изменить его и указать на злонамеренный cmatrix
скрипт. Так что измените ваш безопасный путь или добавьте точное местоположение вашего cmatrix
запрограммируйте команду sudo.