Выполнить команду 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.

Другие вопросы по тегам