我正在尝试在 ubuntu 20.04 上安装 Openmaint。我快要到达最后的障碍了,但我无法解决这个问题。
在 openmaint 数据库配置页面,我可以成功连接到数据库,但无法保存 database.conf 文件。这是错误
java.lang.RuntimeException:将配置保存到命名空间 = org.cmdbuild.database 的文件时出错,原因为:org.apache.commons.configuration.ConfigurationException:无法保存到文件 /var/lib/tomcat9/conf/openmaint/database.conf,原因为:java.io.FileNotFoundException:/var/lib/tomcat9/conf/openmaint/database.conf(只读文件系统)
该文件肯定存在,并且已经配置了正确的变量。Tomcat 用户肯定具有写权限。如果我删除该文件,只会收到有关只读文件系统的错误。
有人可以帮忙吗?
答案1
通过编辑 tomcat 的 systemd 服务文件解决了这个问题。Systemd 对文件访问进行沙盒处理,因此需要在服务文件中放置明确的文件路径才能允许访问。
答案2
非常感谢!我将保留对 tomcat 服务文件所做的更改:
# Security
User=tomcat
Group=tomcat
PrivateTmp=yes
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
CacheDirectory=tomcat9
CacheDirectoryMode=750
ProtectSystem=strict
ReadWritePaths=/etc/tomcat9/Catalina/
ReadWritePaths=/var/lib/tomcat9/webapps/
ReadWritePaths=/var/lib/tomcat9/conf/ <---- ADDED
ReadWritePaths=/var/log/tomcat9/