जवाबों:
TL; DR: नहीं, पासवर्ड को हैश के रूप में संग्रहीत किया जाता है जो (सामान्य रूप से) बरामद नहीं किया जा सकता है।
लिनक्स डिफ़ॉल्ट रूप से कहीं भी सादे-पाठ पासवर्ड संग्रहीत नहीं करता है । वे विभिन्न एल्गोरिदम के माध्यम से हैशेड या अन्यथा एन्क्रिप्टेड हैं। तो, सामान्य तौर पर, नहीं, यह संग्रहीत डेटा के साथ संभव नहीं है।
यदि आपके पास /etc/passwd
डेटाबेस के अलावा कहीं और संग्रहीत पासवर्ड हैं , तो उन्हें इस तरह से संग्रहीत किया जा सकता है जो इसे अनुमति देता है। htpasswd
फ़ाइलों में सामान्य रूप से एन्क्रिप्ट किए गए पासवर्ड हो सकते हैं, और अन्य एप्लिकेशन विभिन्न (आमतौर पर खराब) कारणों से कमजोर हैश या सादे पाठ पासवर्ड संग्रहीत कर सकते हैं।
इसके अलावा, उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइलों में विभिन्न कारणों से अनएन्क्रिप्टेड पासवर्ड या कमजोर रूप से संरक्षित पासवर्ड शामिल हो सकते हैं - किसी अन्य सेवा से सामग्री हथियाने .netrc
, या साधारण स्वचालित चीजों में पासवर्ड शामिल हो सकते हैं।
यदि पासवर्ड पुराने, कमजोर एल्गोरिथम (3DES, MD5) के साथ हैशेड या एन्क्रिप्ट किए गए हैं, तो यह उचित रूप से कुशलतापूर्वक / सस्ते में काम करना संभव होगा कि पासवर्ड क्या था - केवल परिवर्तन को उलटने के बजाय डेटा पर हमला करने के माध्यम से। (उदा: http://project-rainbowcrack.com/ या http://www.openwall.com/john/ जैसी चीजें )
चूंकि आप रूट हैं, इसलिए उपयोगकर्ता के पासवर्ड को किसी अन्य स्तर पर हमला करना भी संभव है - लॉगिन बाइनरी, या सुडो, या पीएएम का हिस्सा, आदि, कुछ ऐसा के साथ जो पासवर्ड दर्ज करने पर कब्जा कर लेगा।
तो, विशिष्ट, नहीं, लेकिन सामान्य रूप से रूट एक्सेस में विभिन्न साइड-चैनल के माध्यम से उपयोगकर्ताओं के विवरण प्राप्त करना आसान हो जाता है।
यहाँ कुछ अन्य उत्तरों के विपरीत, मैं कहूँगा कि सरल उत्तर, यह और कई अन्य प्रश्न जो "यदि आपके पास रूट हैं" के साथ समाप्त होते हैं।
असल में, रूट मशीन पर कुछ भी कर सकता है जो सिस्टम खुद कर सकता है। सिस्टम आपके पासवर्ड को स्वीकार कर सकता है, इसलिए रूट पर्याप्त प्रयास के साथ आपका पासवर्ड, या आपकी खुद की जगह स्वीकार कर सकता है। इससे भी महत्वपूर्ण बात, वह केवल आपका पासवर्ड बदल सकता है, या आप से मिल सकता है।
विशेष रूप से, पासवर्ड आमतौर पर एन्क्रिप्ट किए जाते हैं। यह आमतौर पर तथाकथित "वन-वे" एल्गोरिदम का कुछ प्रकार है, जो एक नंबर (हैश) उत्पन्न करता है, जिसका उपयोग पासवर्ड की जांच करने के लिए किया जा सकता है, लेकिन आम तौर पर नंबर को उलटने और पासवर्ड को फिर से प्राप्त करने के लिए नहीं। तो, यह किसी के पासवर्ड प्राप्त करने के लिए केवल एक फ़ाइल पढ़ने की बात नहीं है।
उस ने कहा, आप उनके शेल इतिहास और लॉगिन इतिहास को पढ़ सकते हैं, जहां उन्होंने किसी बिंदु पर अपने उपयोगकर्ता नाम के बजाय अपना पासवर्ड टाइप किया है, या पासवर्ड प्रॉम्प्ट के बजाय शेल में टाइप किया है। उस स्थिति में, यह सादे पाठ होगा। यह टेक्स्ट-आधारित टर्मिनलों पर अशांतिपूर्ण रूप से आम है, कोई अच्छा समाधान नहीं है जिसके बारे में मुझे पता है।
हालांकि, यहां तक कि उस मुद्दे को अलग करते हुए, "वन-वे" एन्क्रिप्शन वास्तव में एक तरीका नहीं है। आस-पास बहुत सारे उपकरण हैं जो पासफ़्रेज़ के कई संयोजनों से गुजरेंगे, उन्हें एक ही तरह की प्रक्रिया के साथ एन्क्रिप्ट करना, जब तक कि आपका एक मैच न हो जाए। वे तब पासवर्ड जानते हैं जो एक्सेस प्राप्त करेगा (हालांकि रूट के रूप में, वे पहले से ही, THAT मशीन पर पहुंच सकते हैं)।
इससे भी बदतर, इंद्रधनुष सारणी हैं, जो उपरोक्त प्रक्रिया के लिए पूर्वप्रकाशित उत्तर हैं: लोगों ने पहले से ही मूल पासवर्ड उत्पन्न किया है जो दिए गए एन्क्रिप्टेड पासवर्ड से आता है। इनका उपयोग करते हुए, यह एक सरल खोज है - समय-समय पर क्रैकिंग प्रयासों की आवश्यकता नहीं है।
फिर से, रूट-लेवल एक्सेस प्रोटेक्ट की चीज है। उस समझौता के साथ, पूरी मशीन, और उस पर सब कुछ समझौता किया जाता है। अपने सभी उपयोगकर्ताओं को सूचित करने सहित, यह शुरू करने का समय आ गया है कि आपके व्यवसाय को अब उनकी गोपनीयता की रक्षा के लिए भरोसा नहीं किया जा सकता है। और, हां, इसका मतलब यह हो सकता है कि व्यापार से बाहर जाना।
यदि आपके पास है root
तो आप पासवर्ड क्रैकर के खिलाफ /etc/shadow
(स्थानीय पासवर्ड और एलडीएपी या केर्बरोस आदि नहीं) चला सकते हैं। यदि वे अच्छे पासवर्ड चुनते हैं तो यह प्रभावी नहीं हो सकता है और मजबूत पासवर्ड हैशिंग का उपयोग करने के लिए सिस्टम को कॉन्फ़िगर किया गया है। लेकिन सिस्टम पासवर्ड को प्लेनटेक्स्ट में संग्रहीत नहीं किया जाता है; पासवर्ड सीधे भी उपलब्ध नहीं हैं root
।
सभी पासवर्ड /etc/shadow
फ़ाइल में संग्रहीत हैं । आप रूट एक्सेस का उपयोग करके इस फ़ाइल को खोल सकते हैं और hash value
प्रत्येक उपयोगकर्ता (यहां तक कि रूट उपयोगकर्ता) के लिए इन पासवर्डों को देख सकते हैं ।
जब तक आपके पास किसी भी तरह का पासवर्ड डिक्रिप्ट करने वाला सॉफ्टवेयर नहीं है, आप इन हैश वैल्यू को सामान्य टेक्स्ट में नहीं बदल सकते।
लेकिन फिर भी यदि आपके पास रूट उपयोगकर्ता तक पहुँच है, तो आप निम्न कमांड का उपयोग करके किसी भी सामान्य उपयोगकर्ता के पासवर्ड को बदल सकते हैं और उनके खाते तक पहुँच सकते हैं।
root@localhost$ passwd pradeep
यह आपसे नए पासवार्ड के लिए पूछेगा जिसे आप उपयोगकर्ता के लिए सेट करना चाहते हैं pradeep
। इस तरह आप प्रदीप के लिए पासवार्ड बदल सकते हैं।
अब आप उसके खाते से पहुंच सकते हैं:
root@localhost$ su pradeep
इसका परिणाम प्रदीप उपयोगकर्ता पर होगा और आपको इस तरह एक टर्मिनल मिलेगा:
pradeep@localhost$