Linux కమాండ్ను తెలుసుకోండి - wtmp

పేరు

utmp, wtmp - లాగిన్ రికార్డులు

సంక్షిప్తముగా

# చేర్చండి

వివరణ

Utmp ఫైలు ప్రస్తుతం వ్యవస్థను ఎవరు ఉపయోగిస్తుందో గురించి సమాచారాన్ని కనుగొనటానికి అనుమతిస్తుంది. ప్రస్తుతానికి వ్యవస్థను ఉపయోగించుకునే ఎక్కువ మంది వినియోగదారులు ఉండవచ్చు, ఎందుకంటే అన్ని ప్రోగ్రామ్లు utmp logging ను ఉపయోగించవు.

హెచ్చరిక: utmp వ్రాయదగినది కాదు, ఎన్నో సిస్టమ్ కార్యక్రమాలు (వెర్రి) దాని యథార్థతపై ఆధారపడి ఉంటాయి. ఏ వినియోగదారునికి మీరు వ్రాయగలిగేవాటిని వదలివేస్తే మీరు వ్యవస్థాపన చేయబడిన వ్యవస్థ లాగ్ఫైల్స్ మరియు సిస్టమ్ ఫైళ్ళ మార్పులను రిస్క్ చేస్తుంది.

ఈ ఫైలు ఫైలులో ఉన్న కింది ఆకృతితో (ఇది చుట్టూ అనేక నిర్వచనాలలో ఒకటి, గమనించండి: వివరాలు lbc యొక్క వర్షన్ మీద ఆధారపడతాయి) తో కూడిన ఎంట్రీల క్రమము:

UT_UNKNOWN # # నిర్వచించు RUN_LVL # # నిర్వచించు BOOT_TV1 # # నిర్వచించు NEW_TIME 3 # # OLD_TIME నిర్వచించు 4 # INIT_PROCESS # # నిర్వచించు LOGIN_PROCESS # # నిర్వచించు USER_PROCESS # # నిర్వచించు DEAD_PROCESS # # # నిర్వచించటానికి # # # UT_LINESIZE 12 # నిర్వచించే UT_NAMESIZE 32 # నిర్వచించే నిర్వచించండి UT_HOSTSIZE 256 struct exit_status {చిన్న int e_termination; / * ప్రాసెస్ రద్దు స్థితి. * / చిన్న int e_exit; / * ప్రాసెస్ నిష్క్రమణ స్థితి. * /}; struct utmp {short ut_type; / * లాగిన్ రకం * / pid_t ut_pid; / * లాగిన్ ప్రక్రియ యొక్క పైడ్ * / చార్ ut_line [UT_LINESIZE]; / * tty - "/ dev /" * / char ut_id [4] యొక్క పరికరం పేరు; / * init id లేదా abbrev. ttyname * / char ut_user [UT_NAMESIZE]; / * యూజర్ పేరు * / చార్ ut_host [UT_HOSTSIZE]; రిమోట్ లాగిన్ కోసం * * హోస్ట్ పేరు * / struct exit_status ut_exit; / * DEAD_PROCESS గా గుర్తించబడిన ప్రాసెస్ యొక్క నిష్క్రమణ స్థితి. * / long ut_session; / * సెషన్ ID, వాయువును వాడడానికి వాడతారు * struct ఆకృతి ut_tv; / * సమయం ఎంట్రీ జరిగింది. * / int32_t ut_addr_v6 [4]; / * రిమోట్ హోస్ట్ యొక్క IP చిరునామా. * / చార్ ప్యాడ్ [20]; / * భవిష్యత్ ఉపయోగం కోసం రిజర్వు చేయబడింది. * /}; / * బాక్వార్డ్స్ అనుకూలత హక్స్. * / # నిర్వచించు ut_name ut_user #ifndef _NO_UT_TIME # ut_time ut_tv.tv_sec #endifine # నిర్వచించు ut_xtime ut_tv.tv_sec # నిర్వచించు ut_addr ut_addr_v6 నిర్వచించు [0]

ఈ నిర్మాణం యూజర్ యొక్క టెర్మినల్, వినియోగదారు యొక్క లాగిన్ పేరు మరియు సమయం (2) రూపంలో లాగిన్ సమయంతో అనుబంధించబడిన ప్రత్యేక ఫైలు పేరును ఇస్తుంది. క్షేత్ర పరిమాణం కంటే తక్కువ ఉంటే స్ట్రింగ్ ఖాళీలను '\ 0' ద్వారా రద్దు చేయబడతాయి.

