selinux блокирует ping от php exec

if [ "$(cat /sdcard/logcheck.txt | grep ok)" = "ok" ]; then  
echo -e "Running Proggres"  
fi  

if [ "$(cat /sdcard/logcheck.txt | grep fail)" = "fail" ]; then  
echo -e "file not found, and program will be close"  
exit  
fi  
0
28.10.2021, 18:05
1 ответ

Мне нравится, когда SELinux действительно ловит плохие вещи. В этом случае

  1. exec:да, я вижу, как конфигурация сервера может реагировать аллергической реакцией на PHP-скрипт, выполняющий внешний исполняемый файл; классическая точка входа. Я, по крайней мере, надеюсь, что вы на самом деле не передаете пользовательский ввод в какую-то оболочку!
  2. Если вам действительно нужно выполнить ICMP-запрос ("ping" ), вам нужно указать вызывающий исполняемый файл (, возможно, /usr/bin/php или около того)ping_exec_tтип файла. Документация .

В общем, если вы неопытный разработчик, (мы все в некотором роде! )очень вероятно, что вы пишете что-то, что на самом деле подвергает ваш сервер проблемам удаленного выполнения (использование execв PHP обычно является очень большим красным флажком, поэтому ваша CentOS настраивает SELinux запретить это ). Вызов pingможно заменить прямым установлением (, например, TCP )соединение с интересующей вас службой, и вы, вероятно, должны сделать это, если это возможно.

1
28.10.2021, 21:05

Теги

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