Как выполнить sudo в php скрипте
Пользуясь Ubuntu в качестве сервера — иногда возникает необходимость выполнить тот или иной скрипт или системную команду с правами root. По умолчанию у разработчика нет такой возможность потому что php скрипты выполняются с правами веб сервера Apache которые в Ubuntu по умолчанию установлены как www-data.
В действительности если у вас есть доступ на машину где лежит ваш сайт или приложение с правами root — то вы можете позволить настройку системы таким образом чтобы тот или иной скрипт мог выполнять системные команды с правами root.
Даем root права php скрипту
Делается это так:
- Открываем файл /etc/sudoers
- Добавляем строку: www-data ALL=NOPASSWD: /path/to/script
- Пробуем выполнить
Выводим список директорий в корне файловой системы
<?php
exec('ls /",$out);
print_r($out);
?>
По сути это все что нужно!