Как открыться, терминал с полномочием пользователя root от php основывал веб-приложение

У меня есть веб-приложение в lampp машине человечности, которую я должен открыть терминал для выполнения, некоторые операции могут кто-то помогать мне с этим

Заранее спасибо

-1
задан 30 May 2017 в 02:39

2 ответа

Нет, это - неправильный подход. Я примерно сделал бы это как это:

  • Храните данные с веб-сайта по серверу в базе данных, или как текстовый файл.
  • Используйте сценарий (сервис или наблюдатель каталога в /etc/crontab) на сервере, где Вы заполняете файл в базе данных или создаете текстовый файл с данными из этого текстового файла
  • имейте погрузку веб-страницы эти новые данные после управления данными для получения желаемых результатов.

Подход базы данных лучше, но немного больше работы. Хорошо разработанная база данных вынуждает Вас проверить данные и делает управление данными легким. Можно использовать "процедуру" в MySQL для управления данными. Дамп текстового файла легче, но проверяет и управляет, текстовый файл может быть хитрым.

2
ответ дан 3 November 2019 в 04:24

Альтернатива подходу Rinzwind - это:

  1. Запишите сценарий, который переносит привилегированную команду, например,

    #!/bin/sh
    set -eu
    input="$1"
    output="$2"
    exec /path/to/data-analysis-program [OPTIONS...] "$input" "$output"
    

    Сохраните его как, скажем, /other/path/to-data-analysis-wrapper.sh и сделайте это исполняемым файлом:

    chmod +x /other/path/to-data-analysis-wrapper.sh
    

    Тест, что сценарий обертки делает то, с чем Вы хотите:

    sudo /other/path/to-data-analysis-wrapper.sh <INPUT-FILE> <OUTPUT-FILE>
    
  2. Передайте владение файла пользователю, который делает это незаписываемым пользователю, владеющему процессом веб-сервера, например. root:

    sudo chown root /other/path/to-data-analysis-wrapper.sh
    
  3. Настроить sudoers позволить выполнение сценария пользователем, который владеет процессом веб-сервера с поднятыми полномочиями. Посмотрите, Как я выполняю определенные команды sudo без пароля? поскольку, как сделать это в целом и использовать следующее правило (или настроить его к Вашей симпатии):

    www-data ALL = (root) NOPASSWD: /other/path/to-data-analysis-wrapper.sh *
    
  4. Можно теперь выполниться sudo /other/path/to-data-analysis-wrapper.sh <INPUT-FILE> <OUTPUT-FILE> из сценариев CGI, работающих от имени веб-сервера.

Еще лучший подход должен настроить Ваши процессы анализа данных способом, который не требует полномочий суперпользователя. Если это только о перемалывании чисел а не о привилегированной системе или аппаратном доступе затем там, должен является относительно простым путем. Откройте новый вопрос и опишите ситуацию, более всестороннюю, если Вы хотите идти по той дороге.

0
ответ дан 3 November 2019 в 04:24

Другие вопросы по тегам:

Похожие вопросы: