Я на самом деле пытаюсь запустить gnome-терминал с помощью PHP-скрипта, и, похоже, у меня есть некоторые проблемы с пользователями www-data ;

Мой скрипт выполняет команду ls -l в каталоге (только для теста), и я запускаю ее со страницей php на моем локальном веб-сайте.

Вот команда gnome-terminal в моем скрипте bash (она отлично работает, когда я дважды щелкаю):

gnome-terminal --working-directory=/opt/cuckoo -x bash -c "ls -l"

и вот звонок на php-странице:

system("/my/path/to/the/script/script.sh");

У меня есть некоторое "эхо" в моем скрипте, и я вижу его на странице PHP после того, как я пытаюсь запустить скрипт с веб-сайта.

Я думаю, что www-data не имеет разрешений, поэтому я пытаюсь дать пользователю право владения сценарием с помощью команды chown но безрезультатно, и в конце концов я попробовал команду sudo visudo и дал права доступа www-data root только для этого сценария. (NO PASSWD аргумента ПАРОЛЬ ).

Это не сработало. Я попытался изменить команду php, заменив system на exec , и показать результат с помощью $output но он также не изменился.

Может ли PHP на самом деле запустить терминал, или я, возможно, обманул себя?

1 ответ1

0

То, что вы должны принять во внимание

  1. Если вы хотите , ls каталога " который" запускать эту команду может пересечь эту папку (так, + х разрешение абсолютно необходимо)
  2. Ваш PHP-скрипт работает под сервером? Если это произойдет, возможно, вам придется сменить владельца в соответствии с этим
  3. Зависит от второго пункта: пожалуйста, будьте внимательны, когда вы загружаете файлы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .