स्थानीय खाता निर्माण तिथि


9

अनुपालन प्रयोजनों के लिए UNIX मशीनों पर स्थानीय (उपयोगकर्ता और गैर-उपयोगकर्ता) खातों के निर्माण की तारीख के बारे में जानकारी प्राप्त करने की आवश्यकता है।

क्या इस तरह की जानकारी एकत्र करने का कोई तरीका है (भले ही यह सबसे विश्वसनीय या सटीक तरीका न हो)?

उदाहरण के लिए, एक विकल्प के रूप में, मैं homeनिर्देशिका निर्माण तिथि (उपयोगकर्ता खातों के लिए) खोज रहा था, लेकिन मैंने पाया कि फ़ाइल निर्माण के लिए POSIX- अनुरूप सिस्टम टाइमस्टैम्प उपलब्ध नहीं हैं।


एक कच्चे सन्निकटन के रूप में, मुझे लगता है कि आपका सर्वश्रेष्ठ दांव में कुछ फोरेंसिक खुदाई करने के लिए है /var/log/auth.log(आप के रूप में अच्छी घुमाया लॉग में देखने की जरूरत है हो सकता है: /var/log/auth.log.1, /var/log/auth.log.2.gz, ...)। यह आपको उपयोगकर्ता खाते को प्रमाणित करने की पहली तारीख तक एक सुराग देगा। यह सिस्टम उपयोगकर्ताओं के लिए काम नहीं करेगा, हालांकि, और यह भी विफल हो जाएगा कि क्या आपके लंबे समय से syslogलॉग रोटेशन की अवधि से पहले खाते बनाए गए थे ।
जोसेफ आर।

यह विशिष्ट जानकारी डिफ़ॉल्ट रूप से कहीं भी संग्रहीत नहीं है। लेकिन आप /home/user
नवोदित

जवाबों:


3

यदि बनाया गया है और उपयोगकर्ता निर्माण के बाद से नहीं छुआ है तो आप .bash_logoutतिथि निर्धारित करने के लिए फ़ाइल का उपयोग कर सकते हैं । रूट रन के रूप में:

ls -l /home/<username>/.bash_logout

या, यदि उपयोगकर्ता के पास घर निर्देशिका है, तो आप उस निर्देशिका की अंतिम संशोधन तिथि देख सकते हैं:

ls -ld /home/username/

केवल वह दिनांक प्राप्त करने के लिए जिसका आप उपयोग कर सकते हैं awk:

ls -ld /home/username/ | awk '{ print $6,$7,$8 }'

स्रोत


ls -ld /home/username/होम डाइरेक्टरी के संशोधन का समय देता है, जो कि उपयोगी नहीं है, क्योंकि यह समय तब अपडेट किया जाता है जब कोई फ़ाइल होम डाइरेक्ट में जोड़ी जाती है या निकाली जाती है।
गिल्स एसओ- बुराई को रोकना '

3

खाता निर्माण लॉग इन किया जा सकता है। लिनक्स के तहत (यदि सामान्य शैडो यूटिलिटी सूट का उपयोग किया जाता है), useraddसुविधा के तहत लॉग एंट्री करता है auth.info। यह लॉग आमतौर पर /var/log/secureया /var/log/auth.log(यह वितरण पर निर्भर करता है) में स्थित है।

आप अपना बैकअप चेक कर सकते हैं /etc/passwdऔर देख सकते हैं कि कौन सा सबसे कम बैकअप है जिसमें यह खाता नहीं है। मैं परिवर्तन का ट्रैक रखने के लिए एटकीपर का उपयोग करने और अनुशंसा करता हूं /etc, इसलिए git annotate /etc/passwdमुझे इसका जवाब देना होगा। (वास्तव में git annotateमुझे बताएंगे कि पिछली बार एक उपयोगकर्ता की प्रविष्टि बदल दी गई थी; थोड़ा अधिक खुदाई जिसका स्वचालन इस उत्तर के दायरे से बाहर है, मुझे यह बताएगा कि प्रविष्टि कब जोड़ी गई थी।)

यदि आपके पास ऑडिट लॉग, बैकअप और संशोधन इतिहास की कमी है, तो आपको उत्तराधिकार का सहारा लेना होगा। एक अच्छा सुराग वह फाइल है जिसका इनोड चेंज टाइम (ctime) सबसे पुराना है। यह विधर्मी दोनों तरह से झूठ बोल सकता है: यदि किसी निर्देशिका को उपयोगकर्ता के घर में ले जाया जाता है, तो इसमें एक पुराने समय के साथ फाइलें हो सकती हैं (लेकिन उनके लिए उपयोगकर्ता की तुलना में पुराने होने के लिए, उनके यूआईडी को बदलाव के रूप में उपयोगकर्ता के रूप में नहीं होना चाहिए। uid में समय को अपडेट करना शामिल है, इसलिए आप उन फ़ाइलों को छोड़ सकते हैं जो उपयोगकर्ता के स्वामित्व में नहीं हैं); इसके विपरीत, कुछ ईवेंट फ़ाइल का समय बदल सकते हैं (जैसे कि यदि पूरी प्रणाली को बैकअप से बहाल किया गया हो)। आप उपयोगकर्ता के होम डायरेक्टरी ( ls -Alctr ~bob- sed -n 2p) से शुरू कर सकते हैं , जिसमें ऐसी फाइलें हो सकती हैं, जिन्हें /etc/skelउपयोगकर्ता ने कभी संशोधित नहीं किया है ( .bash_logoutएक आम है), और देखें कि क्या पुरानी फाइलें हैं find ~bob ! -cnewer ~bob/.bash_logout -user bob। Zsh के साथ, भागोls -ld ~bob/**/*(Doc[1]u:bob:)


1
$ chage -l fred

पासवर्ड बदलने की तारीख की जाँच करता है।


+1: अन्य उत्तरों की तुलना में, ऑडिट लॉग के अपवाद के साथ (जो उपलब्ध नहीं है) और LDAP (जो कि स्थानीय खाते का उल्लेख नहीं करता है), हमारे पास निर्माण को निर्धारित करने के लिए कोई विश्वसनीय तरीका नहीं है। तारीखें, कुछ विचार प्राप्त करने के लिए देखने के लिए विशेषताओं का एक गुच्छा। यह उनमें से एक है और मेरे सिस्टम पर यह वास्तव में सबसे सटीक निकला (लोग बस पासवर्ड नहीं बदलते थे), हालांकि केवल दिनों की सटीकता के साथ।
user1182474

1

स्थानीय उपयोगकर्ताओं के लिए, आप उन प्रणालियों और फ़ाइल सिस्टम के लिए उनके होम डायरेक्टरी जन्म समय को देख सकते हैं जो इसे रिकॉर्ड करते हैं (लिनक्स, अधिकांश बीएसडी, मैकओएस कम से कम)। कैसे करें कि सिस्टम के साथ भिन्न होता है

LDAP निर्देशिका में उपयोगकर्ताओं के लिए, आप उनके अनुरूप LDAP प्रविष्टि की createTimestamp(या संभवतः whenCreated) विशेषताओं को देख सकते हैं:

ldapsearch -LLL -x -H ldaps://ldap.example.com -s sub \
  -b dc=example,dc=com 'uid=username' createTimestamp whenCreated
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.