Выполнение необходимого 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
где имена пользователей и путь задаются соответствующим образом.