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çim | wtmp/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ümler | glibc 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
| Alan | Ne anlatır |
|---|---|
| ut_type | Kayı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_user | Kullanıcı adı; wtmp'de boş ad o terminaldeki oturum kapatmayı gösterir. |
| ut_host, ut_addr_v6 | Uzak 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_host | O konumdaki UID için son oturum zamanı, terminali ve ana makinesi. |
05Zaman damgaları
| Alan | Kodlama | Not |
|---|---|---|
| ut_tv (tv_sec, tv_usec) | Unix seconds + microseconds, int32 each on bi-arch builds | libyal değerleri UTC olarak POSIX zamanı şeklinde belgeler. |
| ll_time | Unix seconds, 32-bit when 32-bit compatibility is enabled | Bu 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ışı
- wtmp, btmp, lastlog ve döndürülmüş kopyaları (wtmp.1 vb.) ile varsa wtmpdb/lastlog2 veri tabanlarını kopyalayın.
- Kopyaları yapıyı bilen bir ayrıştırıcıyla veya tam zaman çıktısıyla last -f / lastb -f kullanarak çözün.
- 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.
- 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
- utmp(5) — Linux manual page man7.org · erişim 2026-10-14
- last(1) / lastb — util-linux documentation util-linux (GitHub) · erişim 2026-10-14
- lastlog2(8) — util-linux documentation util-linux (GitHub) · erişim 2026-10-14
- lastlog(8) — shadow-utils manual source shadow-maint (GitHub) · erişim 2026-10-14
- glibc bits/utmp.h (struct lastlog) GNU C Library (GitHub mirror) · erişim 2026-10-14
- libyal dtformats — Utmp login records format Joachim Metz (GitHub) · erişim 2026-10-14
- wtmpdb — Y2038 safe version of wtmp Thorsten Kukuk (GitHub) · erişim 2026-10-14