Как запустить сценарий Bash от имени root без пароля? [дубликат]

Возможный дубликат:
Как использовать sudo в моем скрипте без пароля?

Я хочу запустить сценарий bash от имени root без запроса пароля.

Я пробовал visudo безрезультатно(ваше_имя_пользователя ALL=(ALL) NOPASSWD: /path/to/your/script).

Это кажется мне единственным выходом, есть ли какой-нибудь другой?

24
задан 13 April 2017 в 15:24

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 перед вашим скриптом, и он должен работать без запроса пароля.

0
ответ дан 13 April 2017 в 15:24

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

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