Skip to main content

Com utilitzar Command Utix Unix a Linux

Anonim

Elutmp El fitxer 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 es pot escriure, ja que molts programes del sistema (de manera tediosa) depenen de la seva integritat. S'arrisca els fitxers de registre del sistema falsificats i les modificacions dels fitxers del sistema si sortiuutmpEscriptura 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 detemps(2). Els camps de cadena es cancel·len'' si són més curts que la mida del camp.

Les primeres entrades creades des de Init (8) processament Inittab (5). Abans que es processi una entrada, però, Init (8) netitza utmp per configuracióut_ tipus aDEAD_PROCESS, netejantut_user, ut_host, iut_time amb bytes nuls per cada registre queut_ tipus no ésDEAD_PROCESS oRUN_LVL i on no hi ha cap procés amb PIDut_pid existeix. Si no hi ha cap registre buit amb el necessariut_id es pot trobar, init crea una nova. Es configuraut_id des del inittab,ut_pid iut_time als valors actuals, iut_ tipus aINIT_PROCESS.

getty (8) localitza l'entrada pel pid, canviaut_ tipus aLOGIN_PROCESS, canviaut_time, conjuntsut_line, i espera que es estableixi la connexió. iniciar Sessió (8), després que un usuari hagi estat autenticat, canviaut_ tipus aUSER_PROCESS, canviaut_time, i conjuntsut_host iut_addr. Depenent de getty (8) i iniciar Sessió (8), els registres poden estar ubicats perut_line en comptes del preferibleut_pid.

Quan Init (8) troba que s'ha abandonat un procés, localitza la seva entrada de màxima entradaut_pid, conjuntsut_ tipus aDEAD_PROCESS, i s'esborraut_user, ut_host iut_time amb bytes nuls.

xterm (1) i altres emuladors de terminal creen directament unUSER_PROCESS gravar i generar elut_id utilitzant les dues últimes lletres de/ dev / ttyp % c o utilitzantp % d per a/ dev / pts / % d . Si troben unDEAD_PROCESS per a aquesta id, la reciclen, en cas contrari creen una entrada nova. Si poden, ho marcaran com aDEAD_PROCESS a la sortida i s'aconsella que són nuls ut_line,ut_time, ut_user, iut_host també.

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'. Tanmateix, hauria de crear entrades de wtmp ftpd (8) ho fa.

telnetd (8) estableix unLOGIN_PROCESS entrada i deixa la resta a iniciar Sessió (8) com de costum. Un cop acabada la sessió telnet, telnetd (8) neteja el utmp de la manera descrita.

Elwtmp El fitxer registra tots els inicis de sessió i els inicis de sessió. El seu format és exactament igualutmp excepte que un nom d'usuari nul indica una sortida al terminal associat. A més, el nom del terminal'~'amb nom d'usuari"tancar" o"reiniciar" indica un apagat del sistema o reinici i el parell de noms de terminal'|'/'}' registra el temps del sistema antic / nou quan data (1) el canvia.wtmp es manté per iniciar 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.