У меня есть веб-приложение в lampp машине человечности, которую я должен открыть терминал для выполнения, некоторые операции могут кто-то помогать мне с этим
Заранее спасибо
Нет, это - неправильный подход. Я примерно сделал бы это как это:
/etc/crontab
) на сервере, где Вы заполняете файл в базе данных или создаете текстовый файл с данными из этого текстового файла Подход базы данных лучше, но немного больше работы. Хорошо разработанная база данных вынуждает Вас проверить данные и делает управление данными легким. Можно использовать "процедуру" в MySQL для управления данными. Дамп текстового файла легче, но проверяет и управляет, текстовый файл может быть хитрым.
Альтернатива подходу Rinzwind - это:
Запишите сценарий, который переносит привилегированную команду, например,
#!/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>
Передайте владение файла пользователю, который делает это незаписываемым пользователю, владеющему процессом веб-сервера, например. root
:
sudo chown root /other/path/to-data-analysis-wrapper.sh
Настроить sudoers
позволить выполнение сценария пользователем, который владеет процессом веб-сервера с поднятыми полномочиями. Посмотрите, Как я выполняю определенные команды sudo без пароля? поскольку, как сделать это в целом и использовать следующее правило (или настроить его к Вашей симпатии):
www-data ALL = (root) NOPASSWD: /other/path/to-data-analysis-wrapper.sh *
Можно теперь выполниться sudo /other/path/to-data-analysis-wrapper.sh <INPUT-FILE> <OUTPUT-FILE>
из сценариев CGI, работающих от имени веб-сервера.
Еще лучший подход должен настроить Ваши процессы анализа данных способом, который не требует полномочий суперпользователя. Если это только о перемалывании чисел а не о привилегированной системе или аппаратном доступе затем там, должен является относительно простым путем. Откройте новый вопрос и опишите ситуацию, более всестороннюю, если Вы хотите идти по той дороге.