web-dev-qa-db-ja.com

`systemd-ask-password-console.service`の使い方

systemd-ask-password-console.serviceの使用方法は?私の目的は、パスワードプロンプトをトリガーして、some端末で入力を要求することです。

現在、私はそれを次のように試しています:

  1. systemd-ask-password-console.serviceを起動します。
  2. 他のパスワードエージェントが実行されていないことを確認します:ps aux | grep ask
  3. 他のパスワードエージェントを起動しないようにします:systemctl status systemd-ask*
  4. 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)を使用してパスワードを要求することになります。
私は何を間違っていますか?

2
doak

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つのプロセスにのみ渡され、どのプロセスになるかは推測できません。

2
sourcejedi

Systemd-ask-password-console.serviceの使用方法を教えてください。

要するに、あなたはそうではありません。

systemd-ask-password-console.service(8) は、誰かがパスワードを要求したときに対応する.pathユニットを介して自動的に開始されます。パスワードを尋ねるエージェントは同時に起動することを目的としており、ユーザーに最初に到達したエージェントが「勝ち」ます。

実行中のエージェントがリクエストを処理し、何らかの端末(tty1など)を使用してパスワードを要求することを期待しています。

これは正しいです。ただし、「任意の」端末での入力は要求されません。@ sourcejediが 彼の回答 で述べた理由により、現在のLinuxではほとんど不可能です。

参考文献

2
intelfx