Научите Линук Цомманд - втмп

Име

утмп, втмп - записе за пријављивање

Синопсис

#инцлуде <утмп.х>

Опис

Датотека утмп дозвољава откривању информација о томе ко тренутно користи систем. Можда има више корисника који тренутно користе систем, јер сви програми не користе утмп логгинг.

Упозорење: утмп не сме бити могуће писати, јер многи системски програми (глупо) зависе од његовог интегритета. Ви ризикујете лажне системске лог фајлове и модификације системских датотека ако оставите утмп да се може писати за било ког корисника.

Датотека је секвенца уноса са следећом структуром која је декларирана у фајлу укључивања (обратите пажњу да је ово само једна од неколико дефиниција, детаљи зависе од верзије либц):

#дефине УТ_УНКНОВН 0 #дефине РУН_ЛВЛ 1 #дефине БООТ_ТИМЕ 2 #дефине НЕВ_ТИМЕ 3 #дефине ОЛД_ТИМЕ 4 #дефине ИНИТ_ПРОЦЕСС 5 #дефине ЛОГИН_ПРОЦЕСС 6 #дефине УСЕР_ПРОЦЕСС 7 #дефине ДЕАД_ПРОЦЕСС 8 #дефине АЦЦОУНТИНГ 9 #дефине УТ_ЛИНЕСИЗЕ 12 #дефине УТ_НАМЕСИЗЕ 32 #дефине УТ_ХОСТСИЗЕ 256 струцт екит_статус {кратко инт е_терминатион; / * статус завршетка процеса. * / кратко инт е_екит; / * статус излазног процеса. * /}; струцт утмп {кратко ут_типе; / * тип логин * / пид_т ут_пид; / * пид процеса пријављивања * / цхар ут_лине [УТ_ЛИНЕСИЗЕ]; / * име уређаја тти - "/ дев /" * / цхар ут_ид [4]; / * инит ид или аббреви. ттинаме * / цхар ут_усер [УТ_НАМЕСИЗЕ]; / * корисничко име * / цхар ут_хост [УТ_ХОСТСИЗЕ]; / * хостнаме за удаљено пријављивање * / струцт екит_статус ут_екит; / * Статус изласка процеса означен као ДЕАД_ПРОЦЕСС. * / дуго ут_сессион; / * сессион ИД, користи се за прозор * / струцт тимевал ут_тв; / * унос времена. * / инт32_т ут_аддр_в6 [4]; / * ИП адреса удаљеног хоста. * / цхар пад [20]; / * Резервисано за будућу употребу. * /}; / * Хацкс цомпатибилити хацкс. * / #дефине ут_наме ут_усер #ифндеф _НО_УТ_ТИМЕ #дефине ут_тиме ут_тв.тв_сец #ендиф #дефине ут_ктиме ут_тв.тв_сец #дефине ут_аддр ут_аддр_в6 [0]

Ова структура даје име специјалног фајла повезаног са корисничким терминалом, корисничким корисничким именом и временом пријављивања у облику времена (2). Низ поља се прекида са '\ 0' ако су краћи од величине поља.

Први уноси икада створени резултат су инит (8) обраде иниттаб (5). Пре него што се унесе обрада , инит (8) очисти утмп тако што подеси ут_типе на ДЕАД_ПРОЦЕСС , чишћење ут_усер , ут_хост и ут_тиме са нулл бајтовима за сваки запис који ут_типе није ДЕАД_ПРОЦЕСС или РУН_ЛВЛ и гдје нема процеса са ПИД ут_пид . Ако нема празног записа са потребним ут_ид , инит креира нову. Он поставља ут_ид од иниттаб, ут_пид и ут_тиме до тренутних вриједности, а ут_типе до ИНИТ_ПРОЦЕСС .

гетти (8) лоцира унос од стране пид-а, мења ут_типе на ЛОГИН_ПРОЦЕСС , мења ут_тиме , поставља ут_лине , и чека да се веза успостави. логин (8), након што је корисник био аутентификован, промени ут_типе у УСЕР_ПРОЦЕСС , промени ут_тиме , и поставља ут_хост и ут_аддр . Зависно од гетти (8) и логин (8), записи се могу лоцирати по ут_лине умјесто преферирајућег ут_пид .

Када инит (8) установи да је процес изашао, лоцира свој утмп улаз од ут_пид , поставља ут_типе у ДЕАД_ПРОЦЕСС , и брише ут_усер , ут_хост и ут_тиме са нулл бајтовима.

ктерм (1) и други терминалски емулатори директно креирају запис УСЕР_ПРОЦЕСС и генеришу ут_ид користећи последња два слова / дев / ттип % ц или користећи п % д за / дев / птс / % д . Ако пронадју ДЕАД_ПРОЦЕСС за овај ид, рециклирају га, у супротном креирају нови унос. Ако могу, означити ће га као ДЕАД_ПРОЦЕСС на излазу и савјетује се да нулл ут_лине , ут_тиме , ут_усер и ут_хост .

кдм (8) не треба да креира запис утмп, јер не постоји додељени терминал. Омогућавање стварања једног би резултирало грешкама, као што је "прст: не може стат /дев/мацхине.дом". Требало би креирати втмп уносе, мада, баш као и фтпд (8).

телнетд (8) поставља ЛОГИН_ПРОЦЕСС ставку и оставља остало да се пријављује (8) као и обично. Након завршетка телнет сесије, телнетд (8) очисти утмп на описани начин.

Датотека втмп бележи све пријаве и логовања. Његов формат је управо такав као утмп осим што нултно корисничко име означава одјаву на придруженом терминалу. Осим тога, назив терминала "~" са корисничким именом "схутдовн" или "рестарт" означава систем схутдовн или рестартовање и пар имена терминала "|" / "}" логира старо / ново системско време када датум (1) мења. втмп се одржава логовањем (1), инит (1) и неким верзијама гетти (1). Ниједан од ових програма не креира датотеку , па ако је уклоњен, снимање је искључено.