systemdで動的ユーザーを使用して秘密ファイルに対する正しい権限

systemdで動的ユーザーを使用して秘密ファイルに対する正しい権限

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/installroot権限で実行されます(したがって、ソースファイルへの読み取りアクセス権を持ちます)。その後、それを%T個人的にインストールされた一時ディレクトリにコピーし、所有者を%u動的ユーザー名に設定しました。同じファイルを使用する複数のサービスインスタンスがある場合は、コピーを使用していくつかの並行性の問題を解決することもできます。

おすすめ記事