Я работаю над веб-страницей, где Вы нажимаете кнопку, петлявшую в суперпользователе. Я пытаюсь выполнить мини-топологию сети с помощью сценария Python через веб-страницу.
<?php
$mininet='sudo python loadbalancing.py';
$python=exec($mininet);
echo $python;
?>
Когда я выполняю вышеупомянутый код, он ничего' не возвращает.
Однако, когда я выполняюсь ниже кода, он возвращается, *** Мини-сеть должна работать как корень.
<?php
$mininet='sudo python loadbalancing.py';
$python=exec($mininet);
echo $python;
?>
Может кто-то помогать мне, как запустить мини-сетевой скрипт Python через веб-страницу.
Я установил супер разрешение через "visudo" и chmod, но все еще не работает. В visudo я добавил следующее.
%sudo ALL=(ALL) NOPASSWD: /var/www/html/loadbalancing.py
Я установил
sudo chmod 777 loadbalancing.py
sudo chmod 755 loadbalancing.py
Но все еще не работает или выполняет сценарий Python в веб-странице.
Примечание: Не касайтесь о безопасности, поскольку будет процесс аутентификации перед этим процессом.
Спасибо.
Я делаю несколько предположений здесь... Я подозреваю, что Ваша вторая вставка кода была предназначена, чтобы быть идентичной Вашему первому - только без sudo. То, которое является, почему Вы добрались, "должно быть выполнено как корневая" ошибка. Я также подозреваю, что Ваш первый блок кода ничего не возвратил, потому что он застрял при интерактивной sudo подсказке пароля.
я ничего не знаю о php или мини-сети, но когда я вижу Ваш отрывок выше, интересно, имеет ли учетная запись пользователя, запускающая скрипт, способность к sudo без пароля. Например, если бы Ваш сценарий работал как "myuser", то Вам было бы нужно что-то вроде этого в/etc/sudoers файле:
myuser ALL=(ALL) NOPASSWD: ALL
Без "NOPASSWD", Ваш сервис застревает, ожидая пароля myuser при попытке sudo. Так как сервис не может обработать интерактивную подсказку, он умирает, и Вы ничего не возвратили.
стандартное предупреждение: sudo без потребности в пароле опасен. Используя его для выполнения произвольных команд на основе ввода данных пользователем от веб-страницы сумасшедший плохой, если Вы не находитесь в содержавшей среде песочницы.