ttyでパスワードフィードバックを有効にできますか?

ttyでパスワードフィードバックを有効にできますか?

数週間前に、私はキーボードをクリーンアップすることを決め、キーボードをボードに戻している間、いくつかのキーを台無しにしました。その結果、特定の文字を入力するのが非常に困難になりました。おそらくそれらのいくつかをパスワードに使用したようです。

もちろん、キーボードを交換する予定ですが、これまでttyで1日4〜5回のログインを試みる必要があることが気になり始めました(私はデスクトップマネージャを使用していません)。

pwfeedbackconfigでこれを設定して、この問題をある程度緩和しましたsudo。これにより、キーボードが文字をスキップしたときに「見る」ことができます。しかし、同様のagetty組み合わせオプションが見つかりませんlogin

ttyログインプロンプトのパスワードフィードバックを有効にする方法はありますか?

答え1

さて、ソースコードを見てみましょう!

util-linux私のログインプロンプトが表示されたら、loginプログラムはそれを処理しています。始めましょうそこ、より具体的にはlogin-utils/login.c文書。

これでプロンプトloginに対して責任があるようです。loginloginpam_get_promptPAMに登録してください。init_loginpam。これloginpam_authその後、その機能が引き継がれ、制御権がPAMに付与されます。pam_authenticate機能。これはlogin、ユーザー名プロンプトのみを定義し、それ以上は定義しないことを意味します。

PAMの場合:私たちが興味を持っていることは明らかに次のように起こりました。pam_authenticate:

pam_authenticate 関数はユーザーの認証に使用されます。認証サービスによっては、ユーザーは認証トークン(通常はパスワードだけでなく指紋)も提供する必要があります。

シャドウベースの認証(/etc/passwd/etc/shadow)はこのモジュールで処理されますpam_unix。マイディストリビューション(Arch)は、次のようにPAMを提供します。pamパッケージは、私たちの旅行が続くことを意味します。linux-pam.orgそしてソースコードmodules/pam_unix/pam_unix_auth.c良い出発点のようです。 PAMモジュールは、私たちが見つけた機能を通してpam_sm_authenticate認証メカニズムを提供します。ここ。パスワード(または「認証トークン」、上記を参照)は次のように取得されます。電話PAMへpam_get_authtok機能。それにsecurity/pam_ext.hヘッダファイルはまさに私たちが次に行くところです。

extern int PAM_NONNULL((1,3)) 
pam_get_authtok (pam_handle_t *pamh, 
                 int item, 
                 const char **authtok, 
                 const char *prompt);

これらの主張のどれもあまり有望ではありませんが…まあ…定義。パラメータとforがpam_unix渡されたため、次のように終了します。NULLpromptPAM_AUTHTOKitemここ。今ハードコーディングはPAM_PROMPT_ECHO_OFF私にとっては良くありませんpam_prompt...

retval = pam_prompt (pamh, PAM_PROMPT_ECHO_OFF, &resp[0], "%s", PROMPT);

しかし、パスワードPROMPTもハードコードされています(ここ)、だからもう少しエキゾチックなパスワードプロンプトへの私の夢は破線になりました...とにかく、一度見てみましょうpam_prompt機能。表示される実際のプロンプトは次のとおりです。ここ、PAMが会話関数を呼び出し、いくつかの行を取得する場合以上。早く見てくださいpam_get_itempam_set_item機能は私たちに以下を紹介します。pam_conv構造の定義ここ

これで、基本的なPAMセッション機能に関する情報を見つけることは予想よりはるかに困難です。私が見るすべての構造はまだ初期化されておらず、pam_unix独自の構造が定義されていないようです。しかし、私は普遍性を見つけました。misc_convPAM_PROMPT_ECHO_OFF渡される関数read_stringそして…ここPAM が入力フィードバックを無効にする場所です。

結論として:パスワードフィードバックはハードコーディングされません。本当にひどいです。少しの破棄が私を得た。このGitHubの問題そしてこのアーチBBSテーマ。確かに、この機能を使用できますPAMが認証標準ではなかった時代。セキュリティなどすべてをこれ以上実装しないのが合理的だと思います。しかし、オプションがあれば良いでしょう。

とにかく、ちょうど新しいキーボードを注文しました。

関連情報