Uzziniet Linux komandu - wtmp

Nosaukums

utmp, wtmp - pieteikšanās ieraksti

Kopsavilkums

#include

Apraksts

Utmp fails ļauj atrast informāciju par to, kurš šobrīd izmanto sistēmu. Šobrīd sistēmā var būt vairāk lietotāju, jo ne visas programmas izmanto utmp reģistrēšanu.

Brīdinājums: utmp nedrīkst būt rakstāms, jo daudzas sistēmas programmas (muļķīgi) ir atkarīgas no tā integritātes. Jūs riskējat viltotus sistēmas logfiles un sistēmas failu izmaiņas, ja jūs atstājat utmp rakstāms jebkuram lietotājam.

Fails ir ierakstu secība, kam pievienotajā failā ir deklarēta šāda struktūra (ņemiet vērā, ka šī ir tikai viena no vairākām definīcijām; detaļas ir atkarīgas no libc versijas):

#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 GRĀMATOJUMS 9 #define UT_LINESIZE 12 #define UT_NAMESIZE 32 #define UT_HOSTSIZE 256 struct exit_status {short int e_termination; / * procesa pārtraukšanas statuss. * / īss int e_exit; / * procesa izejas statuss. * /}; struct utmp {īss ut_type; / * pieslēgšanās veids * / pid_t ut_pid; / * pid pieteikšanās process * / char ut_line [UT_LINESIZE]; / * tty ierīces nosaukums - "/ dev /" * / char ut_id [4]; / * init id vai saīsinājums. ttyname * / char ut_user [UT_NAMESIZE]; / * lietotājvārds * / char ut_host [UT_HOSTSIZE]; / * hostname tālvadības login * / struct exit_status ut_exit; / * Process, kas apzīmēts kā DEAD_PROCESS, statusa izejošais statuss. * / long ut_session; / * sesijas ID, kas tiek izmantots logiem * / struct timeval ut_tv; / * laika ieraksts tika veikts. * / int32_t ut_addr_v6 [4]; / * Attālās mītnes IP adrese. * / char pad [20]; / * Rezervēts izmantošanai nākotnē. * /}; / * Atpakaļ saderības 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]

Šī struktūra piešķir īpašā faila nosaukumu, kas saistīts ar lietotāja termināli, lietotājvārda vārdu un pieteikšanās laiku laika formā (2). Stringa lauki tiek pārtraukti ar "\ 0", ja tie ir īsāki par lauka izmēru.

Pirmie ieraksti, kas jebkad radīti, tika iegūti no init (8) apstrādes inittab (5). Pirms ieraksta apstrādes init (8) tīrīt utmp, iestatot ut_type uz DEAD_PROCESS , iztīrot ut_user , ut_host un ut_time ar nulles baitiem katram ierakstam, kura ut_type nav DEAD_PROCESS vai RUN_LVL un kur nav procesa ar PID ut_pid . Ja nav atrasts tukšs ieraksts ar vajadzīgo ut_id , init izveido jaunu. Tas nosaka ut_id no inittab, ut_pid un ut_time uz pašreizējām vērtībām un ut_type uz INIT_PROCESS .

getty (8) atrod ierakstu ar pid, maina ut_type uz LOGIN_PROCESS , maina ut_time , iestata ut_line un gaida, ka savienojums tiks izveidots. pieteikšanās (8), pēc tam, kad lietotājs ir autentificēts, maina ut_type uz USER_PROCESS , maina ut_time un iestata ut_host un ut_addr . Atkarībā no getty (8) un login (8), ieraksti var atrasties ut_line vietā nevis vēlamā ut_pid .

Kad init (8) konstatē, ka process ir beidzies , tas atrod utmp ierakstu ar ut_pid , iestata ut_type uz DEAD_PROCESS un noņem ut_user , ut_host un ut_time ar null baitiem.

Xterm (1) un citi termināļu emulatori tieši izveido USER_PROCESS ierakstu un ģenerē ut_id , izmantojot / dev / ttyp % c pēdējos divus burtus vai / dev / pts / % d izmantojot p % d . Ja viņi identificē DEAD_PROCESS šim id, viņi to pārstrādā, pretējā gadījumā viņi izveido jaunu ierakstu. Ja viņi to var, viņi atzīmēs to kā DEAD_PROCESS iziešanas brīdī, un tiek ieteikts, ka tie null ut_line , ut_time , ut_user un ut_host arī.

xdm (8) nedrīkst izveidot utmp ierakstu, jo nav piešķirts terminālis. Ja to radīs, radīsies kļūdas, piemēram, "pirksts: nevar stat /dev/machine.dom". Tomēr tai ir jāizveido wtmp ieraksti, tāpat kā ftpd (8).

telnetd (8) izveido LOGIN_PROCESS ierakstu un atstāj pārējo, kā parasti, pieteikties (8). Pēc telnet sesijas beigām telnetd (8) apraksta veidā attīra utmp.

Wtmp fails ieraksta visus logins un logouts. Tās formāts ir tieši tāds pats kā utmp, izņemot to, ka nulles lietotāja vārds norāda atteikšanos no saistītā terminālā. Turklāt termināla nosaukums "~" ar lietotāja vārdu "shutdown" vai "reboot" norāda sistēmas izslēgšanu vai atsāknēšanu un terminālu nosaukumu pāri "|" / "}" reģistrē veco / jauno sistēmas laiku, kad datums (1) to maina. wtmp uztur login (1), init (1), un dažas Getty (1) versijas. Neviena no šīm programmām nerada failu , tādēļ, ja tā tiek noņemta, ierakstu izslēgšana ir izslēgta.