Как запустить скрипт Bash от имени пользователя root без пароля?
Возможный дубликат:
Как использовать sudo в моем скрипте без пароля?
Я хочу запустить скрипт bash от имени пользователя root без запроса пароля.
Я попытался visudo безуспешно (ваше_пользовательское имя ALL=(ALL) NOPASSWD: /path/to/your/script).
Мне кажется, единственный выход есть, есть ли другой?
1 ответ
В каждом 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 перед вашим скриптом, и он должен работать без запроса пароля.