Skip to main content

Jak používat příkaz Unix Utmp v Linuxu

TEK ÇANAK ANTEN İLE TURKSAT ve ASTRA 5B UYDULARI (Červen 2026)

TEK ÇANAK ANTEN İLE TURKSAT ve ASTRA 5B UYDULARI (Červen 2026)
Anonim

Theutmp soubor umožňuje zjistit informace o tom, kdo v současné době využívá systém. V systému je pravděpodobně více uživatelů, protože ne všechny programy používají utmp protokolování.

Varování: utmp nesmí být zapisovatelná, protože mnoho systémových programů (pošetilé) závisí na jejich integritě. Při odchodu riskujete padělané systémové logy a modifikace systémových souborůutmpzapisovatelný každému uživateli.

Soubor je sekvence záznamů s následující strukturou deklarovanou v souboru include (poznamenat, že toto je pouze jedna z několika definic v okolí, podrobnosti závisí na verzi libc):

#define UT_UNKNOWN 0 #define RUN_LVL 1 #definovat BOOT_TIME 2 # vymezit NEW_TIME 3 # vymezit OLD_TIME 4 # vymezit INIT_PROCESS 5 # vymezit LOGIN_PROCESS 6 # vymezit USER_PROCESS 7 # vymezit DEAD_PROCESS 8 # vymezit ACCOUNTING 9 # vymezit UT_LINESIZE 12 # vymezit UT_NAMESIZE 32 #define UT_HOSTSIZE 256 struktura exit_status {short int etermination; / * stav ukončení procesu. * / krátký int e_exit; / * proces ukončení stavu. * /}; struct utmp {krátké ut_type; / * typ přihlášení * / pid_t ut_pid; / * pid procesu přihlášení * / char ut_line UT_LINESIZE; / * název zařízení tty - "/ dev /" * / char ut_id 4; / * init id nebo zkratka. ttyname * / char ut_user UT_NAMESIZE; / * uživatelské jméno * / char ut_host UT_HOSTSIZE; / * název hostitele pro vzdálené přihlášení * / struct exit_status ut_exit; / * Stav ukončení procesu označený jako DEAD_PROCESS. * / dlouhá ut_session; / * session ID, použitý pro okenování * / struct timeval ut_tv; / * bylo provedeno zadání času. * / int32_t ut_addr_v6 4; / * IP adresa vzdáleného hostitele. * / char podložka 20; / * Vyhrazeno pro budoucí použití. * /}; / * Zpětná kompatibilita hacks. * / #definovat ut_name ut_user #ifndef _NO_UT_TIME # vymezení ut_time ut_tv.tv_sec #endif #define ut_xtime ut_tv.tv_sec #define ut_addr ut_addr_v6 0

Tato struktura obsahuje název zvláštního souboru přidruženého k terminálu uživatele, přihlašovací jméno uživatele a čas přihlášení v podoběčas(2). Políčka řetězců jsou ukončena'' pokud jsou kratší než velikost pole.

Nejprve vzniklé první záznamy pocházejí z init (8) zpracování inittab (5). Před zpracováním záznamu však, init (8) vyčistí utmp nastavenímut_type naDEAD_PROCESS, zúčtováníut_user, ut_host, aut_time s nulovými bajty pro každý záznam, kterýut_type neníDEAD_PROCESS neboRUN_LVL a kde není žádný proces s PIDut_pid existuje. Není-li k dispozici žádný prázdný záznamut_id může být nalezen, init vytvoří nový. Nastavuje seut_id od inittab,ut_pid aut_time na aktuální hodnoty aut_type naINIT_PROCESS.

Getty (8) vyhledá záznam pidem, změní seut_type naLOGIN_PROCESS, Změnyut_time, sadyut_line, a čeká na vytvoření spojení. přihlásit se (8) po změně ověření uživateleut_type naUSER_PROCESS, Změnyut_time, a nastaveníut_host aut_addr. Záleží na Getty (8) a přihlásit se (8), záznamy mohou být umístěny dout_line místo preferovanýchut_pid.

Když init (8) zjistí, že proces opustil, ale najde jeho utmp vstup dout_pid, sadyut_type naDEAD_PROCESS, a vyčistíut_user, ut_host aut_time s nulovými bajty.

xterm (1) a další terminálové emulátory přímo vytvářejí aUSER_PROCESS zaznamenávat a generovatut_id pomocí posledních dvou písmen z/ dev / ttyp %C nebo použitímstr % d pro/ dev / pts / % d . Pokud najdou aDEAD_PROCESS pro toto id, recyklují to, jinak vytvoří nový záznam. Pokud mohou, označují to jakoDEAD_PROCESS při odchodu a je doporučeno, aby byly nulové ut_line,ut_time, ut_user, aut_host také.

xdm (8) by neměl vytvářet rekord utmp, protože neexistuje žádná přiřazená koncovka. Pokud jej vytvoříte, bude to mít za následek chyby, jako například "prst: nemůľete uvést /dev/machine.dom". Mělo by však vytvářet položky wtmp, stejně jako ftpd (8).

telnetd (8) nastavuje aLOGIN_PROCESS vstup a zbytek zanechá přihlásit se (8) jako obvykle. Po ukončení telnetové relace, telnetd (8) čistí utmp popsaným způsobem.

Thewtmp soubor zaznamenává všechna přihlášení a odhlášení. Jeho formát je přesně stejnýutmp že nulové uživatelské jméno označuje odhlášení na příslušném terminálu. Dále název terminálu'~'s uživatelským jménem"vypnout" nebo"restartovat" znamená vypnutí nebo restart systému a pár názvů terminálů'|'/'}' zaznamená starý / nový systémový čas datum (1) to změní.wtmp je udržován přihlásit se (1), init (1) a některé verze Getty (1). Žádný z těchto programů nevytvoří soubor, takže pokud je odstraněn, nahrávání se vypne.