Aprende u Linux Command - wtmp

Nome

utmp, wtmp - login records

Sinopsia

# include

Descrizzione

U schedariu utmp permette di scopre l'infurmazione nantu à quale hè oghje di u sistema. Ci hè più di utilizatori chì utilizanu oghje u sistema, perchè micca tutti i prugrammi utilizanu utmp logging.

Avvisu: utmp ùn deve esse scritta, perchè assai programmi di sistema (stupiduamente) dependenu di a so integrità. Ti rischiarii u sistema di fuzzy u schedarii di logge è mudificazione di i schedarii di u sistema si lasciate utmp scrittore à qualsiasi usu.

U schedariu hè una sequenza di entrati cù a struttura sussegwentanu dichjarata in u schedariu di cuntribuzione (nota chì questu hè solu una di vede definizione in u circondu; i dettati depende di a versione di 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 CUTAVE 9 #definite UT_LINESIZE 12 #define UT_NAMESIZE 32 #define UT_HOSTSIZE 256 struct exit_status {short int e_termination; / * u statu di terminazione di u processu. * / short int e_exit; / * u stà di successu di prucessu. * /}; utmp struct {ut_type short; / * tipu di login * / pid_t ut_pid; / * pid of login process * / char ut_line [UT_LINESIZE]; / * device name of tty - "/ dev /" * / char ut_id [4]; / * id init o abbrev. ttyname * / char ut_user [UT_NAMESIZE]; / * user name * / char ut_host [UT_HOSTSIZE]; / * oghje per login remo * / struct exit_status ut_exit; / * L'urganisazione di un prucedimentu marcatu com DEAD_PROCESS. * / long ut_session; / * ID di sessione, usatu per di viaghja * / struct timeval ut_tv; / * u tempu hè stata fatta. * / int32_t ut_addr_v6 [4]; / * L'indirizzu IP di l'anzianu remoto. * / char pad [20]; / * Riservate per u futuru usu. * /}; / * Hacks di cumpatibilità retrospectiva. * / #definite ut_name ut_user #ifndef _NO_UT_TIME #definite ut_time ut_tv.tv_sec #endif #define ut_xtime ut_tv.tv_sec #define ut_addr ut_addr_v6 [0]

Sta struttura aghjusta u nome di u schedariu specialu assuciatu à u terminal di l'utilizatore, u nome di login d'utilizatore è u tempu di u login in a forma di u tempu (2). I campi di String sò terminati da '\ 0' si sò più brevi chì u grandu di u campu.

I primi intrattenziunimenti mai creati da risultatu da init (8) processing inittab (5). Prima chì l'accessu hè procesatu, però, init (8) palesa utmp per l' ut uttimu à DEAD_PROCESS , scumpressu ut_user , ut_host è ut_time cù null bytes per ogni rècordu chì ut_type ùn hè DEAD_PROCESS o RUN_LVL è induve non u prucessu cù PID ut_pid . Se no vache vache cù l' ut_id necessariu pò truvà, init crea una nova. Uverna ut_id da l'inittab, ut_pidu è ut_time à i valori attuale, è ut_tipo per INIT_PROCESS .

getty (8) situate l'accessu per u pid, cambia u uttitu à LOGIN_PROCESS , cambia u uttine , utula di utru , è aspetta a cunnessione per esse stabilitu. login (8), dopu chì un utilizatore hè stata autentificata, cambia u uttellu à USER_PROCESS , cambia u tempu , è ponja ut_host è ut_addr . Sicondu u getty (8) è u login (8), i registri pò esse situatu da ut_line inveci di l' ut_pid preferitu.

Quandu init (8) trova chì un prucessu s'hè sughjutu, localizza a so utp entry per ut_pid , utcpee ut_type à DEAD_PROCESS , è permette u utulevule , ut_host è ut_time cù null bytes.

xterm (1) è altri emulaturi di u terminal creanu direttamente un registru USER_PROCESS è generate l' ut_id utilizandu l'ultimi dui lettere di / dev / ttyp % c o usendu p % d per / dev / pts / % d . Se trovanu un DEAD_PROCESS per questu id, anu riciclà, altri ose creanu una nova entrata. Se puderanu, ellu marcarà cum'è DEAD_PROCESS à sferisce è hè cunsigliatu chì anu null ut_line , ut_time , ut_user è ut_host .

xdm (8) ùn deve micca creà un registru utmp, perchè ùn ci hè micca una terminal assignata. Diciallu creà unu discruvarà errori, cum'è «ditte: ùn ponu stat /dev/machine.dom». Cosa deve creà l'intitulati wtmp, anche, cum'è ftpd (8) faci.

Telnetd (8) creeghja una LOGIN_PROCESS entry è abbanduneghja u restu per accede (8) cum'è sempre. Dopu a fini di a sessione di telnet, telnetd (8) purifica utmp in a manera scritta.

U schedariu wtmp ricorda ogni loge è logout. U so formatu hè pròpiu cum'è utmp, salvu chì un nome d'utilizatore nullu indica un logout in u terminal assuciatu. Inoltre, u terminal nome "~" cù u nome d'utilizatore "apagiu" o "reboot" indica un apagamento o reinventu di sistema è u paru di nomi terminale "|" / "}" ci registra u sistema di u tempu novu / novu quandu data (1) cambia. Wtmp hè mantatu da login (1), init (1), è arcuni versioni di getty (1). Ùn nimu di sti programmi creanu u schedariu , perchè s'ellu hè eliminatu, u mantenimentu di ricorda hè offu.