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

SELinux блокирует службу Tomcat 7 в RHEL 7 после обновления Yum

Я выполнил обновление Yum, и способность Tomcat к доступу к файлу была нарушена.

SEVERE: Failed to load keystore type JKS with path /var/websvr/certs/keyfile.jks due to /var/websvr/certs/keyfile.jks (Permission denied)
java.io.FileNotFoundException: /var/websvr/certs/keyfile.jks (Permission denied)

Хотя у пользователя Tomcat есть ownership and full permissions не только файла, но и всего каталога

-rwxrwxrwx. 1 tomcat   tomcat 4829 Aug 19  2016 keyfile.jks

и я подтвердил, что Tomcat работает под tomcat user. Итак, почему доступ все еще запрещен?

Red Hat Enterprise Linux Server версии 7.4 (Maipo)

редактировать

Из А. Б.комментарий - /var/log/audit/audit.log :

type=AVC msg=audit(1511208892.087:392): avc:  denied  { read } for  pid=770 comm="java" name="keyfile.jks" dev="xvda2" ino=9641897 scontext=system_u:system_r:tomcat_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file

Так что похоже, это связано с SELinux. Я пытался решить, но сообщения вроде вот этот требуется подписка Red Hat.

С помощью Документ RH для SELinux и Apache, в сочетании с RH SELinux Doc - Думаю, решить эту проблему keyfile.jks файл должен быть помечен:

tomcat_t:tomcat_t:tomcat_sys_content_t:s0

который является доступом только для чтения для ограниченного пользователя tomcat_t в роли tomcat_t. В настоящее время файл помечен:

unconfined_u:object_r:var_t:s0

чтобы обойти дополнительные ограничения файлов SELinux.

Любое руководство приветствуется!

Если вы хотите пометить /var/websvr/certs/keyfile.jks с помощью tomcat_sys_content_t, вы можете создать контекст файла клиента

semanage fcontext -a /var/websvr/certs/keyfile.jks -t tomcat_sys_content_t
restorecon /var/websvr/certs/keyfile.jks

Если это не сработает, потому что tomcat_sys_content_t не существует, замените tomcat_t или возможно pki_tomcat_cert_t в команде выше.