Unixユーザーアカウントがロックされているすべての方法を見つける方法


12

メンテナンス不足のシステムにロックアウトされたアカウントがある状況にときどき遭遇します。問題は、アカウントをロックアウトできるさまざまな方法があり、それぞれ独自のロック解除方法があることです。

アカウントが不適切にロックされているということではなく、予想外にロックされているわけではありませんが、リセットする正しいロックを見つけることは困難です。

この問題に対する私の最近の攻撃はSUSEシステムに対するものであり、パスワードの有効期限が切れていることが判明しました(ログイン試行がそのようなフィードバックを提供するシステムを介していないため、最初はわかりませんでした)。ログインに失敗したため。

考えられるさまざまなアカウントロックのすべてのリストとそれらを無効にする方法はありますか?ホームディレクトリアクセスの問題、破損したPAMライブラリなど、実際の破損をこの質問の範囲外にするつもりです。

回答:


13

passwdアカウントがロックされている場合など、いくつかの情報を収集するために使用できます

passwd -S user
user LK 2012-11-06 0 99999 7 -1 (Password locked.) (CentOS)
user L 01/22/2013 0 99999 7 -1 (Ubuntu)

chageユーティリティは、期限が切れていないパスワードのアカウントなどの各種タイマに関する情報を提供します

chage -l user
Last password change                                    : Nov 12, 2012
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

期限切れのパスワードの場合

chage -l user
Last password change                                    : password must be changed
Password expires                                        : password must be changed
Password inactive                                       : password must be changed
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 22
Number of days of warning before password expires       : 33

ユーティリティも、アカウントロックの多くをリストアップ。passwdchage

getent検査のために関連するデータベースから直接情報を引き出すために使用できます

getent passwd user
user:x:505:505::/home/passtest:/sbin/nologin  <-- denied login
getent shadow user
user:!!:0:0:22:33:44::   <-- this is locked

7

一般的に:いいえ。

Iainの答えは、パスワードエージングシステムをクエリする方法の良い要約ですが、あらゆる種類のことを逃しました。例えば:

  • sshを介してログインしようとする人は、sshd構成内のディレクティブによって禁止される可能性があります。
  • 特定のネットグループのメンバーのみがログインできるようにシステムを構成できます。
  • ローカルPAM設定では、ログインするために明示的なグループメンバーシップが必要な場合があります。または、特定のユーザーリストのみを許可する場合があります。
  • ロックされたアカウントのように見えるものは、ホームディレクトリアクセスの問題であることが判明する場合があります。
  • 誰かが作成した可能性が/etc/nologinあり、一部のアプリケーション(例:)ではsshすべてのユーザーをロックアウトします。

言い換えれば、passwdファイルとは関係のないアカウントをロックアウトする方法はたくさんあります。最善の策は、確認する/var/log/secureか、配布に適したローカルアナログを確認することです。


私は、物事が「壊れた」ものではなく、ユーザーが以前にログインできたと仮定する質問をしようとしていました。つまり、適切に機能している一部のシステムがアカウントをロックアウトしたということです。これらは良い点ですが、質問をもう少し明確にするために更新します。
wfaulk

1

前述に加えて、passwd chagegetent、もありますpam_tally2

失敗したログイン試行回数が許容限度(/etc/pam.d/password-authで設定)を超えている場合、pam_tally2 --user=foo --reset再度ログインする前に行う必要があります。


0

次のスクリプトは、すべてのユーザーとそのステータス(ロックされているかどうか)の簡単な説明を提供します

cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }'

これは、アカウントをロックできる方法の1つのみをチェックします。
wfaulkが
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.