gpt4 book ai didi

ubuntu - Webapp 无法使用 Ubuntu 20.04 和 Tomcat 9 写入/tmp 目录

转载 作者:行者123 更新时间:2023-12-04 18:39:02 26 4
gpt4 key购买 nike

我正在将 Tomcat Web 应用程序从旧版本的 Ubuntu 和 Tomcat 7 迁移到 Ubuntu 20.04 和 Tomcat 9。该应用程序将各种文件写入/tmp 目录,但在切换到 Ubuntu 20.04 和 Tomcat 9 后写入/tmp 目录默默地失败。我在 Tomcat 日志中看不到任何内容表明为什么没有写入文件,我的应用程序也没有抛出异常(如果应用程序无法写入目录,我希望得到一个 IO 异常或其他东西)。
我做了一些实验,我能够将文件写入/var/lib/tomcat/logs。是否需要在 Tomcat 或 Ubuntu 中更改配置参数以允许 Tomcat 写入/tmp?

最佳答案

在最近的 Debianoid(自 Debian Buster 起)上,tomcat9.service以自己的方式运行 mnt 命名空间 (参见 Linux namespaces)。唯一不同于“真实”文件系统的挂载点是/tmp。它位于:

/tmp/systemd-private-*-tomcat9.service-*/tmp
并且普通用户无法访问(其父级是 chmod 700 并由 root 拥有)。
如果您希望 Tomcat 共享 /tmp目录与系统的其余部分,您可以覆盖 tomcat9.service文件通过:
systemctl edit tomcat9.service
并添加:
[Service]
PrivateTmp=no
(参见 SystemD documentation)。
编辑:正如您在评论中所说的 tomcat9.service ProtectSystem=strict 设置,因此服务将所有文件系统视为只读。因此,您要么需要:
ProtectSystem=off
或者
ReadWritePaths=/tmp

关于ubuntu - Webapp 无法使用 Ubuntu 20.04 和 Tomcat 9 写入/tmp 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66995299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com