<Mr.ElectroNick>
/* personal website */

Как выполнить 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);
?>

По сути это все что нужно!