Diajar dina Komando Linux Ubuntu - wtmp

nami

utmp, wtmp - rékaman login

Synopsis

#include

gambaran

The file utmp ngamungkinkeun hiji pikeun manggihan informasi ngeunaan saha anu ayeuna ngagunakeun sistem. Meureun aya deui pamaké ayeuna ngagunakeun sistem, sabab teu sakabeh program migunakeun logging utmp.

Perhatosan: utmp teu kedah janten ditulisan, sabab loba program sistem (foolishly) gumantung kana integritas na. Anjeun risiko logfiles Sistim faked sarta parobahan koropak sistem lamun ninggalkeun ditulisan utmp kana sagala pamaké.

file nyaeta tina sekuen éntri jeung struktur di handap nyatakeun di ngawengku file (dicatet yén ieu téh ukur salah sahiji sababaraha definisi sabudeureun; rinci gumantung kana versi libc):

#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 Akunting 9 #define UT_LINESIZE 12 #define UT_NAMESIZE 32 #define UT_HOSTSIZE 256 struct exit_status {pondok int e_termination; / * Status prosés terminasi. * / Pondok int e_exit; / * Status prosés kaluar. * /}; struct utmp {ut_type pondok; / * Tipe login * / pid_t ut_pid; / * Pid of login prosés * / char ut_line [UT_LINESIZE]; / * Ngaran alat tina TTY - "/ dev /" * / char ut_id [4]; / * Init id atanapi abbrev. ttyname * / char ut_user [UT_NAMESIZE]; / * Ngaran pamaké * / char ut_host [UT_HOSTSIZE]; / * Hostname pikeun login jauh * / struct exit_status ut_exit; / * Status kaluar tina hiji prosés ditandaan salaku DEAD_PROCESS. * / Ut_session lila; / * Sési ID, dipaké pikeun windowing * / struct timeval ut_tv; / * Waktos asupna dijieun. * / Int32_t ut_addr_v6 [4]; / * Alamat IP tina host jauh. * / Char Pad [20]; / * PAKUSARAKAN pikeun pamakéan nu bakal datang. * /}; / * Tukang kasaluyuan hacks. * / #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]

Struktur ieu méré ngaran file husus pakait sareng terminal pamaké urang, ngaran login pamaké, sarta waktu login dina bentuk waktu (2). Widang string anu terminated ku '\ 0' lamun aranjeunna pondok ti ukuran lapangan.

Éntri kahiji kantos dijieun hasil tina init (8) ngolah inittab (5). Sateuacan entri diolah, sanajan, init (8) cleans up utmp ku netepkeun ut_type mun DEAD_PROCESS, clearing ut_user, ut_host, sarta ut_time kalawan bait null pikeun tiap catetan nu ut_type teu DEAD_PROCESS atanapi RUN_LVL na mana euweuh prosés kalayan PID ut_pid aya. Mun euweuh catetan kosong jeung ut_id diperlukeun bisa kapanggih, init nyiptakeun hiji anyar. Ieu susunan ut_id ti inittab kana, ut_pid na ut_time kana nilai ayeuna, tur ut_type mun INIT_PROCESS.

Getty (8) locates asupna ku pid nu, parobahan ut_type mun LOGIN_PROCESS, robah ut_time, susunan ut_line, sarta waits pikeun sambungan bisa ngadegkeun. login (8), sanggeus pamaké geus dioténtikasi, parobahan ut_type mun USER_PROCESS, robah ut_time, sarta susunan ut_host na ut_addr. Gumantung kana Getty (8) jeung login (8), rékaman bisa jadi ayana ku ut_line gaganti ut_pid hade.

Nalika init (8) manggih yén prosés tos kaluar, eta locates Éntri utmp na ku ut_pid, susunan ut_type mun DEAD_PROCESS, sarta Leungitkeun ut_user, ut_host na ut_time kalawan bait hypothesis.

xterm (1) jeung emulators terminal séjén langsung nyieun rékaman USER_PROCESS sarta ngahasilkeun ut_id kalayan ngagunakeun dua hurup pamungkas / dev / ttyp% c atawa ku cara make p% d pikeun / dev / PTS /% d. Mun aranjeunna neangan DEAD_PROCESS pikeun id ieu, maranéhna ngadaur mulangkeunana, disebutkeun maranéhna nyieun hiji entri anyar. Mun aranjeunna tiasa, maranéhna bakal ditandaan salaku DEAD_PROCESS on exiting sarta biasa disarankan yén maranéhna hypothesis ut_line, ut_time, ut_user, sarta ut_host ogé.

xdm (8) teu kudu nyieun rékaman utmp, lantaran euweuh terminal ditugaskeun. Letting eta nyieun hiji bakal ngahasilkeun kasalahan, kayaning 'ramo: moal bisa Stat /dev/machine.dom'. Sakuduna nyieun éntri wtmp, sanajan, kawas ftpd (8) manten.

telnetd (8) susunan up a Éntri LOGIN_PROCESS jeung daun sésana nepi login (8) saperti biasa. Sanggeus tungtung sési telnet, telnetd (8) cleans up utmp dina cara ditétélakeun.

The file wtmp rékaman sadayana logins na logouts. Format na ieu persis resep utmp iwal ngaran pamaké null nunjukkeun hiji logout on terminal pakait. Saterusna, nami terminal "~" kalayan ngaran pamaké "shutdown" atawa "reboot" nunjukkeun sistem shutdown atanapi reboot jeung sapasang ngaran terminal "|" / "}" Log nu heubeul / waktos sistem anyar nalika titimangsa (1) robah eta. wtmp dijaga ku login (1), init (1), tur sababaraha versi ngeunaan Getty (1). Ngayakeun program ieu nyiptakeun file , jadi lamun dipiceun, catetan-buruk dipareuman.