コンプライアンスのために、UNIXコンピュータでローカル(ユーザーおよび非ユーザー)アカウントの作成日に関する情報を取得する必要があります。
この種の情報を収集する方法(最も信頼性が高く正確な方法ではありません)がありますか?
たとえば、代わりにhome
(ユーザーアカウントのために)ディレクトリ作成日を検索しましたが、POSIX準拠のシステムではファイル生成タイムスタンプが利用できないことがわかりました。
ベストアンサー1
アカウントの作成が記録されることがあります。 Linuxでは(Universal Shadowユーティリティスイートを使用している場合)、ツールのuseradd
下にログエントリを作成しますauth.info
。このログは通常、/var/log/secure
または/var/log/auth.log
(配布盤に応じて)にあります。
このアカウントがなくてもバックアップを確認/etc/passwd
し、最新のバックアップが何であるかを確認できます。使用してお勧めしますマネージャーをお待ちください変更を追跡する/etc
とgit annotate /etc/passwd
答えが得られます。 (実際にgit annotate
ユーザー項目が最後に変更された時期をお知らせします。この回答の範囲を超えて自動化をさらに詳しく見ると、その項目が追加された時期がわかります。)
監査ログ、バックアップ、修正履歴が不足している場合は、ヒューリスティックを使用する必要があります。良い手がかりは、最も古いファイルのinode変更時間(ctime)です。この経験的な方法は両方の方法で機能できます。ディレクトリがユーザーのホームディレクトリに移動されると、古いctimeを含むファイルが含まれる可能性があります(ただし、ユーザーより古いファイルの場合、そのuidは変更時にユーザーのuidである必要はありません)。 ctime アップデートが含まれているため、ユーザーに属していないファイルをスキップできます。逆に、特定のイベントはファイルのctimeを変更する可能性があります(たとえば、システム全体がバックアップから復元される場合など)。ユーザーが一度も変更したことのないファイルをls -Alctr ~bob
含めることができる(通常の場合)、ユーザーのホームディレクトリ(| sed -n 2p)から始めて、.sed拡張子を持つ古いファイルがあるかどうかを確認できます。 zshを使用して 。/etc/skel
.bash_logout
find ~bob ! -cnewer ~bob/.bash_logout -user bob
ls -ld ~bob/**/*(Doc[1]u:bob:)