具有 DynamicUser 的 Systemd 服务无法写入其 CacheDirectory

具有 DynamicUser 的 Systemd 服务无法写入其 CacheDirectory

我正在运行 OpenSuse Leap 15.4。

我已经为bazel-remote远程缓存服务器,用于 Bazel 构建系统。

我希望使用该DynamicUser功能使服务更安全,并避免必须为服务手动创建用户。我在[Service]文件的部分中设置了以下参数:

DynamicUser=yes
CacheDirectory=bazel-remote

然后,在 上ExecStart,我将路径传递/var/cache/bazel-remote给了 bazel-remote 二进制文件。

问题二进制bazel-remote文件正在运行权限错误尝试写入文件夹时。它成功在文件夹内创建目录结构,例如: /var/cache/bazel-remote/cas.v2/00,但它尝试在内部创建文件时失败

我已验证整个文件夹结构的所有者用户和组与运行的动态用户的 UID 相匹配bazel-remote,并且权限设置为755,所以我不明白为什么它不能在那里写入文件。

我已经修改了我的单元文件以使用固定的用户和组,并且它运行正常,因此问题不在于bazel-remote二进制文件本身。但我想使用该DynamicUser功能。

发生了什么事?我该如何解决权限错误?

相关内容