virtualenv, Неудавшийся для отображения сегмента от общего объекта: Разрешение отклонено

Когда 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.

2
задан 12 October 2016 в 16:16
1 ответ

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‌>

Изменение контекста сохранится после перезагрузки и перемаркировки файловой системы.

На основании этого неправильно обнаруженного вопроса о переполнении стека.

1
ответ дан 3 December 2019 в 12:49

Теги

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