هدف وجود فایل‌های utmp, wtmp و btmp در لینوکس چیست؟

 

 

در لینوکس همه چیز در دایرکتوری /var/log به صورت Log ذخیره می‌شود. این دایرکتوری شامل لاگ‌های تمامی سرویس‌ها و اپلیکیشن‌ها می‌باشد. اگر این دایرکتوری را بررسی کنید با فایل‌های utmp, wtmp و btmp روبرو خواهید شد. این فایل‌ها بر خلاف لاگ‌های سیستمی و لاگ‌های احراز هویت authentication، باینری binary می‌باشند. برای همین ما نمی‌توانیم از text editor های معمول خود یا دستورات ویرایش تکست مانند less یا grep استفاده نماییم. برای خواندن این فایل‌ها یا استخراج داده از این فایل‌ها نیاز است که ما از ابزاری استفاده نماییم که بتواند این نوع فایل باینری را برای ما بخواند.

utmp شامل اطلاعاتی نظیر ورود کاربران در هر ترمینال، خروج‌ها، رویدادهای سیستم(event)، وضع فعلی سیستم و system boot time می‌باشد.

wtmp شامل تاریخچه اطلاعت utmp می‌شود.

btmp شامل اطلاعات ورودهای شکست خورد و نامعتبر می‌شود.

 

دستور w یا who

کامند who یا w به ما کمک می‌کند اطلاعات یوزرهایی که لاگین کرده اند و فعالیتی که هم‌اکنون به آن مشغولند را مشاهده نماییم. و از فایل /var/run/utmp استخراج نماییم. اگر می‌خواهید لیست یوزرهایی که هم‌اکنون لاگین نموده اند را مشاهده نمایید باید از دستور who به شیوه زیر استفاده نمایید.

$ who
geek    console  Jul  1 23:27
geek    ttys000  Jul  7 13:13
geek    ttys001  Jul 18 18:34

دستور last

کامند last اطلاعاتی نظیر اینکه چگونه یک یوزر لاگین نموده، چه زمانی لاگین نموده و چه زمانی لاگ‌اوت نموده را به ما نمایش می‌دهد.

# last

همچنین ما می‌توانیم از کامند last برای خواندن فایل‌های utmp, wtmp و btmp نیز استفاده نماییم، اینکار به صورت زیر انجام می‌شود.

# last -f /var/log/wtmp    ### To open wtmp file and view its content use blow command.
# last -f /var/run/utmp    ### To see still logged in users view utmp file use last command.
# last -f /var/log/btmp    ### To view btmp file use same command

دستور lastb

با این کامند می‌توانید تاریخچه سشن‌های لاگ شده در /var/run/btmp را مشاهده نمایید.

# lastb

دستور utmpdump

همانطور که اشاره کردیم بعلت آنکه فایل‌های ذکر شده به صورت باینری می‌باشند نمی‌توانیم آن‌ها را به صورت عادی با دستوراتی مانند cat، less و غیره بخوانیم، اما شاید راه حل درست استفاده از دستورات ساده‌ای مانند lastb، last و who نباشد، راه حل دیگر استفاده از دستور utmpdump می‌باشد که به صورت زیر می‌شود از آن استفاده نمود.

# utmpdump /path/to/binary

اگر قصد دارید محتوای باینری فایل‌های utmp, wtmp و btmp می‌توانید به صورت زیر از این کامند استفاده نمایید.

# utmpdump /var/run/utmp
# utmpdump /var/log/wtmp
# utmpdump /var/log/btmp