lighttpd запускает скрипт Python от имени пользователя root

Я пытаюсь выполнить скрипт Python из функции php shell_exec (), но этот скрипт требует привилегий root.

Код Python очень прост. Используя библиотеки, wifi python выполняет сканирование всех SSID и предоставляет на выходе информацию о различных беспроводных сетях, в которые он провел сканирование, в формате JSON. Библиотеки WiFi сканируют, используя iwlist, для которого требуются права root. Если он выполняется пользователем, который не имеет привилегий root, он возвращает только информацию, относящуюся к Wi-Fi, к которому вы подключены.

Если я подключу свой код строки

<?php
echo 'Current script owner:'. get_current_user ();
?>

Я печатаю экран «Текущий владелец скрипта: root», но если я пытаюсь запустить свой код

<?php
$ Output = shell_exec ("python /home/acme/XDOMV2/conn1.py");
echo $ output;
?>

Он будет возвращать только информацию о сети, к которой подключена моя система Debian.
Как использовать веб-сервер lighttpd, и я следовал нескольким инструкциям по получению единственного результата переустановки lighttpd.
Вопрос в том, есть ли способ запустить скрипт python от имени root из lighttpd?
Где я не прав?

0

Решение

Я бы предложил запустить скрипт как пользователь с соответствующими правами.
Это минимизирует риск эксплойтов в системе.

Следующим шагом будет запуск скрипта в среде cron от имени этого пользователя (или root в худшем случае) и выдача результата через базу данных или кэшированную среду. Вы также можете доставить результат через сокеты или файловые дескрипторы.

Никогда не включайте веб-среду для запуска скриптов или чего-либо вроде root, это опасно и не то, как программное обеспечение (lighttpd) должно было работать.

Если ты храбрая душа

Этот вопрос принадлежит UnixExchange но вы можете проверить это:

А также проверьте документы для вашей версии lighttpd, запуск от имени root возможен, но никак не звучит.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]