Systemdデバイスファイルにパスワードを渡す一般的な方法はありますか?

Systemdデバイスファイルにパスワードを渡す一般的な方法はありますか?

systemdユニットファイルを使用してサービスを開始したいと思います。サービスを開始するにはパスワードが必要です。誰でも読むことができるので、システムデバイスファイルにパスワードをプレーンテキストで保存したくありません。また、このパスワードをインタラクティブに提供したくありません。

これに対して一般的なスクリプトを作成する場合は、制限付き権限(400または600)を持つルート所有のファイルに資格情報を保存し、そのファイルをスクリプトの一部として読みます。これを行うための特定のシステムスタイルの方法はありますか?それとも、通常のシェルスクリプトと同じプロセスに従う必要がありますか?

ベストアンサー1

要件に応じて、2つの可能なアプローチがあります。もしあなたなら欲しくないサービスを有効にしたときにパスワードを求めるメッセージを表示するには、このEnvironmentFileコマンドを使用します。からman systemd.exec

Environment=に似ていますが、テキストファイルから環境変数を読み込みます。テキストファイルには、改行区切りの変数割り当てを含める必要があります。

もしあなたならするメッセージを表示するには、systemd-ask-password次のいずれかのコマンドを使用できます。からman systemd-ask-password

systemd-ask-passwordは、コマンドラインで指定された質問メッセージを使用して、ユーザーのシステムパスワードまたはパスワードを照会するために使用できます。 TTYで実行すると、TTYにパスワードを照会し、それを標準出力として印刷します。 TTYなしまたは--no-ttyを使用して実行すると、アクティブユーザーが複数のプロキシを介して応答できるようにするシステム全体のクエリメカニズムが使用されます。

おすすめ記事