utmp

از ویکی‌پدیا، دانشنامهٔ آزاد

یوتی‌ام‌پی (به انگلیسی: utmp)‏ یا بی‌تی‌ام‌پی (btmp) همچنین دبلیوتی‌ام‌پی (wtmp) یا در گونه‌های مختلف خود که به صورت utmpx, wtmpx و btmpx هم شناخته می‌شود، فایل‌هایی در سیستم‌عامل‌های یونیکس و شبه یونیکس هستند اطلاعات مربوط به ورود و خروج کاربران به سیستم را در خود نگه می‌دارند. فایل utmp وضعیت ورود فعلی هر کاربر را در خود نگه می‌دارد. فایل wtmp تاریخچه تمامی login و logoutها را در خود ذخیره می‌کند. در نهایت، فایل btmp تمام تلاش‌های ناموفق برای ورود به سیستم را در خود ثبت می‌کند. فایل‌های utmp, wtmp و btmp هرگز جزء هیچ‌کدام از استانداردهای رسمی یونیکس از جمله مشخصه یونیکس واحد نبوده‌اند، در حالی که utmpx و APIهای متناظر جزء این استاندارد هستند.

قالب[ویرایش]

utmp: این فایل گزارش کاملی از وضعیت فعلی سیستم، زمان بوت شدن سیستم، (که توسط uptime مورد استفاده قرار می‌گیرد)، زمان ورود کاربران به سیستم و ترمینالی که آن‌ها مشغول به کار هستند، گزارشی از خروج کاربران از سیستم، رخدادهای سیستمی و … را در خود نگه می‌دارد.
wtmp:همانند utmp تاریخچه‌ای عمل می‌کند.
btmp: در صورتی‌که کاربری تلاش کند وارد سیستم شود اما بنا به دلایلی همچون اشتباه بودن گذرواژه موفق نشود، این تلاش ناموفق او در این فایل ثبت می‌شود.

فایل utmp یک فایل متنی نیست، بلکه یک فایل باینری است که باید تنها توسط برنامه‌های خاصی ویرایش شود. نحوه پیاده‌سازی و تعداد و نوع فیلدهای موجود در این فایل، بسته سیستم و همین‌طور نسخه کتابخانه استاندارد سی، متغیر و گوناگون است که توابع و ماکروهای کار با آن‌ها در فایل سرآیند utmp.h تعریف شده‌اند.

قالب فایل‌های wtmp و btmp دقیقاً مشابه utmp است، به جز اینکه در صورتی‌که نام کاربری تهی باشد، به این معنیست که کاربر در یکی از ترمینال‌ها از سیستم خارج شده و سیستم را ترک کرده‌است (به اصطلاح logout کرده‌است).

فایل‌های utmpx, wtmpx و btmpx[ویرایش]

utmpx و wtmpx افزونه‌هایی برای utmp و wtmp هستند که اولین بار سان مایکروسیستمز آن‌ها را معرفی کرد. utmpx جزءی از استاندارد پازیکس است. در حالیکه برخی از سیستم‌ها فایل‌های مختلفی را برای گونه‌های utmpx ایجاد می‌کنند و قالب‌های قدیمی منسوخ‌شده‌ای دارند، در همه سیستم‌ها این‌گونه نیست. به عنوان مثال لینوکس تنها ساختاری از نوع utmpx تعریف می‌کند که مشابه utmp است. پایگاه داده utmpx دربرگیرنده اطلاعات ورود و خروج کاربران به سیستم و حساب‌رسی کاربران است، در حالیکه فایل wtmpx تاریخچه مربوط به دسترسی‌های هر کاربر به سیستم را در خود نگه می‌دارد.

مکان فایل‌ها[ویرایش]

بسته به سیستم‌عامل، این فایل‌ها می‌توانند در مکان‌های مختلفی قرار داشته باشند.

لینوکس:

/var/run/utmp
/var/log/wtmp
/var/log/btmp

سولاریس:

/var/adm/utmp (deprecated), /var/adm/utmpx
/var/adm/wtmp (deprecated), /var/adm/wtmpx

اچ‌پی-یواکس

/etc/utmp (deprecated), /etc/utmpx
/var/adm/wtmp (deprecated), /var/adm/wtmpx
/var/adm/btmp (deprecated), /var/adm/btmpx

فری‌بی‌اس‌دی ۹٫۰ علاوه بر پشتیبانی کردن از utmpx، فایل‌های جدیدی را هم معرفی کرد:

/var/run/utx.active (replaces utmp)
/var/log/utx.lastlogin (replaces lastlog)
/var/log/utx.log (replaces wtmp)

دستورهای مرتبط[ویرایش]

دستورهای مختلفی وجود دارند که قادر هستند اطلاعات ذخیره شده در این فایل‌ها را بازیابی کرده و به کاربر گزارش دهند. از جمله این دستورها، دستور who است. این دستور کاربران فعلی که به سیستم وارد شده‌اند را نشان می‌دهد. دستور last آخرین کاربرانی که به سیستم وارد شده‌اند را نشان می‌دهد. دستور lastb که تنها در لینوکس وجود دارد هم آخرین تلاش‌های ناموفق برای ورود به سیستم را نشان می‌دهد.

منابع[ویرایش]