Выполнение необходимого root-скрипта от пользователя без полномочий root

Я использую мод Apache CGI, чтобы разрешить выполнение скриптов Python через HTTP(S) запрос. Проблема в том, что скрипт, который я хочу выполнить, backup.py, в какой-то момент выполняет вызов подпроцесса, когда команда mysqldump передается в sudo -i. Проблема в том, что пользователь CGI, www-data, не имеет root-доступа, и я, конечно же, не хочу предоставлять его вообще, только для этой конкретной задачи. Как я могу позволить www-данным выполнять только команду mysqldump только под sudo -i?

1 ответ

Решение

Одним из способов повышения разрешений для конкретного сценария является использование файла sudoers.

Создайте файл, содержащий скрипт, который вы не хотите выполнять с правами суперпользователя, скажем, в /path/to/script.sh,

Затем отредактируйте sudoers файл с sudo visudoи добавьте следующую строку:

www-data ALL = (root) NOPASSWD: /path/to/script.sh

где имена пользователей и путь задаются соответствующим образом.

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