Learje de Linux Kommando - wtmp

Namme

utmp, wtmp - oanmeldingen

Synopsis

#include

Beskriuwing

De utmp- triem kin ien hawwe om ynformaasje te besjen oer wa't it op it stuit brûkt fan it systeem. Der kin mear brûkers brûke op it stuit dat it systeem brûkt, om't net alle programma's utmp logging brûke.

Warskôging: utmp moat net skriuwber wêze, om't in soad systeemprogramma's (dwaze) ôfhinklik fan har yntegriteit binne. Jo risikoare logyske logboeken en wizigingen fan systeemtriemmen as jo utmp skriuwber meitsje foar elke brûker.

De triem is in folchoarder fan yngongen mei de neikommende struktuer dy't yn 'e yndielde triem ferklearre (tink dat dit allinich ien fan ferskillende definysjes is, details binne ôfhinklik fan de ferzje fan 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; / * ferfange termination status. * / koarte int e_exit; / * prozesútstatusstatus. * /}; struct utmp {koarte ut_type; / * type fan ynlogd * / pid_t ut_pid; / * pid fan loginproses * / char ut_line [UT_LINESIZE]; / * namme fan tty - "/ dev /" * / char ut_id [4]; / * init id of abbrev. ttyname * / char ut_user [UT_NAMESIZE]; / * brûkersnamme * / char ut_host [UT_HOSTSIZE]; / * hostnamme foar remote login * / struct exit_status ut_exit; / * De útgongstatus fan in proses dat as DEAD_PROCESS markearre is. * / lange ut_session; / * sesje-ID, brûkt foar finster * / struktuer-tiidval ut_tv; / * tiid ynfier makke. * / int32_t ut_addr_v6 [4]; / * IP adres fan remote host. * / char pad [20]; / * Reservearre foar takomstige gebrûk. * /}; / * Eftergrûn kompatibiliteit 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]

Dizze struktuer jout de namme fan it spesjale triem dat ferbûn is mei de brûker's terminal, de brûkersnamme, en de tiid fan oanmeldings yn 'e foarm fan tiid (2). Stringfjilden wurde beëinige troch '\ 0' as se koartere binne as de grutte fan it fjild.

De earste ynstjoerings dy't ea ûntstiene binne út initab (5) ferwurke fan init (8). Foardat in ynfier ferwurke wurdt, dan wurdt init (8) utmp setten troch ynstelle ut_type nei DEAD_PROCESS , ut_user , ut_host en ut_time te meitsjen mei nul bytes foar elke record dat ut_type is DEAD_PROCESS of RUN_LVL en wêr't gjin proses mei PID ut_pid bestiet. As gjin lege opmaak mei de nedige ut_id fûn wurde kin, init makket in nij. It set ut_id fan 'e ynittab, ut_pid en ut_time nei de aktuele wearden, en ut_type nei INIT_PROCESS .

getty (8) locates the entry by the pid, changes ut_type to LOGIN_PROCESS , changes ut_time , sets ut_line , and waits for connection to be established. Ynloggen (8), nei't in brûker authentisearre is, feroaret ut_type oan USER_PROCESS , feroaret ut_time , en set ut_host en ut_addr . Ofhinklik fan getty (8) en ynloggen (8) kinne records pleatst wurde troch ut_line ynstee fan de preferable ut_pid .

As init (8) fynt dat in proses ôfsluten hat, locate it utmp-ynfier troch ut_pid , set ut_type nei DEAD_PROCESS en kliket ut_user , ut_host en ut_time mei nul bytes.

xterm (1) en oare terminal emulators kremat in direkteur USER_PROCESS en generearje it ut_id troch de lêste twa letters fan / dev / ttyp % c te brûken troch mei p % d foar / dev / pts / % d . As sy in DEAD_PROCESS fine foar dizze id, dan reitsje se it, oars kinne se in nije tagong meitsje. As se kinne, dan markearje se it as DEAD_PROCESS op ôfstân en wurdt advisearre dat se ek ut_line , ut_time , ut_user , en ut_host ek nulleare .

xdm (8) moat gjin utmp-record oanmeitsje, om't der gjin tagongsrjochten is. It oanmeitsjen fan it meitsje sil in fout sille, lykas 'finger: kin stat /dev/machine.dom net' wêze. It moat wtmp-entries hawwe meitsje, hoewol, krekt as ftpd (8) docht.

telnetd (8) opnij in LOGIN_PROCESS- yngong en lit de rêst it ynloggen (8) as gewoanlik. Nei de telnet sesje is telnetd (8) utmp yn 'e beskreaune manier.

De wtmp triemen alle logins en logouts op. It formaat is krekt as utmp útsein, útsein dat in nul brûkersnamme oanjout op in oanbelangjende opmaak. Fierder ferwiist de terminaltitel "~" mei brûkersnamme "shutdown" of "reboot" oan in systeemferwurking of op 'e nijboer en it paar fan terminalnammen "|" / "}" oanmeld de âlde / nije systeemtiid as datum (1) feroaret it. wtmp wurdt bewarre troch ynloggen (1), init (1), en guon ferzjes fan getty (1). Niet fan dizze programma's meitsje de triem , dus as it fuorthelle wurdt, wurdt rekken hâlden.