మొదటి ఎంట్రీలు ఇప్పటికి init (8) ప్రాసెసింగ్ inittab (5) నుండి ఫలితాన్ని సృష్టించింది. ఎంట్రీని ప్రాసెస్ చేయకముందు, అయితే, ut_type DEAD_PROCESS లేదా RUN_LVL కాదు, మరియు PID ut_pid తో ఏ విధానంలోనూ లేనప్పుడు, ప్రతి రికార్డు కోసం శూన్య బైట్లతో, DEAD_PROCESS , ut_user , ut_host , మరియు ut_time ని క్లియర్ చేస్తుంది ut_p ను శుభ్రపరుస్తుంది. అవసరమయ్యే ut_id తో ఏ ఖాళీ రికార్డు కనుగొనబడకపోతే, init క్రొత్తది సృష్టించును. ఇది ప్రస్తుత విలువలకి inittab, ut_pid మరియు ut_time నుండి ut_id ని సెట్ చేస్తుంది , మరియు UI_type కు INIT_PROCESS కు .

గెట్టీ (8) పిడ్ ద్వారా ఎంట్రీని గుర్తించడం, LOGIN_PROCESS కు మార్పులకు ut_type , మార్పులు ut_time , సెట్లు ut_line , మరియు కనెక్షన్ కోసం నిలబడుతుంది. లాగిన్ (8), ఒక వినియోగదారు ప్రమాణీకరించబడిన తర్వాత, USER_PROCESS కు మార్పులకు U_type , మార్పులు ut_time మరియు సెట్లు ut_host మరియు ut_addr . గెట్టీ (8) మరియు లాగిన్ (8) మీద ఆధారపడి, రికార్డులు prefer_pid కు బదులుగా ut_line ద్వారా ఉంటాయి .

Init (8) ఒక ప్రక్రియ ముగిసినట్లు కనుగొన్నప్పుడు, అది ut_pid చేత utmp నమోదును DEAD_PROCESS కు అమర్చుతుంది , ut_user , ut_host మరియు ut_time ను శూన్య బైట్లతో క్లియర్ చేస్తుంది.

xterm (1) మరియు ఇతర టెర్మినల్ ఎమ్యులేటర్లు నేరుగా ఒక USER_PROCESS రికార్డును సృష్టించి, / dev / ttyp % c యొక్క చివరి రెండు అక్షరాలను ఉపయోగించి లేదా / dev / pts / % d కోసం p % d ని ఉపయోగించడం ద్వారా ut_id ను రూపొందించుకోండి . వారు ఈ ID కోసం DEAD_PROCESS ను కనుగొంటే, వారు దానిని రీసైకిల్ చేస్తే, లేకపోతే వారు కొత్త ఎంట్రీని సృష్టించారు. వారు చేయగలిగితే, వారు నిష్క్రమించేటప్పుడు DEAD_PROCESS గా గుర్తించబడతారు మరియు ఇది వారు శూన్య ut_line , ut_time , ut_user మరియు ut_host అలాగే సూచించబడతారు .

xdm (8) ఎంట్రీపీ రికార్డును సృష్టించకూడదు ఎందుకంటే ఎటువంటి కేటాయించిన టెర్మినల్ లేదు. ఇది ఒకదాన్ని రూపొందించడానికి అనుమతించడం వలన 'వేలు: stat /dev/machine.dom కాదు' వంటి లోపాలు ఏర్పడతాయి. ఇది ftpd (8) వలె, wtmp ఎంట్రీలను సృష్టించాలి.

telnetd (8) LOGIN_PROCESS ఎంట్రీని సెటప్ చేసి, మిగిలినదానిని (8) లాగిన్ అయ్యేలా వదిలివేస్తుంది. టెల్నెట్ సెషన్ ముగుస్తుంది తరువాత, telnetd (8) వివరించిన విధంగా utmp శుభ్రపరుస్తుంది.

Wtmp ఫైలు అన్ని లాగిన్లు మరియు లాగ్ అవుట్ లను నమోదు చేస్తుంది. దాని ఫార్మాట్ సరిగ్గా utmp వలె ఉంటుంది, ఒక శూన్య వాడుకరి పేరు అనుబంధ టెర్మినల్ పై లాగ్ అవుట్ ను సూచిస్తుంది. అంతేకాకుండా, వినియోగదారు పేరు "షట్డౌన్" లేదా "రీబూట్ " తో టెర్మినల్ పేరు "~" వ్యవస్థ షట్డౌన్ లేదా రీబూట్ మరియు టెర్మినల్ పేర్ల "|" / "}" తేదీ (1) మారుతున్నప్పుడు పాత / కొత్త సిస్టమ్ సమయం లాగ్ చేస్తుంది. wtmp లాగిన్ (1), init (1) మరియు గెట్టీ (1) యొక్క కొన్ని వెర్షన్లు ద్వారా నిర్వహించబడుతుంది. ఈ కార్యక్రమాలు ఏదీ ఫైల్ను సృష్టించవు , కాబట్టి అది తీసివేయబడితే, రికార్డ్ కీపింగ్ ఆపివేయబడుతుంది.