Возможный дубликат:
Как использовать sudo в моем скрипте без пароля?
Я хочу запустить сценарий bash от имени root без запроса пароля.
Я пробовал visudo безрезультатно(ваше_имя_пользователя ALL=(ALL) NOPASSWD: /path/to/your/script).
Это кажется мне единственным выходом, есть ли какой-нибудь другой?
В каждом Linux есть очень удобный трюк, который позволит вам это сделать. Он называется битом SetUI.
Имейте в виду, что в этом файле вам нужно будет плотно заблокировать разрешения, чтобы это было безопасно.
Сделайте файл владельцем root и группой root:
sudo chown root.root <my script>
Теперь установите бит SetUID, сделайте его исполняемым для всех и доступным для записи только для root:
sudo chmod 4755 <my script>
Сохранить в не забывайте, что этот скрипт разрешит ввод или редактирование файлов, это также будет сделано от имени пользователя root.
Бит SetUID заставляет скрипт или двоичный файл всегда запускаться как владелец файла / двоичного файла, примером такого двоичного файла является «passwd».
Существует решение с использованием sudoers, вот пример, который вы можете использовать. Добавьте эти две строки в конец файла sudoers. Вы можете использовать visudo для редактирования файла sudoers.
Cmnd_Alias CMDS = /path/to/your/script
<username> ALL=NOPASSWD: CMDS
Теперь просто поместите sudo перед вашим скриптом, и он должен работать без запроса пароля.