SELinux блокирует веб-приложение tomcat для загрузки Java native library (JNI) - как настроить SELinux на Centos 7?

У меня Centos 7 с установленным Tomcat и tomcat пользователем

ls -l /var/lib/tomcat
total 0
drwxrwxrwx. 5 root tomcat 84 Jul  3 13:18 webapps

SELinux соблюдается и веб-приложение Java, которое пытается загрузить Java native library (JNI) из файлов общих объектов .so в папке /tmp/ не может работать.

 java.lang.UnsatisfiedLinkError: /tmp/app/gdal_java/2018.07.03.14.52.59/libosrjni.so: 
/tmp/app/gdal_java/2018.07.03.14.52.59/libosrjni.so: failed to map segment from shared object: Permission denied

Если я отключаю SELinux, загрузка этих файлов в веб-приложении Java не вызывает проблем. Разрешение этого файла:

ls -lZ /tmp/app/gdal_java/2018.07.03.14.52.59/libosrjni.so
-rwxrwxrwx. tomcat tomcat system_u:object_r:tomcat_tmp_t:s0 /tmp/app/gdal_java/2018.07.03.14.52.59/libosrjni.so

Как настроить SELinux, чтобы разрешить пользователю tomcat загружать эти файлы из папки /tmp/app/?

Я пробовал использовать эту команду и перезапускать tomcat, но он все еще имеет ту же ошибку

sudo semanage fcontext -a -t tomcat_tmp_t '/tmp/app_*/(.*)?'
0
задан 3 July 2018 в 18:05
1 ответ

Я использую инструмент audit2allow из комментария @jordanm, чтобы позволить tomcat иметь несколько разрешений (чтение, выполнение) в этой папке / tmp / app.

https://access.redhat.com / documentation / en-us / red_hat_enterprise_linux / 6 / html / security-extended_linux / sect-security-Enhanced_linux-fixing_problems-allowed_access_audit2allow

cat /var/log/audit/audit.log  | audit2allow -a
1
ответ дан 4 December 2019 в 15:54

Теги

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