Pagkat-on sa Linux Command - wtmp

Ngalan

utmp, wtmp - mga rekord sa pag-login

Sinopsis

#include

Deskripsiyon

Ang utmp file nagtugot sa usa ka tawo sa pagdiskobre sa kasayuran mahitungod kung kinsa ang nagagamit karon sa sistema. Tingali adunay daghan nga mga tiggamit karon nga nagagamit sa sistema, tungod kay dili tanan nga mga programa naggamit sa utmp logging.

Pasidaan: utmp kinahanglan dili mahimong isulat, tungod kay daghang mga programa sa sistema (binuang) nagsalig sa integridad niini. Gipameligro nimo ang mga sistema sa logfiles ug mga pag-usab sa mga file sa sistema kon imong gibiyaan ang utmp writable sa bisan kinsa nga tiggamit.

Ang file usa ka han-ay sa mga entries nga may mosunod nga istruktura nga gipahayag sa isama nga file (timan-i nga kini usa lamang sa pipila ka mga kahulugan sa palibot; mga detalye nag-agad sa bersyon sa 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 ACCOUNTING 9 #define UT_LINESIZE 12 #define UT_NAMESIZE 32 #define UT_HOSTSIZE 256 struct exit_status {short int e_termination; / * proseso nga termination status. * / mubo nga int e_exit; / * proseso nga exit status. * /}; struct utmp {short ut_type; / * type of login * / pid_t ut_pid; / * pid sa proseso sa pag-login * / char ut_line [UT_LINESIZE]; / * device name sa tty - "/ dev /" * / char ut_id [4]; / * init id o abbrev. ttyname * / char ut_user [UT_NAMESIZE]; / * ngalan sa user * / char ut_host [UT_HOSTSIZE]; / * hostname alang sa remote login * / struct exit_status ut_exit; / * Ang exit status sa proseso nga gimarkahan isip DEAD_PROCESS. * / dugay nga ut_session; / * session ID, nga gigamit alang sa windowing * / struct timeval ut_tv; / * gihimo ang time entry. * / int32_t ut_addr_v6 [4]; / * IP address sa hilit nga panon. * / char pad [20]; / * Gitagana alang sa umaabot nga paggamit. * /}; / * Balik sa compatibility 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]

Kini nga istruktura naghatag sa ngalan sa espesyal nga file nga may kalabutan sa terminal sa user, ang login name sa user, ug ang oras sa pag-login sa dagway sa oras (2). Ang mga natad sa panit gitapos sa '\ 0' kon kini mas mubo kaysa sa gidak-on sa natad.

Ang unang mga entries nga nahimo sukad resulta sa init (8) pagproseso sa inittab (5). Sa wala pa iproseso ang entry, bisan pa, ang init (8) naglimpyo sa utmp pinaagi sa pagtakda sa ut_type sa DEAD_PROCESS , paglimpyo sa ut_user , ut_host , ug ut_time uban ang null bytes alang sa matag rekord nga ut_type dili DEAD_PROCESS o RUN_LVL ug kung walay proseso nga adunay PID ut_pid anaa. Kon walay rekord nga walay sulod sa gikinahanglan nga ut_id makita, ang init nagmugna og usa ka bag-o. Nagtakda kini sa ut_id gikan sa inittab, ut_pid ug ut_time sa kasamtangan nga mga bili, ug ut_type sa INIT_PROCESS .

Ang getty (8) naghatag sa entry sa pid, giusab ut_type sa LOGIN_PROCESS , giusab ut_time , nagtakda sa ut_line , ug naghulat nga mapalig-on ang koneksyon. login (8), human ang usa ka user gipamatud-an, ang mga ut_type nga giusab ngadto sa USER_PROCESS , giusab ut_time , ug nagtakda sa ut_host ug ut_addr . Depende sa getty (8) ug pag-login (8), ang mga rekord mahimong nahimutang sa ut_line imbes nga mas maayo nga ut_pid .

Sa dihang nahibal-an sa init (8) nga ang usa ka proseso migawas, kini nagpakita sa utmp entry niini pinaagi sa ut_pid , nagtakda ut_type sa DEAD_PROCESS , ug gibutang ang ut_user , ut_host ug ut_time sa null bytes.

Ang xterm (1) ug uban pang mga terminal emulators direkta nga nagmugna sa usa ka USER_PROCESS nga rekord ug nagmugna sa ut_id pinaagi sa paggamit sa katapusang duha ka letra sa / dev / ttyp % c o pinaagi sa paggamit p % d sa / dev / pts / % d . Kon makakita sila og DEAD_PROCESS alang niini nga id, i-recycle nila kini, kung dili sila maghimo og bag-ong entry. Kon mahimo nila, ila kining markahan isip DEAD_PROCESS sa pagpagawas ug gitambagan nga sila null ut_line , ut_time , ut_user , ug ut_host usab.

Ang xdm (8) dili angay magmugna og utmp record, tungod kay walay gihatag nga terminal. Ang pagtugot niini paghimo sa usa moresulta sa mga kasaypanan, sama sa 'tudlo: dili stat /dev/machine.dom'. Kinahanglan nga kini maghimo sa wtmp entries, bisan pa, sama sa ftpd (8).

Ang telnetd (8) nagbutang sa usa ka entry sa LOGIN_PROCESS ug gibilin ang nahabilin sa pag-login (8) sama sa naandan. Human matapos ang telnet session, ang telnetd (8) maghinlo sa utmp sa gihulagway nga paagi.

Ang file sa wtmp nagrekord sa tanang mga logins ug logging. Ang pormat niini eksakto sama sa utmp gawas nga ang usa ka null nga ngalan sa user nagpakita sa usa ka logout sa may kalabutan nga terminal. Dugang pa, ang terminal name nga "~" nga may ngalan sa user "shutdown" o "reboot" nagpakita sa usa ka system shutdown o reboot ug ang parisan sa mga pangalan sa terminal "|" / "}" nagrekord sa daang / bag-ong panahon sa sistema sa petsa nga (1) mag-usab niini. Ang wtmp gipadayon pinaagi sa login (1), init (1), ug pipila ka bersyon sa getty (1). Wala sa mga programa nga nagmugna sa file , busa kon kini gikuha, ang pag-record sa rekord gipatuman.