Как запустить сценарий .sh с привилегиями root из Ubuntu cmd? Некоторые скрипты требуют ввода пароля. Я хочу этого избежать.
Если безопасность вызывает беспокойство, я бы не стал этого делать, как уже упоминалось.
Лучше было бы использовать visudo для редактирования файла sudoers и отредактировать все команды, которые использует скрипт, которые должны быть root. Итак, весь скрипт не обязательно должен быть root, но, возможно, shutdown делает (надуманный пример), поэтому:
fooUser ALL = (ВСЕ) NOPASSWD: / sbin / reboot, / sbin / shutdown
Это означает, что fooUser сможет запускать команды перезагрузки и выключения из ВСЕ терминалы и когда они действуют как любые (ВСЕ) пользователь.
А затем в сценарии:
sudo /sbin/shutdown
Вы имеете в виду, что команда внутри сценария запрашивает пароль, или что вы просто хотите запустить ее один раз с паролем при запуске, или что у вас есть сценарий, который запускается автоматически и приостанавливается для ввода пароля?
Обычно я запускаю sudo из командной строки, и он использует привилегии root, но в противном случае вам, возможно, придется испортить файл sudoer в / etc, чтобы применить "nopasswd" к команде или сценарию, который вы используете.
Помогите всем остальным советам в ответах на ваш вопрос ... вы также можете открыть оболочку bash (Терминал), а затем ввести sudo su - введите свой пароль, который предоставит вам оболочку с привилегиями root, из которой вы сможете запускать сценарии с правами root без повторного ввода пароля.
Как советуют другие: будьте осторожны
user@prompt>sudo su -
password: xXxXxXx
root@prompt>
Отредактируйте файл sudoers с помощью команды visudo следующим образом:
%cdrom ALL = NOPASSWD: /usr/bin/k3b
Это не очень хорошая практика для сценариев оболочки, если вы не запускаете приложение, такое как tripwire, которое обнаруживает изменения в сценарии.
Ты можешь использовать NOPASSWD
в /etc/sudoers
не запрашивать пароль для некоторых / всех команд / пользователей / хостов при использовании sudo
.
Видеть страница руководства.