我的问题非常类似于这一个:我在Rhel 8上运行了一个依赖sqlite驱动程序的Java应用程序。与该问题不同,我的问题不是用noexec挂载我的文件系统。相反,它与fapolicyd一起禁止java执行驱动程序:
Aug 02 11:36:40 hostname cerebro[3210818]: /opt/cerebro/sqlite-3.34.0-47390f7e-7dd5-45d7-9a01-0635f335df40-libsqlitejdbc.so (Operation not permitted)
Aug 02 11:36:42 hostname cerebro[3210818]: /opt/cerebro/sqlite-3.34.0-cb416389-64b7-4ed6-9e52-5c710ec85a6c-libsqlitejdbc.so (Operation not permitted)通常,我会使用fapolicyd-cli命令将驱动程序文件添加到fapolicyd信任列表中,但是每次应用程序启动时,JDBC驱动程序文件都有一个唯一的文件名,因此添加现有文件不是可行的选择。注意上面的十六进制字符--在每个应用程序启动时,这些字符是不同的。
我该如何处理这种情况?
发布于 2022-12-08 23:41:19
这应该是一个评论,但我不允许这样做。
按照@cutrightjm的说明,我创建了文件/etc/fapolicyd/ file es.d/01-sqlitejdbc.rules.规则的内容如下:
allow perm=open exe=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el8_7.x86_64/jre/bin/java : dir=/opt/cerebro/ ftype=application/x-sharedlib注意,这是非常硬编码的特定版本的java上的RHEL8.7 8.7。
感觉还是很难看,但效果很好。
https://serverfault.com/questions/1107216
复制相似问题