ローカルアカウント作成日


9

コンプライアンスの目的で、UNIXマシン上のローカル(ユーザーおよび非ユーザー)アカウントの作成日に関する情報をフェッチする必要があります。

そのような情報を収集する方法はありますか(最も信頼できる方法や正確な方法でなくても)。

たとえば、別の方法として、home(ユーザーアカウントの)ディレクトリ作成日を検索しましたが、POSIX準拠のシステムでは、ファイル作成のタイムスタンプが利用できないことがわかりました。


粗製の近似として、私はあなたの最善の策は、いくつかの法医学掘削を行うことだと思います/var/log/auth.log(あなたが同様に回転ログで見る必要があるかもしれません:/var/log/auth.log.1/var/log/auth.log.2.gz、...)。これにより、ユーザーアカウントが認証された最初の日付についての手掛かりが得られます。ただし、これはシステムユーザーには機能しません。また、アカウントがsyslogのログローテーション期間よりも前に作成された場合も失敗します。
ジョセフR.

この特定の情報は、デフォルトではどこにも保存されません。しかし、変更日を確認してみることができます/home/user
Nidal

回答:


3

ユーザーが作成してから作成されていない場合は、.bash_logoutファイルを使用して日付を決定できます。ルートとして:

ls -l /home/<username>/.bash_logout

または、ユーザーがホームディレクトリを持っている場合は、そのディレクトリの最終変更日を確認できます。

ls -ld /home/username/

使用できる日付のみを取得するにはawk

ls -ld /home/username/ | awk '{ print $6,$7,$8 }'

ソース


ls -ld /home/username/ホームディレクトリの変更時刻を指定します。この時刻は、ホームディレクトリでファイルが追加または削除されるたびに更新されるため、役に立ちません。
Gilles「SO-邪悪なことをやめなさい」2014

3

アカウントの作成が記録される場合があります。Linux(共通のシャドウユーティリティスイートを使用している場合)ではuseradd、ファシリティの下にログエントリを作成しますauth.info。このログは通常、/var/log/secureまたはにあります/var/log/auth.log(ディストリビューションによって異なります)。

バックアップを確認して、/etc/passwdこのアカウントを持たない最も新しいバックアップを確認できます。私が使用してお勧めしますetckeeperの変化を追跡するために、/etcそう、git annotate /etc/passwd私に答えを与えるだろう。(実際にgit annotateは、ユーザーのエントリが最後に変更されたときに通知されます。自動化がこの回答の範囲外であるもう少し掘り下げると、エントリが追加されたときに通知されます。)

監査ログ、バックアップ、変更履歴がない場合は、ヒューリスティックスを使用する必要があります。良い手がかりは、iノード変更時刻(ctime)が最も古いファイルです。このヒューリスティックは、両方の方法で成り立つ可能性があります。ディレクトリがユーザーのホームに移動された場合、古いctimeのファイルが含まれている可能性があります(ただし、ユーザーよりも古い場合は、変更としてユーザーのuidである必要はありません。 uidにはctimeの更新が含まれるため、ユーザーが所有していないファイルをスキップできます); 逆に、一部のイベントはファイルのctimeを変更する可能性があります(たとえば、システム全体がバックアップから復元された場合)。ユーザーのホームディレクトリ(ls -Alctr ~bob| sed -n 2p)から開始できます。これには/etc/skel、ユーザーが変更したことがない(.bash_logout一般的な)ファイルが含まれている可能性があり、で古いファイルがあるかどうかを確認できますfind ~bob ! -cnewer ~bob/.bash_logout -user bob。zshで実行ls -ld ~bob/**/*(Doc[1]u:bob:)


1
$ chage -l fred

パスワード変更日を確認します。


+1:他の回答と比較して、監査ログ(利用可能である必要はない)とLDAP(ローカルアカウントを参照しない)を除いて、作成を判断する信頼できる方法はありません日付、いくつかのアイデアを得るために見るべき属性の集まり。これはそのうちの1つであり、私のシステムでは実際には最も正確であることがわかりました(人々は単にパスワードを変更しませんでした)が、日数の精度しかありませんでした。
user1182474 2018

1

ローカルユーザーの場合は、それを記録するシステムおよびファイルシステム(Linux、ほとんどのBSD、macOS)のホームディレクトリの誕生時刻を確認できます。その方法はシステムによって異なります

LDAPディレクトリ内のユーザーのcreateTimestamp場合whenCreated、対応するLDAPエントリの(場合によっては)属性を確認できます。

ldapsearch -LLL -x -H ldaps://ldap.example.com -s sub \
  -b dc=example,dc=com 'uid=username' createTimestamp whenCreated
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.