ttyにユーザー名を入力した後にパスワードプロンプトが少し遅れるのはなぜですか?

ttyにユーザー名を入力した後にパスワードプロンプトが少し遅れるのはなぜですか?

私はこのような行動をしていますが、それをどのように呼ぶかわからないので、それを修正する方法や修正するために検索すらできません。

何が起こるかは次のとおりです。

初めて起動するときにユーザー名を入力してRetrunパスワードを押すと、約0.5秒または1/4秒後にプロンプ​​トが表示されます。問題は、ユーザー名を入力した後、通常はキーを押してReturnすぐにパスワードを入力し始めることです。しかし、Password:まだそのようなことは起こらないので、tty私が直接入力した文字が画面に印刷され始めます。

Usernameたとえば、私のユーザー名とパスワードが、と仮定しますPassword。ログインするようになればtty1こんな姿になりそうです。最初に「Pa」がある理由は、Password:「Password」が実際に表示される前に入力を開始したためです。

Debian GNU/Linux stretch/sid hostname tty1

hostname login: Username
PaPassword:

もちろん、簡単な解決策は、ユーザー名を入力してしばらく待ってからパスワードを入力することですが、この問題の原因をもう少し詳しく調べたいと思います。ある日、メッセージが1/4秒以上(例:数秒)遅れて最終的Password:に表示される前に、誤ってパスワード全体を画面に入力するのではないかと心配です。

ここで何が起こっているのかを知る方法はありますか?

ベストアンサー1

TTYのデフォルトの動作は、ユーザーが画面に入力するすべての内容をエコー(即時表示)することです。これにより、キーの押下に関する即時フィードバックが提供されます。これはlogin:プロンプトが表示されたときのTTYデバイスのモードです。

パスワードを要求する前に、ログインプログラムは次のTTYモードを変更するためにシステムコールを実行します。いいえ入力した文字をエコーし​​ます(入力時にパスワードが表示されないように)。ただし、ログインプログラムが実際にシステムコールを実行する前に文字入力を開始すると、その文字が表示されます。

パスワードを要求すると、ログインプログラムはTTYエコーモードをデフォルトに戻します(ユーザーが入力したものをエコーし​​ます)。

おすすめ記事