LinuxTemelOturum açma kayıtları

wtmp, btmp ve lastlog

İkili oturum muhasebesi: wtmp oturum açma, kapatma ve yeniden başlatma; btmp başarısız denemeler; lastlog UID bazında son oturum; hepsinde 32 bit zaman sınırı.

01Konum

  • /var/log/wtmp
  • /var/log/btmp
  • /var/log/lastlog
  • /var/run/utmp (current sessions)
  • /var/lib/wtmpdb/wtmp.db (wtmpdb, where used)
  • /var/lib/lastlog/lastlog2.db (lastlog2, where used)

02Yanıtladığı sorular

  • Kim, hangi terminalde, hangi ana makineden oturum açtı ve ne zaman kapattı?
  • Sistem ne zaman açıldı, yeniden başlatıldı veya kapatıldı?
  • Başarısız oturum açma denemeleri oldu mu, nereden?
  • Her hesap en son ne zaman oturum açtı?

03Biçim ve sürümler

Biçimwtmp/btmp/utmp: sabit boyutlu struct utmp kayıtları (32 bit derlemelerde veya 32 bit uyumlu 64 bit derlemelerde 384 bayt, diğerlerinde 400 bayt). lastlog: UID'ye göre konumlanan struct lastlog girdilerinden oluşan seyrek dosya. wtmpdb ve lastlog2 SQLite kullanır.
Geçerli olduğu sürümlerglibc utmp/lastlog yerleşimleri; x86-64 gibi çift mimarili sistemlerde zaman alanları 32 bit kalır. wtmpdb ve lastlog2 bazı dağıtımların benimsediği Y2038 açısından güvenli alternatiflerdir.

04Temel alanlar

AlanNe anlatır
ut_typeKayıt türü: 1 RUN_LVL, 2 BOOT_TIME, 3 NEW_TIME, 4 OLD_TIME, 5 INIT_PROCESS, 6 LOGIN_PROCESS, 7 USER_PROCESS, 8 DEAD_PROCESS.
ut_pid, ut_line, ut_idİşlem kimliği, terminal aygıt adı ve terminal soneki veya inittab kimliği.
ut_userKullanıcı adı; wtmp'de boş ad o terminaldeki oturum kapatmayı gösterir.
ut_host, ut_addr_v6Uzak ana makine adı (veya çalışma düzeyi kayıtlarında çekirdek sürümü) ve uzak adres.
'~' line with user 'shutdown' or 'reboot'wtmp'de sistem kapatma veya yeniden başlatma işareti; '|' ve '}' satırları saat değiştirildiğinde eski ve yeni zamanı kaydeder.
lastlog: ll_time, ll_line, ll_hostO konumdaki UID için son oturum zamanı, terminali ve ana makinesi.

05Zaman damgaları

AlanKodlamaNot
ut_tv (tv_sec, tv_usec)Unix seconds + microseconds, int32 each on bi-arch buildslibyal değerleri UTC olarak POSIX zamanı şeklinde belgeler.
ll_timeUnix seconds, 32-bit when 32-bit compatibility is enabledBu derlemelerde 2038'de taşar; lastlog2 Y2038 açısından güvenli alternatif olarak geliştirildi.

Ham değerleri Zaman damgası çözücü, yerel saatleri ise Yerel saatten UTC'ye ile çözün.

06İnceleme akışı

  1. wtmp, btmp, lastlog ve döndürülmüş kopyaları (wtmp.1 vb.) ile varsa wtmpdb/lastlog2 veri tabanlarını kopyalayın.
  2. Kopyaları yapıyı bilen bir ayrıştırıcıyla veya tam zaman çıktısıyla last -f / lastb -f kullanarak çözün.
  3. Oturumları kurmak için USER_PROCESS kayıtlarını aynı ut_line üzerindeki sonraki DEAD_PROCESS veya boş kullanıcı kaydıyla eşleştirin.
  4. Oturum zamanlarını kimlik doğrulama günlükleri ve journal ile karşılaştırın.

07Yorum tuzakları

  • Dosyalar yalnızca varsa yazılır; silinirlerse kayıt tutma sessizce durur.
  • Kayıtlar sabit boyutlu ve kimlik doğrulamasızdır; sıfırlanan veya silinen kayıtlar boşluklar dışında iç iz bırakmaz.
  • lastlog, görünen boyutu en yüksek UID ile büyüyen seyrek bir dosyadır; büyük boyutu olağandır.
  • Kayıt boyutu ve zaman genişliği mimariye ve derlemeye bağlıdır; kaynak sistemin yerleşimiyle ayrıştırın.

09Kaynaklar

  1. utmp(5) — Linux manual page man7.org · erişim 2026-10-14
  2. last(1) / lastb — util-linux documentation util-linux (GitHub) · erişim 2026-10-14
  3. lastlog2(8) — util-linux documentation util-linux (GitHub) · erişim 2026-10-14
  4. lastlog(8) — shadow-utils manual source shadow-maint (GitHub) · erişim 2026-10-14
  5. glibc bits/utmp.h (struct lastlog) GNU C Library (GitHub mirror) · erişim 2026-10-14
  6. libyal dtformats — Utmp login records format Joachim Metz (GitHub) · erişim 2026-10-14
  7. wtmpdb — Y2038 safe version of wtmp Thorsten Kukuk (GitHub) · erişim 2026-10-14