suがパスワードを何度も尋ねるようにします。

suがパスワードを何度も尋ねるようにします。

私はDebian 8を使用していますが、パスワードを入力するとsuプロンプトが一度だけ表示されます。間違ったパスワードを入力すると、再試行してすぐに再入力を開始したいのですが、パスワードの一部がシェルに表示されます。

+を使用してキャンセルするsuまでパスワードを再度尋ねるように設定するにはどうすればよいですか?CtrlC

/etc/sudoers、、、/etc/pam.d/*を見ようとしたところ/etc/login.defsunix.SEの問題残念ながら、これは不完全です。

ベストアンサー1

これらのPAMモジュールは、あなたのニーズにほぼ正確に合わせることができる柔軟性レベルを提供します。コメントに残した回答に基づいて、失敗する前に3回の試みを許可しますsu。これが私がここで提案するものです。

私は強くお勧めします変更したすべての構成ファイルをバックアップPAMし、どこかにルートシェルを開き、破損した変更を元に戻す準備が整いました。変更した後はPAM、まだログインしてrootアクセス権を取得できるかどうかをテストすることが重要です。間違えれば、システムを完全にフラッシュできます。

これらのPAMファイルはに/etc/pam.dあり、それを変更するにはrootアクセスが必要です。

Debian 8のファイルには、su認証行と含まれているファイルへの参照が含まれていますcommon-auth。それらを合わせると次のようになります。

auth    sufficient pam_rootok.so

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    requisite                       pam_deny.so

auth    required                        pam_permit.so
auth    optional                        pam_cap.so

興味深いのは、パスワードデータベース(および)に対して認証するpam_unix.so呼び出しです。このコンポーネントは、モジュールが成功ステータスを返すと、次のN個のモジュールをスキップしたことを通知します。したがって、設定から成功リターンを受け取ると、失敗モジュールはスキップされます。/etc/passwd/etc/shadow[success=N]PAMpam_unix.sopam_deny.so

このアプローチを使用して、次のように2回以上認証試行を構築できます。

auth    sufficient pam_rootok.so

auth    [success=3 default=ignore]      pam_unix.so nullok_secure
auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth    requisite                       pam_deny.so

auth    required                        pam_permit.so
auth    optional                        pam_cap.so

ここまでで作業が完了します。


SAMBAまたは他の外部認証方式を実行している場合は、変更を少し調整する必要があります。私のシステムの1つにはこのような追加のチェックがありますpam_winbind.so。このアイテムもコピーする必要があるため、ここから始めることができます。

auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    requisite                       pam_deny.so

これに関して:

auth    [success=6 default=ignore]      pam_unix.so nullok_secure
auth    [success=5 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    [success=4 default=ignore]      pam_unix.so nullok_secure
auth    [success=3 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    requisite                       pam_deny.so

おすすめ記事