web-dev-qa-db-ja.com

sudoがパスワードを1回だけ要求するのに、3回評価するのはなぜですか?

$ Sudo some_command
Password:
Sorry, try again.
Sorry, try again.
Sorry, try again.
Sudo: 3 incorrect password attempts
$

これは、sudoedコマンドに間違ったパスワードを入力したときにシェルが出力するものです。

なぜこれが起こるのでしょうか?


$ Sudo -V
Sudo version 1.6.7p5
$ uname -a
Linux lazer 2.6.18-164.0.0.0.1.el5xen #1 SMP Thu Sep 3 00:34:43 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
$ 
7
Lazer

しばらく前に、PAM構成でRSA SecurIDモジュールを試していましたが、この動作を自分で作成することに成功したので、表示されているものを複製する1つの方法を知っています。

唯一の構成済みのrequiredモジュールとしてまたは他の何よりも前にrequisiteとして失敗する(PAM_AUTH_ERRを返す)pamモジュールがある場合(または同様のその他の可能な構成の数で)効果)、それは即座に失敗をSudoに戻し、それは次に2回再試行し、3つの失敗をすばやく連続して取得します。 (何らかの理由で必要に応じて、失敗を多かれ少なかれ取得するために、passwd_tries/etc/sudoersを3以外の値に構成できます。)

これは最初にパスワードの入力を求めませんが、それを実行できるPAM構成がいくつかあり、最初の失敗後にロックアウトし、次の試行のためにすぐに失敗を返します。

したがって、先に進んで、PAM構成を台無しにしたか、その構成が指す何かが遅延を引き起こさない方法で(正しくまたは正しくなく)失敗していると推測します。 (「通常の」遅延は、通常、nodelay引数を指定しない限り、実際にはpam_unix.soモジュールによって導入されます。)

これを再現する簡単な方法の1つは、

auth       requisite      pam_deny.so

/etc/pam.d/Sudoの既存のauth行のすぐ上。繰り返しになりますが、これはinsta-failureであり、Prompt-once-and-then-failではありませんが、これにより、特定の構成の軌道に乗ることができます。 (私が理解しているように、正しいパスワードを指定すればセットアップは正常に機能するので、構成済みのPAMモジュールの障害時の動作を調べます。)

6
mattdm

これはばかげているかもしれませんが、キーボードは正しく機能していますか?エンターキーを3回押すことができます。

同様のことが私に起こりました:)

0

タイムスタンプを削除するには、Sudo -Kを試してください。タイムスタンプディレクトリ(debianシステムでは/ var/run/Sudo)も見てください。何か問題が発生した可能性があります。

0
philfr