GNU/Linuxディストリビューションへのログインに時間がかかりすぎる

GNU/Linuxディストリビューションへのログインに時間がかかりすぎる

だから、

私のユーザー名とパスワード(ttyで)を使用してログインしようとしていて、間違ったパスワードを入力した場合は待つ必要があります。5秒システムでパスワードが間違っていることを伝えます。

認証手順にはなぜこの時間がかかりますか?

GNU/Linux ディストリビューション: Archlinux。

ベストアンサー1

いくつかの歴史的観点を追加すると、間違ったパスワードを入力した後に眠りに落ちるという考えは、PAMベースのシステムにしか存在しません。とても古いです。例えば4.4BSDログインソースコード次のようなおいしい作品を見つけることができます。

/* we allow 10 tries, but after 3 we start backing off */
if (++cnt > 3) {
        if (cnt >= 10) {
                badlogin(username);
                sleepexit(1);
        }
        sleep((u_int)((cnt - 3) * 5));
}

したがって、最初の3つの失敗は無料で、次の7つの失敗は遅延(5秒、10秒、15秒...)を追加し、10回後はsleepexit(1)5秒遅延を実行してから実行しますexit(1)

スリープモードは、コンソールにパスワードを入力するのは面倒ですが、プロセスを自動化できるリモートユーザーが入力する場合は重要です。

次の10のsleepexit失敗については特別な説明が必要です。ログアウトしたら、logingettyのログインプロンプトを印刷してループを再開します。それでは、寝てはいけません。この機能が導入されたときは、ダイヤルアップによるログインが一般的だったからです。 (1995年以前にモデムを使ったことがない人は注目してください。ログインダイヤルアップPPPや他のパケットベースのプロトコルではなくダイヤルアップ経由。ターミナルエミュレータから電話をかけてログインプロンプトを受け取ることができます。 )

ダイヤルアップの世界では、誰でも自分の番号に電話をかけてパスワードを入力できます。したがって、パスワードloginを何度も間違って入力すると、プロセスが終了してモデム接続が終了し、パスワードを再試行する前に電話をかける必要があります。今日も同じ原則が適用されていますが、ssh(設定オプションMaxAuthTries)モデムに電話をかけるのはTCPハンドシェイクよりはるかに遅いので、これまではうまくいきました。

おすすめ記事