लिनक्स: मेरे सिस्टम से सभी लॉगिन लॉग कैसे प्राप्त करें [बंद]


12

मैं अपने सिस्टम में पिछले वर्ष के बाद से उपयोगकर्ता द्वारा लॉग इन सभी बार जानना चाहता हूं?
मैंने lastकमांड का उपयोग किया लेकिन यह उपयोगी नहीं है।


1
स्टैक एक्सचेंज में आपका स्वागत है! कृपया याद रखें कि हम सभी स्वयंसेवक यहाँ हैं। जैसे, हम उम्मीद करते हैं कि आपने कुछ बुनियादी शोध किए हैं। ऐसा लगता है कि आपके पास एक शुरुआत है - जब से आप lastकमांड का प्रयास करने का उल्लेख करते हैं - लेकिन आपको उससे अधिक शोध करना चाहिए, और किसी भी मामले में, आपने वास्तव में निर्दिष्ट नहीं किया है कि lastकमांड क्यों उपयोगी नहीं है। भी, "लॉग इन" को परिभाषित करें। क्या आप कंसोल लॉगिन को ट्रैक करना चाहते हैं? SSH लॉगिन? Emacs मना करें, telnetलॉगिन करें? या सिर्फ कुछ भी PAM के साथ प्रमाणित? विशिष्ट होना ।
आवारा

जवाबों:


10

रेडहैट-स्टाइल लाइनक्स पर लॉगिन लॉग्स को कहा जाता है wtmp( man wtmp), /var/log/डिफ़ॉल्ट रूप से संग्रहित किया जाता है, और आप उन्हें utmpdump(RHL6 पर) का उपयोग करके पुनः प्राप्त कर सकते हैं ।

[root@server ~]# utmpdump /var/log/wtmp* | awk '$4~"root" {print}'
Utmp dump of /var/log/wtmp
[7] [01320] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:31:47 2013 UTC]
[7] [01817] [ts/3] [root    ] [pts/3       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:38:22 2013 UTC]
[7] [01690] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:59:04 2013 UTC]
[7] [23641] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Wed Sep 25 19:12:44 2013 UTC]
[7] [03020] [ts/0] [root    ] [pts/0       ] [192.168.1.100       ] [192.168.1.100  ] [Fri Sep 27 21:33:40 2013 UTC]
...

1

ऐसा लगता है lastकि आप जो करने की कोशिश कर रहे हैं उसे हासिल करने के लिए इस्तेमाल किया जा सकता है। जानकारी निकालने के लिए आपको अंतिम आदेश में तारीख संलग्न करने की आवश्यकता है।

last | while read line; do date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`; [[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line; done

हालांकि, यदि आप किसी विशेष उपयोगकर्ता के बारे में जानकारी प्राप्त करने से संबंधित हैं, तो आप अंतिम कमांड को संशोधित कर सकते हैं last usernameऔर फिर उस पर whileलूप को पाइप कर सकते हैं। यह आपको पिछले एक वर्ष के लिए किसी विशेष उपयोगकर्ता की लॉगिन जानकारी प्रदान करेगा।

मैंने उपरोक्त कमांड का परीक्षण किया और यह मेरे सिस्टम में पूरी तरह से ठीक है। मैंने यहाँ से उपरोक्त आदेश लिया ।

आप अपनी आवश्यकताओं के अनुरूप कमांड में तारीख बदल सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.