Когда SELinx находится в permissive
веб-приложение Django хорошо работает без предупреждений. Ниже ошибки появляется в журнале ошибок Apache, после того как SELinux установлен на осуществление, но никакие предупреждения не зарегистрированы к audit.log
.
[wsgi:error] import psycopg2 as Database
[wsgi:error] File "/mnt/data/venv/app/lib/python3.4/site-packages/psycopg2/__init__.py", line 50, in <module>
[wsgi:error] from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
[wsgi:error] ImportError: /venv/app/lib/python3.4/site-packages/psycopg2/_psycopg.cpython-34m.so: failed to map segment from shared object: Permission denied
Система выполняет CentOS 7, Apache httpd 2.4 2.4.6 (установленный об/мин), Python 3.4.2 (установленный источник), и установленное зернышко: mod_wsgi 4.4.5, virtualenv 12.0.5, psycopg2 2.5.4 и Django 1.7.2.
Ничто не зарегистрировано Django.
Текущий тип контекста файла virtualenv каталога httpd_sys_content_t
.
httpd_sys_script_exec_t
кажется лучшим типом контекста файла для использования, и его нужно только применяется к задействованному общему объектному файлу.
<virtualenv/path/>lib/python3.4/site-packages/psycopg2/_psycopg.cpython-34m.so.
Как пользователь root или суперпользователь:
semanage fcontext -a -t httpd_sys_script_exec_t </full-path-to-file/_psycopg.cpython-34m.so>
restorecon -v </full-path-to-file/_psycopg.cpython-34m.so>
Изменение контекста сохранится после перезагрузки и перемаркировки файловой системы.
На основании этого неправильно обнаруженного вопроса о переполнении стека.