systemd-ask-password-console.service
の使用方法は?私の目的は、パスワードプロンプトをトリガーして、some端末で入力を要求することです。
現在、私はそれを次のように試しています:
systemd-ask-password-console.service
を起動します。ps aux | grep ask
systemctl status systemd-ask*
systemd-ask-password --no-tty "Password:"
を実行して、パスワードエージェントをトリガーします。ステップ3は、エージェントがパスワードを返すのを待っており、最終的にタイムアウトします。その間、リクエストは/run/systemd/ask-password/
内で確認できます。
systemctl status systemd-ask-password-console.service
は以下を示します:
● systemd-ask-password-console.service - Dispatch Password Requests to Console
Loaded: loaded (/lib/systemd/system/systemd-ask-password-console.service; static; vendor preset:
Active: active (running) since Fri 2018-05-11 16:46:43 CEST; 6min ago
Docs: man:systemd-ask-password-console.service(8)
Main PID: 392 (systemd-tty-ask)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/systemd-ask-password-console.service
├─392 /bin/systemd-tty-ask-password-agent --watch --console
└─393 /bin/systemd-tty-ask-password-agent --watch --console=/dev/tty1
May 11 16:46:43 debian systemd[1]: Started Dispatch Password Requests to Console.
実行中のエージェントがリクエストを処理することを期待しますandそれが何らかの端末(たとえばtty1)を使用してパスワードを要求することになります。
私は何を間違っていますか?
systemd-ask-password-console.serviceは、コンソールでシステムパスワード(ハードディスク暗号化キーやSSL証明書パスフレーズなど)をユーザーに問い合わせるシステムサービスです。これは、ブートに必要なパスワードの適切な処理を保証するために使用することを意図していますブート中。 systemd-ask-password-wall.serviceは、ログインしているすべてのユーザーにwall(1)を介してシステムパスワードを通知するシステムサービスです。これは、ユーザーに適切に通知されるようにするために使用されますブート後。
https://www.freedesktop.org/software/systemd/man/systemd-ask-password-console.service.html
別のプロセス(sh
またはlogin
)がすでにコンソールから読み取っている間は、コンソールから確実に読み取ることができないためです。より具体的には、ユーザー入力は1つのプロセスにのみ渡され、どのプロセスになるかは推測できません。
Systemd-ask-password-console.serviceの使用方法を教えてください。
要するに、あなたはそうではありません。
systemd-ask-password-console.service
(8) は、誰かがパスワードを要求したときに対応する.path
ユニットを介して自動的に開始されます。パスワードを尋ねるエージェントは同時に起動することを目的としており、ユーザーに最初に到達したエージェントが「勝ち」ます。
実行中のエージェントがリクエストを処理し、何らかの端末(tty1など)を使用してパスワードを要求することを期待しています。
これは正しいです。ただし、「任意の」端末での入力は要求されません。@ sourcejediが 彼の回答 で述べた理由により、現在のLinuxではほとんど不可能です。