Tanggal Pembuatan Akun Lokal

9

Untuk tujuan kepatuhan ada kebutuhan untuk mengambil informasi mengenai tanggal pembuatan akun lokal (pengguna dan non-pengguna) pada mesin UNIX.

Apakah ada cara (bahkan jika itu bukan metode yang paling dapat diandalkan atau akurat) untuk mengumpulkan informasi semacam itu?

Sebagai contoh, sebagai alternatif, saya pergi mencari hometanggal pembuatan direktori (untuk akun pengguna), tetapi saya menemukan bahwa untuk cap sistem sistem POSIX-compliant untuk pembuatan file tidak tersedia.

antiauthor
sumber
Sebagai perkiraan kasar, saya pikir Anda terbaik adalah untuk melakukan beberapa menggali forensik di /var/log/auth.log(Anda mungkin perlu melihat di log diputar juga: /var/log/auth.log.1, /var/log/auth.log.2.gz, ...). Ini akan memberi Anda petunjuk tentang tanggal pertama akun pengguna diautentikasi. Ini tidak akan bekerja untuk pengguna sistem, dan juga akan gagal jika akun dibuat lebih lama dari syslogperiode rotasi log Anda.
Joseph R.
informasi spesifik ini tidak disimpan di mana pun secara default. tetapi Anda dapat mencoba memeriksa tanggal modifikasi/home/user
Nidal

Jawaban:

3

Jika dibuat dan tidak disentuh sejak pembuatan pengguna Anda dapat menggunakan .bash_logoutfile untuk menentukan tanggal. Sebagai root run:

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

ATAU, Jika pengguna memiliki direktori home, Anda dapat memeriksa tanggal modifikasi terakhir direktori itu:

ls -ld /home/username/

hanya untuk mendapatkan tanggal yang dapat Anda gunakan awk:

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

sumber

Nidal
sumber
ls -ld /home/username/memberikan waktu modifikasi direktori home, yang sepertinya tidak akan berguna mengingat waktu ini diperbarui setiap kali file ditambahkan atau dihapus di directoy rumah.
Gilles 'SO- stop being evil'
3

Pembuatan akun dapat dicatat. Di Linux (jika menggunakan common shadow utility suite), useraddbuat entri log di bawah fasilitas auth.info. Log ini biasanya terletak di /var/log/secureatau /var/log/auth.log(tergantung pada distribusi).

Anda dapat memeriksa cadangan Anda /etc/passwddan melihat mana cadangan termuda yang tidak memiliki akun ini. Saya menggunakan dan merekomendasikan penjaga etc untuk melacak perubahan /etc, jadi git annotate /etc/passwdakan memberi saya jawabannya. (Sebenarnya git annotateakan memberi tahu saya kapan terakhir kali entri pengguna diubah; sedikit lagi penggalian yang otomasinya di luar cakupan jawaban ini akan memberi tahu saya ketika entri ditambahkan.)

Jika Anda tidak memiliki log audit, cadangan, dan riwayat revisi, Anda harus menggunakan heuristik. Petunjuk yang baik adalah file yang waktu perubahan inode (ctime) adalah yang tertua. Heuristik ini bisa terletak pada dua cara: jika suatu direktori dipindahkan ke rumah pengguna, mungkin berisi file-file dengan waktu lama (tetapi bagi mereka untuk menjadi lebih tua dari pengguna, cairan mereka tidak harus menjadi milik pengguna sebagai perubahan). tentang uid melibatkan memperbarui waktu, sehingga Anda dapat melewati file-file yang tidak dimiliki oleh pengguna); sebaliknya, beberapa peristiwa dapat mengubah waktu file (mis. jika seluruh sistem dipulihkan dari cadangan). Anda dapat mulai dari direktori home pengguna ( ls -Alctr ~bob| sed -n 2p), yang mungkin berisi file /etc/skelyang tidak pernah dimodifikasi oleh pengguna ( .bash_logoutadalah yang umum), dan lihat apakah ada file yang lebih lama find ~bob ! -cnewer ~bob/.bash_logout -user bob. Dengan zsh, jalankanls -ld ~bob/**/*(Doc[1]u:bob:).

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1
$ chage -l fred

Cek tanggal perubahan kata sandi.

Pablo
sumber
+1: Dibandingkan dengan jawaban lain, dengan pengecualian log audit (yang tidak harus tersedia) dan LDAP (yang tidak merujuk ke akun lokal), kami tidak memiliki metode yang dapat diandalkan untuk menentukan pembuatan tanggal, hanya sekelompok atribut untuk dilihat untuk mendapatkan beberapa ide. Ini adalah salah satu dari mereka dan pada sistem saya itu ternyata menjadi yang paling akurat (orang tidak mengubah kata sandi), meskipun hanya dengan ketepatan hari.
user1182474
1

Untuk pengguna lokal, Anda dapat melihat waktu kelahiran direktori home mereka untuk sistem dan sistem file yang merekamnya (Linux, sebagian besar BSD, setidaknya MacOS). Cara melakukannya bervariasi dengan sistem .

Untuk pengguna di direktori LDAP, Anda dapat melihat createTimestamp(atau mungkin whenCreated) atribut dari entri LDAP yang sesuai:

ldapsearch -LLL -x -H ldaps://ldap.example.com -s sub \
  -b dc=example,dc=com 'uid=username' createTimestamp whenCreated
Stéphane Chazelas
sumber