Deutmp filen lar deg oppdage informasjon om hvem som bruker systemet. Det kan hende at flere brukere bruker systemet, fordi ikke alle programmer bruker UTMP-logging.
Advarsel: utmp Må ikke skrives, fordi mange systemprogrammer (dumt) er avhengig av integriteten. Du risikerer systemloggfiler og modifikasjoner av systemfiler hvis du forlaterutmpskrivbar til enhver bruker.
Filen er en sekvens av oppføringer med følgende struktur som er oppgitt i inkluderingsfilen (merk at dette kun er en av flere definisjoner rundt; detaljer avhenger av versjonen av 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 #definert LOGIN_PROCESS 6 #define USER_PROCESS 7 #define DEAD_PROCESS 8 #definert REGNSKAP 9 #definert UT_LINESIZE 12 #definalt UT_NAMESIZE 32 #define UT_HOSTSIZE 256 struct exit_status {kort int e_termination; / * prosess avslutningsstatus. * / kort int e_exit; / * behandle utgangsstatus. * /}; struct utmp {kort ut_type; / * type innlogging * / pid_t ut_pid; / * pid av påloggingsprosessen * / char ut_line UT_LINESIZE; / * Enhetsnavn for tty - "/ dev /" * / char ut_id 4; / * init id eller forkortet. ttyname * / char ut_user UT_NAMESIZE; / * brukernavn * / char ut_host UT_HOSTSIZE; / * vertsnavn for ekstern pålogging * / struct exit_status ut_exit; / * Avgangsstatusen til en prosess merket som DEAD_PROCESS. * / lang ut_session; / * sesjons-ID, brukt til vinduer * / struct timeval ut_tv; / * Tidspost ble gjort. * / int32_t ut_addr_v6 4; / * IP-adresse til ekstern vert. * / karbonblokk 20; / * Reservert for fremtidig bruk. * /}; / * Bakover kompatibilitet 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
Denne strukturen gir navnet på den spesielle filen som er knyttet til brukerens terminal, brukerens påloggingsnavn og tidspunktet for pålogging i form avtid(2). Stringfelt er avsluttet av' ' hvis de er kortere enn feltets størrelse.
De første oppføringene som noensinne er opprettet, er resultatet av i det (8) behandling inittab (5). Før en oppføring behandles, skjønt, i det (8) rydder utmp ved innstillingut_type tilDEAD_PROCESS, ryddingut_user, ut_host, ogut_time med nullbyte for hver post somut_type er ikkeDEAD_PROCESS ellerRUN_LVL og hvor ingen prosess med PIDut_pid eksisterer. Hvis ingen tom post med nødvendigut_id kan bli funnet, init skaper en ny. Det setterut_id fra inittab,ut_pid ogut_time til de nåværende verdiene, ogut_type tilINIT_PROCESS.
getty (8) lokaliserer inngangen av pid, endringerut_type tilLOGIN_PROCESS, Endringerut_time, setteneut_line, og venter på at forbindelsen skal etableres. Logg Inn (8), etter at en bruker har blitt godkjent, endresut_type tilUSER_PROCESS, Endringerut_time, og settut_host ogut_addr. Avhengig av getty (8) og Logg Inn (8), kan poster bli plassert vedut_line i stedet for å foretrekkeut_pid.
Når i det (8) finner ut at en prosess har gått ut, lokaliserer den sin UTMP-oppføring vedut_pid, setteneut_type tilDEAD_PROCESS, og rydderut_user, ut_host ogut_time med nullbyte.
xterm (1) og andre terminalemulatorer oppretter direkte enUSER_PROCESS registrere og generereut_id ved å bruke de to siste bokstavene i/ Dev / ttyp % c eller ved å brukep % d til/ dev / pts / % d . Hvis de finner enDEAD_PROCESS For dette IDet, resirkulerer de det, ellers lager de en ny oppføring. Hvis de kan, merker de det somDEAD_PROCESS på spennende og det anbefales at de nuller ut_line,ut_time, ut_user, ogut_host også.
xdm (8) bør ikke opprette en UTMP-post, fordi det ikke er noen tildelt terminal. Å la det opprette en vil resultere i feil, for eksempel 'finger: kan ikke stat /dev/machine.dom'. Det bør opprette wtmp oppføringer, likevel, akkurat som ftpd (8) gjør.
telnetd (8) setter opp aLOGIN_PROCESS oppføring og etterlater resten til Logg Inn (8) som vanlig. Etter at telnet-økten slutter, telnetd (8) rydder utmp på den beskrevne måten.
Dewtmp filen registrerer alle pålogginger og logger. Dens format er akkurat somutmp bortsett fra at et nullbrukernavn angir en logout på den tilknyttede terminalen. Videre er terminalnavnet'~'med brukernavn"skru av" eller"Reboot" Indikerer en systemavstenging eller omstart og paret av terminalnavn'|'/'}' logger den gamle / nye systemtiden når Dato (1) endrer den.wtmp vedlikeholdes av Logg Inn (1), i det (1), og noen versjoner av getty (1). Ingen av disse programmene lager filen, så hvis den er fjernet, er opptaksloggen slått av.




