systemdサービスから読み取ることができる秘密ファイルがあります。DynamicUser=True
このサービスを使用していて、ConfigurationDirectory=foo
その中に秘密のファイルを入れたが、/etc/foo/
rootユーザーがそのファイルを所有している場合、サービスはそのファイルにアクセスできません。ファイルに0644権限を付与しなければ機能しません。これは少しゴミのように見えます。実際、私はサービスとルートだけがファイルにアクセスできるようにしたいと思います。これを行う方法はありますか?
ベストアンサー1
私はあなたが使用できると確信しています:
ExecStartPre=+/usr/bin/install --owner=%u --mode=600 -T /etc/foo/secrets %T/secrets
+
infontプレフィックスを付けると、/usr/bin/install
root権限で実行されます(したがって、ソースファイルへの読み取りアクセス権を持ちます)。その後、それを%T
個人的にインストールされた一時ディレクトリにコピーし、所有者を%u
動的ユーザー名に設定しました。同じファイルを使用する複数のサービスインスタンスがある場合は、コピーを使用していくつかの並行性の問題を解決することもできます。