systemdで安全にパスワードを扱う
systemd にはパスワードを扱う2つのコマンドがある。
- systemd-creds
- systemd-ask-password
systemd-creds は暗号化したファイルにパスワードを保存しておいて、後でそれを展開して使うもの。systemd-ask-password は他のセッションでパスワードを入力させるためのもの。入力待ちのパスワードは systemd-tty-ask-password-agent で確認または応答できる。
systemd-creds は LoadCredentialEncrypted= や SetCredentialEncrypted= で取り出せる。
LoadCredentialEncrypted=name:/etc/credstore.encrypted/name標準的には /etc/credstore.encrypted 以下に暗号化したファイルを置くのが推奨らしく、その場合は相対パスでアクセスできる。また、name とファイル名が同じ場合はファイル名部分も省略可能。
LoadCredentialEncrypted=nameこの辺りについての詳細はユーザー権限でsystemd-credsを使うのほうで書いたのでそちらを見るといい。
v255まではrootしか使えなかったが、per-user encrypted credentialsで —user オプションを追加するPRがマージされてv257で利用可能になった。