Linux आदेश सिक्नुहोस् - wtmp

नाम

utmp, wtmp - लगइन रेकर्ड

सारांश

# utmp.h> समावेश गर्नुहोस्

विवरण

Utmp फाइलले एक को बारे मा जानकारी को खोज गर्न को लागि अनुमति दि्छ जो वर्तमान मा प्रणाली को उपयोग गर्दछ। त्यहाँ हाल प्रयोगकर्ताहरू प्रणाली प्रयोग गर्दै हुन सक्छन्, किनभने सबै प्रोग्रामहरू utmp लगिङ प्रयोग गर्दैनन्।

चेतावनी: utmp लेख्न योग्य हुँदैन, किनभने धेरै प्रणाली प्रोग्रामहरू (मूर्खतापूर्वक) यसको निष्ठामा निर्भर छ। यदि तपाइँ कुनै पनि प्रयोगकर्तालाई लेख्न योग्य हुन छोड्छ भने तपाईले फेक प्रणाली लगफाइल र प्रणाली फाईलहरूको परिमार्जन खारेज गर्दछ

फाईलहरू प्रविष्टिको अनुक्रम हो जुन निम्न ढाँचा फाइलमा घोषित गरिएको छ (नोट गर्नुहोस् कि यो केवल धेरै परिभाषाहरू मध्ये एक मात्र हो; विवरणहरू 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 #de 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; / * प्रक्रिया समाप्त स्थिति। * / short int e_exit; / * प्रक्रिया बाहिर निस्कन स्थिति। * /}; struct utmp {छोटो ut_type; / * लगइन को प्रकार * / pid_t ut_pid; / * लगइन प्रक्रिया को pid ​​* / char ut_line [UT_LINESIZE]; / * टिटी को उपकरण नाम - "/ dev /" * / char ut_id [4]; / * init id वा abbrev। ttyname * / char ut_user [UT_NAMESIZE]; / * प्रयोगकर्ता नाम * / char ut_host [UT_HOSTSIZE]; / * रिमोट लगइनको लागि होस्टनाम * / struct exit_status ut_exit; / * DEAD_PROCESS को रूपमा चिह्नित प्रक्रियाको बाहिर निस्कन स्थिति। * / लामो ut_session; / * सत्र आईडी, विलुप्त * / struct timeval ut_tv को लागि प्रयोग भएको; / * टाइम प्रविष्टि बनाइयो। * / int32_t ut_addr_v6 [4]; / * रिमोट होस्टको IP ठेगाना। * / चार पैड [20]; / * भविष्यको प्रयोगको लागि आरक्षित। * /}; / * पिछला संगतता हैक। * / #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) प्रोसेसिंग इनटिब (5) बाट। प्रविष्टिलाई प्रक्रियामा राख्नु अघि, 8 (8) ut_type लाई DEAD_PROCESS लाई सेट गरेर , ut_user , ut_host , र ut_time लाई प्रत्येक रेकर्डको लागि जो ut_type DEAD_PROCESS वा RUN_LVL होइन र PID ut_pid सँग कुनै प्रक्रिया छ जहाँ कुनै प्रक्रियाको लागि खाली गरेर utmp टाइप गरेर utmp छान्नुहोस् । यदि आवश्यक ut_id भेटिएन कुनै खाली रेकर्ड पाउन सकिन्छ, इनिटले नयाँ सिर्जना गर्दछ। यसले ut_id inittab बाट, ut_pidut_time हालको मानहरूमा सेट गर्दछ, र ut_type INIT_PROCESS लाई

गीता (8) पिडद्वारा प्रविष्टि पत्ता लगाउँदछ, ut_type LOGIN_PROCESS लाई परिवर्तन गर्दछ, परिवर्तन ut_time , ut_line सेट गर्दछ , र जडान हुनको लागि पर्ख्छ। लगइन (8), प्रयोगकर्ता पछि प्रमाणित भएपछि, ut_type USER_PROCESS लाई परिवर्तन गर्दछ , ut_time परिवर्तन गर्दछ , र ut_hostut_addr सेट गर्दछ। गेट (8) र लग इन (8) मा निर्भर गर्दछ, रेकर्ड ut_line द्वारा ut_pid को सट्टा स्थित हुन सक्छ।

जब इन्टिट (8) फेला पार्दछ कि प्रक्रिया बाहिर निस्कन्छ, यसलाई ut_pid द्वारा यसको utmp प्रविष्टि पत्ता लगाउँछ, ut_type को DEAD_PROCESS सेट गर्दछ, र ut_user , ut_hostut_time लाई रिक्त बाइट्स संग सफा गर्दछ।

xterm (1) र अन्य टर्मिनल इमुलेटरहरूले सीधा USER_PROCESS रेकर्ड बनाउँदछut_id उत्पन्न गर्नुहोस् / dev / ttyp % c को प्रयोग गरेर वा % dev / pts / % d को लागि p % d प्रयोग गरेर। यदि उनीहरूले यस आईडीको लागि DEAD_PROCESS खोज्छन् भने, उनीहरूलाई पुन: पाउँछन् , अन्यथा तिनीहरूले नयाँ प्रविष्टि सिर्जना गर्छन्। यदि तिनीहरू गर्न सक्छन्, तिनीहरू यसलाई DEAD_PROCESS बाहिर निस्किने रूपमा चिन्हित गर्नेछ र यो सल्लाह दिइन्छ कि उनीहरूले ut_line , ut_time , ut_user , र ut_host निलम्बित गर्दछ।

xdm (8) एक utmp रेकर्ड सिर्जना गर्नु हुँदैन, किनभने त्यहाँ कुनै तोकिएको टर्मिनल छैन। यसलाई सेट गर्नाले त्रुटिहरू मा परिणाम हुनेछ, जस्तै 'औंला: stat static /dev/machine.dom'। यो wtmp प्रविष्टिहरू सिर्जना गर्नुपर्छ, तथापि, ftpd (8) जस्तै।

telnetd (8) ले LOGIN_PROCESS प्रविष्टि सेट अप गर्दछ र बायाँबाट लगइन (8) लाई सामान्य रूपमा छोड्दछ। टेलिनेट सत्र समाप्त भएपछि, telnetd (8) वर्णन गरिएको तरिकामा utmp छ।

Wtmp फाइलले सबै लगइनहरू र लगआउटहरू रेकर्ड गर्दछ। यसको ढाँचा बिल्कुल utmp जस्तो छ कि बाहेक एक रिक्त प्रयोगकर्ता नामले सम्बन्धित टर्मिनलमा लग आउट गर्दछ। यसबाहेक, टर्मिनल नाम "~" प्रयोगकर्ता नाम "बन्द" वा "पुनःबुट" सँग प्रणाली प्रणाली बन्द वा रिबुट र टर्मिनल नामहरूको जोडीलाई सङ्केत गर्दछ "|" / "}" पुरानो / नयाँ प्रणाली समय लगाउँदा मिति (1) यसलाई परिवर्तन गर्दछ। wtmp को लगइन द्वारा बनाए राखिएको छ (1), इनिट (1), र गेट को केहि संस्करण (1)। यी प्रोग्रामहरू मध्ये कुनै पनि फाईल सिर्जना गर्दछ, त्यसैले यदि यो हटाइयो भने, रेकर्ड-राख्ने बन्द गरिएको छ।