Saznajte Linux Command - wtmp

Ime

utmp, wtmp - zapisi za prijavu

Sinopsis

#include

Opis

Utmp datoteka omogućuje otkrivanje informacija o tome tko trenutno koristi sustav. Moguće je da više korisnika trenutno koristi sustav, jer svi programi ne koriste utmp prijavu.

Upozorenje: utmp ne smije biti moguće pisati, jer mnogi programi sustava (luđaka) ovise o njegovu integritetu. Možete riskirati lažne log datoteke sustava i izmjene datoteka sustava ako ostavite utmp za pisanje bilo kojem korisniku.

Datoteka je niz unosa sa sljedećom strukturom koja je deklarirana u datoteku za uključivanje (imajte na umu da je to samo jedna od nekoliko definicija oko, detalji ovise o verziji 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 RAČUNOVODSTVO 9 #define UT_LINESIZE 12 #define UT_NAMESIZE 32 #define UT_HOSTSIZE 256 struct exit_status {short int e_termination; / * status prestanka procesa. * / kratki int e_exit; / * status izlaza iz procesa. * /}; struktur utmp {short ut_type; / * vrsta prijave * / pid_t ut_pid; / * pid prijava procesa * / char ut_line [UT_LINESIZE]; / * naziv uređaja tty - "/ dev /" * / char ut_id [4]; / * init id ili skraćenica. ttyname * / char ut_user [UT_NAMESIZE]; / * korisničko ime * / char ut_host [UT_HOSTSIZE]; / * naziv hosta za daljinsku prijavu * / struct exit_status ut_exit; / * Izlazni status procesa označen kao DEAD_PROCESS. * / dugo ut_session; / * ID sesije, koji se koristi za prozor * / struct timeval ut_tv; / * unos vremena. * / int32_t ut_addr_v6 [4]; / * IP adresa udaljenog računala. * / char pad [20]; / * Rezervirano za buduću uporabu. * /}; / * Povratak kompatibilnost 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]

Ova struktura daje naziv posebne datoteke povezane s korisničkim terminalom, korisničko ime za prijavu i vrijeme prijave u obliku vremena (2). Polja za nizove prestaju s "\ 0" ako su kraća od veličine polja.

Prvi zapisi ikada stvoreni rezultat su init (8) obrade inittab (5). Prije nego se unos obrađuje, ipak se init (8) čisti utmp postavljanjem ut_type na DEAD_PROCESS , čišćenje ut_user , ut_host i ut_time s null bajtovima za svaki zapis koji ut_type nije DEAD_PROCESS ili RUN_LVL i gdje ne postoji proces s PID ut_pid . Ako se ne može pronaći prazan zapis s potrebnim ut_idom , init stvara novi. Postavlja ut_id od inittab, ut_pid i ut_time do trenutnih vrijednosti, a ut_type u INIT_PROCESS .

getty (8) pronalazi unos za pid, mijenja tipku u LOGIN_PROCESS , mijenja vrijeme , postavlja ut_line i čeka uspostavljanje veze. prijava (8), nakon što korisnik bude ovjeren, mijenja tip ut_type na USER_PROCESS , mijenja vrijeme i postavlja ut_host i ut_addr . Ovisno o getty (8) i login (8), zapisi se mogu nalaziti ut_line umjesto poželjnog ut_pid .

Kada init (8) otkrije da je proces izašao, smješta utmp unos u ut_pid , postavlja ut_type na DEAD_PROCESS i briše ut_user , ut_host i ut_time s null bajtovima.

xterm (1) i drugi emulatori terminala izravno stvaraju USER_PROCESS zapis i generiraju ut_id koristeći zadnja dva slova / dev / ttyp % c ili pomoću p % d za / dev / pts / % d . Ako pronađu DEAD_PROCESS za ovaj ID, recikliraju ih, inače stvaraju novi unos. Ako mogu, označit će ih kao DEAD_PROCESS prilikom izlaska i savjetuje se da su i null ut_line , ut_time , ut_user i ut_host .

xdm (8) ne bi trebao stvoriti utmp zapis, jer nema dodijeljenog terminala. Ako ga izradite, to će rezultirati pogreškama, kao što je "prst: ne može stati /dev/machine.dom". Trebao bi stvoriti zapise wtmp, baš kao i ftpd (8).

telnetd (8) postavlja unos LOGIN_PROCESS i ostavlja ostatak da se prijavljuje (8) kao i obično. Nakon završetka telnet sesije, telnetd (8) očistiti utmp na opisani način.

Wtmp datoteka bilježi sve prijave i odjavu. Njegov format je točno kao utmp, osim što null korisničko ime označava odjavu na pridruženom terminalu. Nadalje, naziv terminala "~" s korisničkim imenom "shutdown" ili "ponovno podizanje sustava" označava isključivanje ili ponovno pokretanje sustava i par terminala "|" / "}" prijavi datum starog / novog sustava kada ga promijeni datum (1). wtmp se održava prijavom (1), init (1) i nekim verzijama getty (1). Nijedan od tih programa ne stvara datoteku , pa ako je uklonjena, zapisivanje je isključeno.