Как запустить bash-файл без необходимости ввода пароли sudo вручную?

Я пишу файл bash таким образом:

#!/bin/bash         
echo 1000 |sudo tee /sys/class/backlight/intel_backlight/brightness

(который изменяет яркость экрана)

Мне нужно, чтобы он запускался при запуске, но потому, что для этого требуется пароль sudo I необходимо ввести пароль вручную. Как я могу изменить этот код, чтобы не требовать пароли sudo во время выполнения?

3
задан 11 March 2012 в 07:42

2 ответа

Для этой конкретной проблемы вы, вероятно, могли бы просто вставить echo 1000 > /sys/class/backlight/intel_backlight/brightness в /etc/rc.local (перед линией exit). Это запустит его при загрузке с правами root до загрузки рабочего стола.

Но в целом (как мне запустить скрипт от имени root?) Все это немного наклейка ...

Вы можете просто запустить sudo ./myscript (отредактировав sudoers), но простое разрешение ./myscript запускаться без пароля означало бы, что вы (или программа, работающая как вы) можете редактировать этот файл, и вдруг вы сможете запустить [ 1113] что угодно как root без прохождения надлежащих процедур. Uber-бедная безопасность.

Вместо этого я бы предложил:

sudo mv myscript /sbin/myscript
sudo chown root:root /sbin/myscript
sudo chmod 700 /sbin/myscript

Команды ch* теперь означают, что только root может читать / запускать скрипт. Вставить его в /sbin/ просто случайно - вам не нужно этого делать.

Теперь вам нужно отредактировать /etc/sudoers. В вики есть хороший пример , и вам просто нужно заменить команды выключения на путь вашего скрипта (используйте полный, абсолютный путь). NOPASSWD является ключевым словом здесь. Это позволяет вам запускать что-то как sudo без пароля. Тогда вы можете просто добавить sudo /sbin/myscript в свой стартовый jibberyboo, и вы летите.

0
ответ дан 11 March 2012 в 07:42

Я просто делаю снимок в темноте, но пытаюсь изменить права доступа к файлу

chmod 777 [путь к файлу]

0
ответ дан 11 March 2012 в 07:42

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

Похожие вопросы: