Linux Command - wtmp məlumat əldə edin

Adı

utmp, wtmp - giriş qeydləri

Sinopsis

#include

Təsvir

Utmp faylı birdən sistemin kim tərəfindən istifadə edildiyi barədə məlumatı aşkar etməyə imkan verir. Hal-hazırda sistemi istifadə edən daha çox istifadəçi ola bilər, çünki bütün proqramlar utmp girişini istifadə etmir.

Xəbərdarlıq: utmp yazı yazılmamalıdır, çünki bir çox sistem proqramları (ağılsızlıq) bütövlüyündən asılıdır. Siz utmp hər hansı bir istifadəçi üçün yazı bırakarsanız sistem faylları və sistem fayllarının modifikasiyasını təhrik edirsiniz.

Fayl, daxil olunan faylda bildirilən aşağıdakı quruluşa malik bir qeyd ardıcıllığıdır (bu, ətrafdakı bir neçə təsvirdən yalnız birinə baxsın, ətraflı libc versiyasına əsaslanır):

#define UT_UNKNOWN 0 #define RUN_LVL 1 #define BOOT_TIME 2 #define NEW_TIME 3 #define OLD_TIME 4 #define INIT_PROCESS 5 #define LOGIN_PROCESS 6 #define USER_PROCESS 7 #define DEAD_PROCESS 8 #define MUHƏLMƏ 9 # # tanımlayın UT_LINESIZE 12 # təyin UT_NAMESIZE 32 #define UT_HOSTSIZE 256 struct exit_status {qısa int e_termination; / * prosesin dayandırılması vəziyyəti. * / qısa int e_exit; / * prosesin çıxış vəziyyəti. * /}; struct utmp {qısa ut_type; / * giriş növü * / pid_t ut_pid; / * giriş prosesinin pid * / char ut_line [UT_LINESIZE]; / * tty cihazının adı - "/ dev /" * / char ut_id [4]; / * init id və ya abbrev. ttyname * / char ut_user [UT_NAMESIZE]; / * istifadəçi adı * / char ut_host [UT_HOSTSIZE]; / * Uzaqdan giriş üçün hostname * / struct exit_status ut_exit; / * DEAD_PROCESS kimi qeyd olunan prosesin exit statusu. * / uzun ut_session; / * pəncərə üçün istifadə olunan ID nömrəsi, * / struct timeval ut_tv; / * vaxt girişi edildi. * / int32_t ut_addr_v6 [4]; / * Uzaq hostun IP ünvanı. * / char pad [20]; / * Gələcək istifadə üçün qorunur. * /}; / * Geri uyğunluq hacks. * / #define ut_name ut_user #ifndef _NO_UT_TIME #define ut_time ut_tv.tv_sec #define #define ut_xtime ut_tv.tv_sec #define ut_addr ut_addr_v6 [0]

Bu quruluş istifadəçinin terminalı, istifadəçinin giriş adı və vaxt şəklində giriş zamanı (2) ilə əlaqəli xüsusi fayl adını verir. Sahənin ölçüsündən daha qısa olduğu halda, '' 0 '' daşıyan sahələr endirilir.

Yaradılan ilk girişlər init (8) emal inittab (5) nəticəsidir. Bir giriş işlənməmişdən əvvəl, init (8) ut_type , DEAD_PROCESS və ya RUN_LVL deyil və PID ut_pid ilə heç bir prosesin olmadığı hər qeyd üçün null baytla ut_user , ut_hostut_time parametrlərini ut_type - ni DEAD_PROCESS- ə quraraq utmp'yi təmizləyir. Lazımlı ut_id ilə boş qeyd tapılmadıqda, init bir yeni yaradır. Ut_id, inittab, ut_pidut_time- dan cari dəyərlərə və ut_type - ni INIT_PROCESS- a təyin edir .

Getty (8) pid tərəfindən girişi tapır, ut_type dəyişir LOGIN_PROCESS , ut_time dəyişir, ut_line qurur və əlaqə qurulmasını gözləyir. bir istifadəçi təsdiqləndikdən sonra giriş (8), ut_type USER_PROCESS dəyişir, ut_time dəyişir və ut_hostut_addr edir . Getty (8) və girişə (8) bağlı olaraq, qeydlər ut_line ilə üstünlük verilən ut_pid yerinə yerləşdirilə bilər.

Init (8) bir prosesin çıxdığını tapdıqda , ut_pid tərəfindən utmp girişini tapır , ut_type parametrini DEAD_PROCESS olaraq təyin edirut_user , ut_hostut_time null bytes ilə təmizləyir.

xterm (1) və digər terminal emulatorları birbaşa USER_PROCESS rekordunu yaradır və / dev / ttyp % c sonuncu iki hərfini istifadə edərək və ya / dev / pts / % d üçün p % d istifadə edərək ut_id yaradır . Bu id üçün bir DEAD_PROCESS tapsalar , onu geri qaytarırlar, əksinə yeni bir giriş yaradırlar. Onlar mümkün olduqda, DEAD_PROCESS kimi çıxış edərlərut_line , ut_time , ut_userut_host null- lərinərast gəlinirlər .

Xdm (8) heç bir təyin edilmiş terminal olmadığı üçün utmp qeydini yaratmamalıdır . Biri yarada bilsəniz, 'barmaq: stat /dev/machine.dom' kimi səhvlərə səbəb olacaq. Wtmp girdilərini yaratmaq lazımdır, baxmayaraq ki ftpd (8) kimi.

telnetd (8) bir LOGIN_PROCESS giriş qurur və qalanları adi olaraq girişə (8) buraxır. Telnet sessiyası sona çatdıqdan sonra, telnetd (8) utmp təsvir edilmiş şəkildə təmizləyir.

Wtmp faylı bütün giriş və logouts qeyd. Onun biçimi tam olaraq utmp kimi, null istifadəçi adı bağlı terminalı bir çıxışı göstərir. Bundan əlavə, istifadəçi adını "kapatma" və ya "yenidən başladın " ilə "~" terminal adı sistemin bağlanması və ya yenidən başladın və "|" / "}" tarixi (1) dəyişdikdə köhnə / yeni sistem vaxtını qeyd edir. wtmp giriş (1), init (1) və getty'nin bəzi versiyaları (1) tərəfindən saxlanılır. Bu proqramlardan heç biri fayl yaratmır , buna görə silinirsə, qeyd saxlama söndürülür.