CentOS 7 Apache запустить/выполнить веб-запрос от имени пользователя root

CentOS 7 Apache запустить/выполнить веб-запрос от имени пользователя root

У меня есть PHP-утилита, которая принимает запрос post с файлом в качестве параметра. Теперь, когда этот запрос получен, я хочу выполнить его как пользователь root. Например, когда пользователь нажимает www.mydomain.com/sendtextfiletoftp.php из postman или любого другого инструмента, он должен быть выполнен как пользователь root.

Я устал от sudo visudoдобавления следующих строк в файл sudoers, но запрос все равно выполняется от имени пользователя Apache

www-data ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php

apache ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php

Тот же файл, запущенный от имени пользователя sudo из командной строки ( sudo php72 /path/to/file/sendtextfiletoftp.php), работает нормально.

Спасибо вам за помощь.

решение1

Помимо того, что вы позволяете пользователю apache стать root для команды, вам необходимо сделать вызов в вашем коде, который включает 'sudo'. Обычно:

В визуду я бы написал что-то вроде

apache ALL=NOPASSWD: /path/my_root_command

В моем коде /var/www/html/sendtextfiletoftp.php для той части, которая требует доступа root, я бы добавил что-то вроде:

exec("sudo /path/my_root_command");

Связанный контент