Назад | Перейти на главную страницу

SELinux: запрещено {выполнять} для pid = 2174 comm = «httpd» путь = «/ etc / httpd / lib / libaprutil-1.so.0.5.3»

У меня проблема с SELinux. setroubleshoot предложил включить mypol.pp с участием semodule -i mypol.pp так что apache мог работать.

после запуска предложенной команды я продолжаю получать:

type=AVC msg=audit(1388119964.806:11): avc:  denied  { execute } for  pid=2174 comm="httpd" path="/etc/httpd/lib/libaprutil-1.so.0.5.3" dev=md0 ino=2228931 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_config_t:s0 tclass=file

**** Invalid AVC allowed in current policy ***

type=AVC msg=audit(1388120085.792:29): avc:  denied  { execute } for  pid=2298 comm="httpd" path="/etc/httpd/lib/libaprutil-1.so.0.5.3" dev=md0 ino=2228931 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_config_t:s0 tclass=file

**** Invalid AVC allowed in current policy ***

type=AVC msg=audit(1388120159.57:37): avc:  denied  { execute } for  pid=2330 comm="httpd" path="/etc/httpd/lib/libaprutil-1.so.0.5.3" dev=md0 ino=2228931 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_config_t:s0 tclass=file

**** Invalid AVC allowed in current policy ***

type=AVC msg=audit(1388121088.955:65): avc:  denied  { name_connect } for  pid=2331 comm="httpd" dest=8080 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket

**** Invalid AVC allowed in current policy ***

found 0 alerts in /var/log/audit/audit.log

Ниже показано, что у вас проблема с перемаркировкой.

type=AVC msg=audit(1388119964.806:11): avc: denied { execute } for pid=2174 comm="httpd" path="/etc/httpd/lib/libaprutil-1.so.0.5.3" dev=md0 ino=2228931 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_config_t:s0 tclass=file

Является /etc/httpd/lib символическая ссылка на другое место? Обычно вы не помещаете сюда свои библиотеки, но только как символическую ссылку. Если так работает restorecon -Rv /usr/lib{,64} здесь может быть полезно.

Чтобы вторая проблема, указанная ниже, работала, вам необходимо убедиться, что SELinux знает, какого поведения вы ожидаете от службы httpd.

type=AVC msg=audit(1388121088.955:65): avc: denied { name_connect } for pid=2331 comm="httpd" dest=8080 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket

Включите логическое значение httpd_can_network_relay бегом setsebool -P httpd_can_network_relay 1.

Я не знаю о **** Invalid AVC allowed in current policy *** сообщение, но у нас есть Вопросы и ответы об этом здесь уже

Запуск предоставленного вами текста audit2allow предлагает

#============= httpd_t ==============

allow httpd_t http_cache_port_t:tcp_socket name_connect;
allow httpd_t httpd_config_t:file execute;

так что вы можете попробовать использовать grep, чтобы вытащить соответствующие сообщения об отказе AVC во временный файл, а затем передать его в audit2allow

grep denied: audit.log | grep httpd >temp.log

cat temp.log | audit2allow -M myHTTPD
******************** IMPORTANT ***********************
To make this policy package active, execute:

semodule -i myHTTPD.pp

После установки myHTTPD.pp вы все еще можете обнаружить, что SElinux останавливает запуск httpd. Это связано с тем, что более ранние (теперь разрешенные) отказы больше не маскируют более поздние. Просто повторяйте описанный выше процесс каждый раз.