Не срабатывает system php. В чем проблема?

Есть такой код.
function iptables_ban_ip($ip){
system("sudo iptables -A INPUT -s $ip -j DROP", $resultExec);
//system("pwd", $resultExec);
echo "YOU WAS BLOCKED WITH IP=$ip";
echo "BLOCKING COMMAND RESULT=$resultExec";
}
Почему возвращает в resultExec 1. И не происходит блокирование IP?
Сайт развернут на 46.101.168.113/info.php
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А в sudoers пользователю, под которым работает скрипт, разрешено без пароля запускать iptables?
Ответ написан
Комментировать
chlp
@chlp
фулстек
Очень сомневаюсь, что веб-сервер от root'а запущен, поэтому напишите php-скрипт:
echo exec('whoami');
выполните его не из консоли, а так же, как будете выполнять свой скрипт – через веб-сервер, зайдя по адресу http. В выводе точно узнаете имя, от которого выполняются скрипты.
Если это будет www-data, то откройте /etc/sudoers и добавьте туда:
www-data ALL=(ALL) NOPASSWD: ALL


А вообще, данное решение очень сомнительно, т.к. открывает всем злоумышленникам дорогу к полному доступу к серверу. Как вариант, можете дать sudo своему пользователю не ко всему, а только к нужному скрипту:
www-data ALL=NOPASSWD: /var/www/html/info.php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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