Я настраиваю простой веб-сайт со сценарием Python CGI. Все работает, пока у меня установлен разрешающий режим selinux. Проблема в том, что я использую Anaconda, а контекст SELinux неверен. Что действительно раздражает, так это то, что я не получаю сообщения в
/var/log/messages
/var/log/audit/audit.log
Я определил, что мне нужно исправить контексты SELinux с помощью моей установки Anaconda, но я не могу найти никаких руководств, а ошибки в моем журнале Apache только до меня дошли.
Как я могу настроить Anaconda так, чтобы Apache мог использовать двоичный файл Python как часть сценария CGI?
Редактировать:
Чтобы прояснить, я думаю, что это проблема SELinux, потому что, когда я включаю SELinux в разрешающий или отключенный режим, веб-приложение работает, но когда оно принудительно, браузер получает ошибку 500. В отмеченных местах ничего не регистрируется о том, что SELinux что-либо блокирует, поэтому это создает проблемы. Я получаю сообщение о невозможности выполнения сценария cgi в журнале apache. Когда я изменяю контекст двоичного файла python в моей установке anaconda (который принадлежит apache: apache), чтобы он соответствовал двоичному файлу python по умолчанию, установленному yum, ошибка меняется на невозможность загрузить общую библиотеку.
SELinux по умолчанию запрещает выполнение сценария CGI, но вы можете использовать логические флаги, чтобы разрешить такое поведение.
Если вы хотите разрешить поддержку httpd cgi, вы должны включить логическое значение httpd_enable_cgi.
setsebool -P httpd_enable_cgi 1
Откройте страницу руководства httpd_selinux или посетите для получения дополнительной информации https://linux.die.net/man/8/httpd_selinux