Поскольку у меня не работает сочетание клавиш Asus VivoBook для изменения уровня подсветки клавиатуры, я создал сценарий bash и настроил его активацию при нажатии комбинации клавиш. Это мой сценарий:
level=$(cat /sys/class/leds/asus\:\:kbd_backlight/brightness)
[[ $level = 3 ]] && echo 0 | sudo tee /sys/class/leds/asus\:\:kbd_backlight/brightness || echo $(($level+1)) | sudo tee /sys/class/leds/asus\:\:kbd_backlight/brightness
Сценарий работает, когда я запускаю его на терминале, но когда я нажимаю клавиши, этого не происходит, я думаю, из-за разрешения sudo, для которого требуется пароль. Есть ли способ изменить разрешения скрипта, чтобы при запуске в фоновом режиме он не запрашивал пароль?
Может быть несколько опций сделать так, но я предлагаю Вас три опции:
Один путь состоит в том, чтобы использовать sudo -i
вместо sudo
Команда выполняется со средой, подобной той, в которой получил бы пользователь, входят в систему.
Другой путь состоит в том, чтобы использовать sudo -v
вместо sudo
который использует кэшируемые учетные данные.
Третья опция состоит в том, чтобы настроить sudo
никогда не просить у Вас пароль. visudo
управляйте редактирует sudoers
файл, который используется sudo
команда. Для изменения, каким пользователям и группам разрешают выполнить sudo выполните visudo
sudo visudo
В нижней части файла добавьте следующую строку:
<username> ALL=(ALL) NOPASSWD: ALL
Замените своим именем пользователя. Пример, я добавлю строку
tejas ALL=(ALL) NOPASSWD: ALL
После того как эта строка добавляется, можно ввести sudo в Окне терминала, не будучи предложенным пароль.
Обратите внимание, что это решение применяется только в то время как к использованию sudo
команда в терминале.
Для ограничения местоположения, в котором сценарий может быть excuted без подсказки пароля используйте следующую команду:
<username> ALL=NOPASSWD:/bin/bash /path/to/script/*
Строгое примечание: используйте это решение только для сценариев, которым можно доверять.