Yerel Hesap Oluşturma Tarihi


9

Uyumluluk amacıyla UNIX makinelerinde yerel (kullanıcı ve kullanıcı olmayan) hesapların oluşturulma tarihi ile ilgili bilgi getirilmesine ihtiyaç vardır.

Bu tür bilgileri toplamak için herhangi bir yol var mı (en güvenilir veya doğru yöntem olmasa bile)?

Örneğin, alternatif olarak, homedizin oluşturma tarihi aramaya gittim (kullanıcı hesapları için), ancak POSIX uyumlu sistemler için dosya oluşturma için zaman damgalarının bulunmadığını keşfettim.


Kaba bir yaklaşım olarak, en iyi bahis bazı adli kazı yapmak olduğunu düşünüyorum /var/log/auth.log(siz de döndürülmüş günlüklerine gerekebilir: /var/log/auth.log.1, /var/log/auth.log.2.gz, ...). Bu, kullanıcı hesabının kimliğinin doğrulandığı ilk tarih hakkında size bir ipucu verecektir. Bu sistem kullanıcıları için çalışmaz ve hesaplar sysloggünlüğünüzün rotasyon döneminden daha uzun bir süre önce oluşturulduysa da başarısız olur .
Joseph R.

bu özel bilgiler varsayılan olarak hiçbir yerde saklanmaz. ancak modifikasyonu tarihini kontrol deneyebilirsiniz/home/user
Nidal

Yanıtlar:


3

Eğer oluşturulan ve dokunmamıştı kullanıcı yaratılıştan bu yana kullanabilirsiniz .bash_logouttarihini belirlemek için dosyayı. Kök çalışması olarak:

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

VEYA, Kullanıcının bir giriş dizini varsa, dizinin son değişiklik tarihini kontrol edebilirsiniz:

ls -ld /home/username/

yalnızca kullanabileceğiniz tarihi almak için awk:

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

kaynak


ls -ld /home/username/ev yöneticisinin değişiklik süresini verir; bu, ev dizinine bir dosya eklendiğinde veya kaldırıldığında bu sürenin güncellenmesi göz önüne alındığında yararlı olma olasılığı düşüktür.
Gilles 'SO- kötü olmayı kes'

3

Hesap oluşturma günlüğe kaydedilebilir. Linux altında (ortak gölge yardımcı programı kullanıyorsanız), useraddtesisin altında bir günlük girişi yapar auth.info. Bu günlük genellikle /var/log/secureveya içinde bulunur /var/log/auth.log(dağıtıma bağlıdır).

Yedeklemelerinizi kontrol edebilir /etc/passwdve bu hesaba sahip olmayan en genç yedeklemenin hangisi olduğunu görebilirsiniz. Etckeeper'ı değişiklikleri takip etmek için kullanıyorum ve tavsiye ediyorum/etc , bu yüzden git annotate /etc/passwdbana cevap vereceğim. (Aslında git annotatebir kullanıcının girişinin en son ne zaman değiştirildiğini söylerdi; otomasyonu bu cevabın kapsamı dışında kalan biraz daha fazla kazma, girişin ne zaman eklendiğini söylerdi.)

Denetim günlükleri, yedeklemeler ve düzeltme geçmişiniz yoksa, buluşsal yöntemlere başvurmanız gerekir. İyi bir ipucu, inode değiştirme süresi (ctime) en eskisi olan dosyadır. Bu sezgisel tarama her iki şekilde de uzanabilir: eğer bir dizin kullanıcının evine taşınırsa, eski bir ctime değerine sahip dosyalar içerebilir (ancak kullanıcılardan daha eski olmaları için, kullanıcı kimlikleri değişiklik olarak kullanıcınınki gibi olmamalıdır uid, ctime'ın güncellenmesini içerir, böylece kullanıcının sahibi olmayan dosyaları atlayabilirsiniz); tersine, bazı olaylar bir dosyanın ctime değerini değiştirebilir (örneğin, tüm sistem bir yedeklemeden geri yüklendiyse). Kullanıcının hiç değiştirmediği ( ortak bir ls -Alctr ~bobdosyadır) dosyaları içerebilen kullanıcının ana dizininden ( | sed -n 2p) başlayabilir ve daha eski dosyalar olup olmadığını görebilirsiniz . Zsh ile çalıştırın/etc/skel.bash_logoutfind ~bob ! -cnewer ~bob/.bash_logout -user bobls -ld ~bob/**/*(Doc[1]u:bob:).


1
$ chage -l fred

Şifre değiştirme tarihini kontrol eder.


+1: Diğer yanıtlarla karşılaştırıldığında, denetim günlükleri (kullanılabilir olması gerekmeyen) ve LDAP (yerel bir hesaba gönderme yapmayan) dışında, oluşturma işlemini belirlemek için güvenilir yöntemlerimiz yoktur bazı fikirler edinmek için bakmak için bir grup özellik. Bu onlardan biri ve benim sistemimde en doğru olduğu ortaya çıktı (insanlar sadece şifreleri değiştirmedi), ancak günlerin hassasiyeti ile.
user1182474

1

Yerel kullanıcılar için, onu kaydeden sistemler ve dosya sistemleri (Linux, çoğu BSD, en azından macOS) için ana dizin doğum zamanlarına bakabilirsiniz . Bunun nasıl yapılacağı sisteme göre değişir .

LDAP dizinlerindeki kullanıcılar için , karşılık gelen LDAP girişlerinin createTimestamp(veya muhtemelen whenCreated) özelliklerine bakabilirsiniz :

ldapsearch -LLL -x -H ldaps://ldap.example.com -s sub \
  -b dc=example,dc=com 'uid=username' createTimestamp whenCreated
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.