systemdサービス:EnvironmentFileディレクティブはどのユーザーに読み込まれますか?

systemdサービス:EnvironmentFileディレクティブはどのユーザーに読み込まれますか?

次のように構成されたsystemdサービスがあります。

[Unit]
Description=example systemd service unit file.

[Service]
ExecStart=/path/to/program
EnvironmentFile=/etc/program.conf
User=someuser

[Install]
WantedBy=multi-user.target

今問題は、EnvironmentFileどのユーザーが読んでいるかということです。行動するのかroot、行動するのかsomeuser?文書はあまり明確ではありませんが、テキストは次のとおりです。

このディレクティブでリストされたファイルは、プロセスが実行される直前に読み取られます(具体的には、前のデバイス状態のすべてのプロセスが終了した後)。これは、1つのデバイス状態でこれらのファイルを生成し、このオプションを使用して、次のデバイス状態でファイルシステムの変更(バインドマウントなど)が発生する前に、サービスマネージャのファイルシステムから読み取ることができることを意味します。

したがって、バインドマウントをで行う必要があるかもしれません。これは、バインドマウントの前にroot環境ファイルを読み取るので、環境ファイルをに読み込むと仮定できることを意味しますか?root

試してみることができますが、それについての文書がより明確ではないという事実に少し驚きました。たぶん私が間違った場所を探しているのかもしれません。

ベストアンサー1

EnvironmentFileいくつかの実験で読み込まれていることを確認できますroot。したがって、定義された環境変数は、にEnvironmentFile属し、root同様の権限を持っていても0600実行されるプロセスに設定されますUser=someuser

おすすめ記事