Linux командалык билүү - wtmp

ысым

utmp, wtmp - кирүү жазуулар

Кыскача баяндама

#include

баяндоо

Utmp билэ бир учурда системасын колдонуп жатат жөнүндө маалымат көрө аласыз. Баары эмес, анткени, азыркы учурда системасын колдонуу менен көбүрөөк пайдалануучулар болушу мүмкүн эмес програмдардын тили utmp кыюуларга колдонушат.

Эскертүү: utmp көп тутуму (акылсыз) анын бүтүндүгүн көз каранды, анткени, эркинлиги болбошу керек. Эгер кандайдыр бир колдонуучуга utmp жазылбайт кетип, анда жасалма система logfiles система делолорун өзгөртүүлөрдү тобокелге.

Билэ Билэ камтыйт жарыяланышы төмөнкү түзүмү менен жазуулардын бир тизилүү болуп саналат (бул бир нече аныктамалары бири гана экенин белгилеп, маалымат 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 эсепке 9 #define UT_LINESIZE 12 #define UT_NAMESIZE 32 #define UT_HOSTSIZE 256 з exit_status {кыска Инт e_termination; / * Жараян токтотуу абалы. * / Кыска Инт e_exit; / * Тымызын абалы. * /}; з utmp {кыска ut_type; / * Кирүү * / pid_t ut_pid түрү; / * Кирүү жараяны * / Исахар ut_line жана PID [UT_LINESIZE]; / * Телетайп түзмөк аты - "/ иштеп чыгуучунун /" * / Исахар ut_id [4]; / * ЖМТИ номуру же abbrev. ttyname * / Исахар ut_user [UT_NAMESIZE]; / * Колдонуучу аты * / Исахар ut_host [UT_HOSTSIZE]; / * Алыстан кирүү үчүн хост * / з exit_status ut_exit; / * DEAD_PROCESS катары белгиленген ыкманы бүтүрүү статусу. * / Узак ut_session; / * Сессия ID, терезеге үчүн колдонулат * / з timeval ut_tv; / * Убакыт кириши болду. * / Int32_t ut_addr_v6 [4]; / * IP алыскы аскер дареги. * / Исахар блокнот [20]; / * Келечекте пайдалануу үчүн Reserved. * /}; / * Backwards шайкештик ыкмаларды. * / #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]

Бул структура түрүндө колдонуучунун терминалын, колдонуучунун логин аты менен байланышкан атайын билэ атын жана кирүүдө убактысын берген учурда (2). Алар талаадагы өлчөмүнөн кем болсо, Сап талаалары "\ 0" тарабынан токтотулат.

Биринчи жазуулар да ЖМТИ (8) кайра иштетүү inittab (5) келген натыйжасын түзгөн. Кирүү иштетилет чейин да, ЖМТИ (8) DEAD_PROCESS үчүн ut_type белгилөө, клирингдик ut_user, ut_host менен, ар бир жазуу ut_type үчүн күчүн байттар менен ut_time DEAD_PROCESS же RUN_LVL эмес жана кайда PID ut_pid менен эч кандай иши бар utmp тазалайт. Зарыл ut_id менен эч бош жазуу тапса болот, анда ЖМТИ бир жаңы адамды жаратат. Бул inittab, азыркы баалуулуктарды ut_pid жана ut_time жана INIT_PROCESS үчүн ut_type чейин ut_id көрсөтөт.

Гетти (8) PID менен кирүүгө тапканда, өзгөрүүлөр LOGIN_PROCESS үчүн ut_type, ut_time өзгөртсө, ut_line көрсөтөт, жана байланыш белгиленет үчүн буктурмада жатат +. кирүү (8), колдонуучу сахих кийин, өзгөртүүлөр USER_PROCESS үчүн ut_type, ut_time өзгөртөт жана көптүктөр ut_host жана ut_addr. Гетти жараша (8) жана кирүү (8), иш кагаздарын артыкчылык ut_pid ut_line ордуна орун алышы мүмкүн.

ЖМТИ (8) жараяны тизмеден деп тапканда, аны utmp ut_pid менен кирүүгө, DEAD_PROCESS үчүн ut_type көрсөтөт жана күчүн байттар менен ut_user, ut_host жана ut_time тазалайт жайгашкан.

xterm (1) жана башка терминал Emulators түздөн-түз USER_PROCESS рекорд түзүү жана / иштеп чыгуучунун / ttyp% тосмосунун акыркы эки кат аркылуу же / иштеп чыгуучунун / ээрчүү /% г-б% D аркылуу ut_id пайда. Бул ID үчүн DEAD_PROCESS болсо, алар, эгерде алар жаңы жазууну түзүп, аны кайра иштетүү. Эгер алар мүмкүн, алар менен журуучу жана алар ut_line, ut_time, ut_user анык эмес деп насаат боюнча DEAD_PROCESS катары белгилеп, жана ошондой эле, ut_host болот.

xdm (8) эч кандай дайындалган терминалы бар, анткени, бир utmp рекорд түзүү керек. ал бир албаш үчүн, мисалы, каталар, алып келет "манжасы: /dev/machine.dom, б³тк³л мүмкүн эмес". Бул ftpd (8) сыяктуу эле, бирок, wtmp жазууларды түзүү керек.

telnetd (8) LOGIN_PROCESS кирүүсүнө жол берсе, (8) адаттагыдай эле кире тынчтык кетет. Кируу сессия аяктагандан кийин, telnetd (8) баяндалган жол менен utmp тазалайт.

Wtmp билэ бардык кирүү жана logouts жазылган. Анын формат так анык эмес колдонуучунун аты байланышкан терминалга тутумдан чыгуу көрсөтүп башка utmp окшош. Мындан тышкары, терминалдык аты-жөнү: "~" колдонуучунун аты менен, "өчүрүү", же "өчүрүп" системасы жабылышы же өчүрүп жана терминалдык аттарын жуп көрсөтүп турат "|" / "}" Эски / жаңы системасы убакыт жетсин датасы (1) аны өзгөртөт. wtmp кирүүдө менен кармалып турат (1), ЖМТИнин (1), жана Гетти айрым котормолорунда (1). Бул программаларды да түзүп билэни , аны алып жаткан болсо, эсепке алуу өчүрүлгөн.