具有 DynamicUser 的 Systemd 服務無法寫入其 CacheDirectory

具有 DynamicUser 的 Systemd 服務無法寫入其 CacheDirectory

我正在運行 OpenSuse Leap 15.4。

我已經建立了一個單元文件bazel-遠端遠端快取伺服器,用於 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功能。

可能發生什麼事?如何解決權限錯誤?

相關內容