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

selinux Правило разрешения пропущенного типа (TE)

Когда я запускаю свой FTP-тест для проверки полной функциональности, меня беспокоит, почему я получаю ошибку отказа avc в такой популярной команде, как 'mkdir'?

Вот сообщение об отказе AVC:

type=AVC msg=audit(1365021919.400:283): avc:  denied  { create } for  pid=2210     comm="mkdir" name="64F77DCE-9C9F-11E2-90A8-39AEF085A14A"   scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:user_home_t:s0 tclass=dir
    Was caused by:
            Missing type enforcement (TE) allow rule.

            You can use audit2allow to generate a loadable module to allow this access.

Согласно веб-сайту Fedora, правила принудительного применения отсутствующих типов обычно вызваны ошибками в политике SELinux. Итак, действительно ли это ошибка?

Похоже, вы пытаетесь настроить свой веб-сервер записывать в домашний каталог пользователя. Не существует справочных политик SELinux, разрешающих такое поведение. Вам следует хорошо подумать, следует ли вообще обслуживать контент из домашних каталогов пользователей.

если ты очень нужно этот доступ, вы можете использовать audit2allow утилита для создания модуля локальной политики, который можно загрузить и разрешить доступ.

Уже Ошибка возникает, когда порт, который вы хотите добавить, задан другим контекстом безопасности. Если вы используете Tomcat Основной HTTP-порт 8080, это порт типа http_cache_port_t. Если вы используете nginx, был построен 8081, и он transproxy_port_t или оба контекста веб-сервер apache генерирует ошибку, потому что не может подключиться. Если вам нужно изменить контекст безопасности, и без дополнительного использования параметра -m вместо параметра -a.

~# semanage port -l |grep 8081
transproxy_port_t   tcp      8081

а потом

~# semanage port -l |grep http_port_t
http_port_t   tcp      80, 443, 488, 8008, 8009, 8443

Добавить

# semanage port -m -p tcp -t http_port_t  8081

Я запутался, это FTP через apache или просто старый FTP?

Если это обычный старый FTP, проверьте контекст SELinux того, где вы пытаетесь создать новый каталог. Это могло быть неправильно установлено.

Если это через Apache:

Вы можете разрешить Apache использовать домашние каталоги с помощью такой команды:

setsebool -P httpd_enable_homedirs
chcon -R -t httpd_sys_content_t ~user/public_html

Ссылка: http://fedoraproject.org/wiki/SELinux/apache