web-dev-qa-db-ja.com

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

メンテナンスが不十分なシステムのアカウントがロックアウトされている場合があります。問題は、アカウントをロックアウトするさまざまな方法があり、それぞれに独自のロック解除方法があることです。

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

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

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

12
wfaulk

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

passwdおよびchageユーティリティも、アカウントロックの多くをリストします。

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
13
user9517

一般的に:いいえ。

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

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

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

7
larsks

前述のpasswdchagegetentに加えて、pam_tally2もあります。

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

1
Jistanidiot

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

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