Skip to main content

A Unix Command Utmp használata Linux alatt

How to Monitor User Login and System Restart Activities (Június 2026)

How to Monitor User Login and System Restart Activities (Június 2026)
Anonim

Autmp A fájl lehetővé teszi az információ felfedezését arra vonatkozóan, hogy ki használja a rendszert. Lehet, hogy több felhasználó jelenleg használja a rendszert, mert nem minden program használ utmp naplózást.

Figyelem: utmp nem írható, mert sok rendszerprogram (ostoba módon) az integritásától függ. Ön elhanyagolhatja a hibás rendszernaplófájlokat és a rendszerfájlok módosításaitutmpminden felhasználó számára írható.

A fájl a beillesztett fájlban deklarált következő struktúrák sorrendje (megjegyzendő, hogy ez csak egy a több meghatározás közül, a részletek a libc verziójától függenek):

#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 ACCOUNTING 9 #define UT_LINESIZE 12 #define UT_NAMESIZE 32 #define UT_HOSTSIZE 256 struct exit_status {short int e_termination; / * folyamatlezárási állapot. * / short int e_exit; / * folyamat kilépési állapot. * /}; struktur utmp {short ut_type; / * bejelentkezés típusa * / pid_t ut_pid; / * pid bejelentkezési folyamat * / char ut_line UT_LINESIZE; / * a tty - "/ dev /" * / char ut_id eszköz neve 4; / * init id vagy rövidített. ttyname * / char ut_user UT_NAMESIZE; / * felhasználónév * / char ut_host UT_HOSTSIZE; / * a gazdagép távoli bejelentkezéshez * / struct exit_status ut_exit; / * DEAD_PROCESS jelzésű folyamat kilépési állapota. * / hosszú ut_session; / * munkamenet-azonosító, amelyet az ablakok * / struct timeval ut_tv; / * időbejegyzés történt. * / int32_t ut_addr_v6 4; / * A távoli gép IP címe. * / char pad 20; / * Fenntartva jövőbeni felhasználásra. * /}; / * Visszafelé kompatibilis hack. * / #define ut_name ut_user #ifndef _NO_UT_TIME #define ut_time ut_tv.tv_sec #endif #define ut_xtime ut_tv.tv_sec #define ut_addr ut_addr_v6 0

Ez a struktúra adja meg a felhasználó termináljához társított speciális fájlt, a felhasználó bejelentkezési nevét és a bejelentkezés idejétidő(2). A karakterláncmezőket a'' ha rövidebbek a mező méreténél.

Az első létrehozott bejegyzések eredménye benne (8) feldolgozás inittabban (5). Mielőtt egy bejegyzés feldolgozásra kerülne, benne (8) a beállítással megtisztítja az utmpotut_type nak nekDEAD_PROCESS, elszámolásut_user, ut_host, ésut_time null bájtokkal minden egyes rekord esetébenut_type nemDEAD_PROCESS vagyRUN_LVL és ahol nincs folyamatban a PIDut_pid létezik. Ha nincs üres rekord a szükségesekkelut_id megtalálható, az init létrehoz egy újat. Meghatározzaut_id az inittab,ut_pid ésut_time az aktuális értékekhez, ésut_type nak nekINIT_PROCESS.

getty (8) megkeresi a bejegyzést a pid, változtatásokkalut_type nak nekLOGIN_PROCESS, változtatásokut_time, készletut_line, és várja meg a kapcsolat létrehozását. Belépés (8), miután a felhasználó hitelesített, megváltozikut_type nak nekUSER_PROCESS, változtatásokut_time, és beállítjaut_host ésut_addr. Attól függ getty (8) és Belépés (8), a rekordok elhelyezhetőkut_line ahelyett, hogy előnyben részesítenéut_pid.

Amikor benne (8) azt találja, hogy egy folyamat kilépett, az utmp bejegyzést keresteut_pid, készletut_type nak nekDEAD_PROCESS, és törliut_user, ut_host ésut_time null bájtokkal.

xterm (1) és más terminál emulátorok közvetlenül létrehozzák aUSER_PROCESS rögzíti és létrehozza aut_id az utolsó két betű használatával/ Dev / ttyp % c vagy használjap % d mert/ Dev / pont / % d . Ha megtalálják aDEAD_PROCESS ehhez az azonosítóhoz újrahasznosítják, különben új bejegyzést hoznak létre. Ha képesek rá, úgy fogják jelölniDEAD_PROCESS a kilépéskor, és azt tanácsoljuk, hogy nulla ut_line,ut_time, ut_user, ésut_host is.

xdm (8) nem hoz létre utmp rekordot, mert nincs hozzárendelt terminál. Ha létrehoz egy hibát, akkor hiba lép fel, például az "ujj: nem tud stat /dev/machine.dom". A wtmp bejegyzéseket ugyanúgy kell létrehoznia, mint ahogyan ftpd (8).

telnetd (8) létrehozza aLOGIN_PROCESS bejegyzést és a többit hagyja Belépés (8) a szokásos módon. A telnet-munkamenet befejezése után, telnetd (8) a fent leírt módon tisztítja a utmpot.

Awtmp A fájl rögzíti az összes bejelentkezést és kijelentkezést. Formátuma pontosan ugyanazutmp azzal a különbséggel, hogy egy null felhasználói név kijelentkezik a kijelölt terminálról. Továbbá a terminál neve'~'felhasználói névvel"lekapcsol" vagy"Reboot" jelzi a rendszer leállítását vagy újraindítását és a terminálok párját'|'/'}' naplózza a régi / új rendszert dátum (1) megváltoztatja.wtmp karbantartja Belépés (1), benne (1), és néhány változata getty (1). Egyik program sem hozza létre a fájlt, ezért eltávolítás esetén a nyilvántartás le van tiltva.