Выясните, вызваны ли ошибки отказа в разрешениях системой SELinux

SELinux, сокращение от Security Enhanced Linux, - это модуль безопасности Linux, который входит в состав многих серверных дистрибутивов Linux. Хотя SELinux повышает безопасность сервера (несмотря на то, что он был создан АНБ), он часто приводит к неожиданным ошибкам доступа/отказа в разрешении.

Если вы получаете одну из таких ошибок на сервере с включенным SELinux, и при этом нет очевидных проблем с правами доступа к файлам, вам следует проверить, не вызвана ли эта проблема SELinux.

Чтобы проверить состояние SELinux, выполните команду:

Вы должны получить что-то вроде этого:

sestatus

" Current mode: enforcing" указывает на то, что SELinux запущен.

Чтобы временно отключить SELinux, выполните:

Если это решит проблему, и вы больше не будете получать ошибки "permission denied", это означает, что проблема была вызвана SELinux. Вновь включите его с помощью setenforce 1 и попытайтесь найти первопричину.

Чтобы помочь в устранении неполадок, вы можете проверить файлы журнала SELinux, расположенные в /var/log/audit/audit.log.

Очень часто проблема вызвана неправильным контекстом безопасности (также называемым меткой безопасности), назначенным затронутым файлам или папкам. Чтобы просмотреть контекст безопасности, который SELinux применил к файлам или папкам, выполните одну из следующих команд (они все отображают контекст безопасности, просто в разных форматах):

Чтобы изменить контекст безопасности, вы можете использовать команду chcon, т.е:

  • httpd_sys_content_t - доступ Apache только на чтение
  • httpd_sys_rw_content_t - доступ Apache на чтение/запись
  • httpd_log_t - файлы журналов Apache
  • httpd_cache_t - кэширование Apache

или использовать "справочную" директорию:

Понравилась статья? Поделиться с друзьями:
Добавить комментарий