Conegueu el comandament de Linux: wtmp

Nom

utmp, wtmp - registres d'inici de sessió

Sinopsi

#include

Descripció

El fitxer utmp permet descobrir informació sobre qui està utilitzant el sistema actualment. És possible que hi hagi més usuaris que utilitzen el sistema actualment, perquè no tots els programes utilitzen el registre d'utmp.

Advertència: utmp no pot escriure, ja que molts programes del sistema (tontos) depenen de la seva integritat. Arrisca els fitxers de registre del sistema falsificats i les modificacions dels fitxers del sistema si deixeu que l'usuari pugui escriure-lo a qualsevol usuari.

El fitxer és una seqüència d'entrades amb la següent estructura declarada al fitxer d'inclusió (tingueu en compte que aquesta és només una de diverses definicions, els detalls depenen de la versió de 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; / * estat de terminació del procés. * / short int e_exit; / * estat de sortida del procés. * /}; utmp d'estructura (short ut_type; / * tipus d'inici de sessió * / pid_t ut_pid; / * pid of login process * / char ut_line [UT_LINESIZE]; / * nom del dispositiu de tty - "/ dev /" * / char ut_id [4]; / * init id o abbrev. ttyname * / char ut_user [UT_NAMESIZE]; / * nom d'usuari * / char ut_host [UT_HOSTSIZE]; / * nom d'amfitrió per a l'inici de sessió remot / struct exit_status ut_exit; / * L'estat de sortida d'un procés marcat com DEAD_PROCESS. * / long ut_session; / * ID de sessió, usat per a la finestra * / struct timeval ut_tv; / * es va fer l'entrada de temps. * / int32_t ut_addr_v6 [4]; / * Adreça IP de l'amfitrió remota. * / char pad [20]; / * Reservat per a ús futur. * /}; / * Hacks de compatibilitat cap a enrere. * / #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]

Aquesta estructura proporciona el nom del fitxer especial associat al terminal de l'usuari, el nom d'usuari de l'usuari i la data d'inici de sessió en forma de temps (2). Els camps de cadena es cancel·len amb '\ 0' si són més curts que la mida del camp.

Les primeres entrades creades a partir de init (8) processament inittab (5). Abans que es processi una entrada, però, init (8) netegi utmp establint ut_type a DEAD_PROCESS , netejant ut_user , ut_host i ut_time amb bytes nuls per a cada registre que ut_type no sigui DEAD_PROCESS o RUN_LVL i on no existeix cap procés amb PID ut_pid . Si no es pot trobar un registre buit amb l' ut_id necessari, init crea una nova. Estableix ut_id del inittab, ut_pid i ut_time als valors actuals i ut_type a INIT_PROCESS .

getty (8) localitza l'entrada pel pid, canvia el tipus ut_ a LOGIN_PROCESS , canvia el temps ut_ , estableix ut_line i espera establir la connexió. inici de sessió (8), després que un usuari s'hagi autenticat, canvia el tipus ut_ a USER_PROCESS , canvia el temps ut_ , i estableix ut_host i ut_addr . Depenent de getty (8) i d' inici de sessió (8), els registres es poden ubicar per ut_line en comptes del preferit ut_pid .

Quan init (8) troba que s'ha abandonat un procés, localitza la seva entrada ut_pid , estableix ut_type en DEAD_PROCESS i esborra ut_user , ut_host i ut_time amb bytes nuls.

xterm (1) i altres emuladors de terminal creen directament un registre USER_PROCESS i generen l' ut_id utilitzant les dues últimes lletres de / dev / ttyp % c o utilitzant p % d per / dev / pts / % d . Si troben un DEAD_PROCESS per a aquesta id, la reciclen, en cas contrari creen una entrada nova. Si ho poden, el marcaran com a DEAD_PROCESS en sortir i es recomana que tinguin un valor nul · ut_line , ut_time , ut_user i ut_host .

xdm (8) no hauria de crear un registre utmp, perquè no hi ha cap terminal assignat. Deixar-lo crear provocarà errors, com ara 'finger: no pot stat /dev/machine.dom'. Hauria de crear entrades de wtmp, però, tal com fa ftpd (8).

telnetd (8) estableix una entrada LOGIN_PROCESS i deixa la resta per iniciar sessió (8) com de costum. Un cop finalitzada la sessió de telnet, telnetd (8) netitza utmp de la manera descrita.

L'arxiu wtmp registra tots els inicis de sessió i els desbloqueigs. El seu format és exactament igual a utmp excepte que un nom d'usuari nul indica una sortida al terminal associat. A més, el nom del terminal "~" amb el nom d'usuari "apagat" o "reinici" indica un apagat del sistema o reinici i el parell de noms del terminal "|" / "}" registra l'hora del sistema antic / nou quan la data (1) la canvia. wtmp es manté per inici de sessió (1), init (1), i algunes versions de getty (1). Cap d'aquests programes crea el fitxer , de manera que si s'elimina, el manteniment de registres està desactivat.