साधारण उपयोगकर्ता पढ़ने / / पास करने में सक्षम हैं, क्या यह एक सुरक्षा छेद है?


19
ls -l /etc/passwd

देता है

$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd

तो एक साधारण उपयोगकर्ता फ़ाइल पढ़ सकता है। क्या यह सुरक्षा छेद है?

जवाबों:


49

वास्तविक पासवर्ड हैश में संग्रहीत किया जाता है /etc/shadow, जो नियमित उपयोगकर्ताओं द्वारा पढ़ने योग्य नहीं है। /etc/passwdउपयोगकर्ता आईडी और गोले के बारे में अन्य जानकारी रखता है जो सिस्टम के कार्य करने के लिए सभी उपयोगकर्ताओं द्वारा पठनीय होनी चाहिए।


3
वास्तव में नहीं - ऐतिहासिक रूप से पासवर्ड / etc / passwd में रखे गए थे - लेकिन इसने brute-force को सीधा-सीधा मिलान किया - इसलिए pam_unix और समान के साथ / etc / shadon का उपयोग करने वाले आधुनिक सिस्टम।
सिम्बियन

4
आधुनिक लिनक्स का उपयोग करता है /etc/shadow। बीएसडी का उपयोग करते हैं /etc/master.passwd। सोलारिस का उपयोग करता है /etc/security/passwd। HP-UX का उपयोग करता है /.secure/etc/passwdऔर सूची जारी होती है ...
क्रिस एस

16

आमतौर पर, हैशेड पासवर्ड को /etc/shadowअधिकांश लिनक्स सिस्टम पर संग्रहीत किया जाता है :

-rw-r----- 1 root shadow 1349 2011-07-03 03:54 /etc/shadow

(वे बीएसडी सिस्टम/etc/master.passwd पर संग्रहीत हैं ।)

प्रमाणन के लिए अभी भी चलने वाले कार्यक्रमों को rootविशेषाधिकारों के साथ चलने की आवश्यकता है :

-rwsr-xr-x 1 root root 42792 2011-02-14 14:13 /usr/bin/passwd

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


13

पासवर्ड /etc/passwdअब वर्षों के लिए संग्रहीत नहीं किया गया है ; नाम विरासत है, स्थानीय उपयोगकर्ता डेटाबेस होने का कार्य रहता है और इसे उस उद्देश्य के लिए सभी द्वारा पठनीय होना चाहिए।


2
विश्व पठनीयता एक डिजाइन निर्णय है, आवश्यकता नहीं
बेन वोइग्ट

@ फिर: यह उचित है कि कोई भी उन फ़ाइलों की पहचान न कर सके जो किसी और की हैं? यह इन दिनों एनएसएस के लिए स्थानीय स्टोर है, इसके नाम के बावजूद पीएएम के लिए नहीं
जाइकोसर

1
यह पूरी तरह से संभव है कि एक विशेषाधिकार प्राप्त सेवा यूआईडी -> नाम का अनुवाद करे, बिना इजाजत के उपयोगकर्ताओं को पूरी उपयोगकर्ता सूची को एन्यूमरेट करने की अनुमति देती है। कुछ OS उस विकल्प को चुनते हैं।
बेन वोइगट

1
@joechip करंट OS एक दूसरे से उपयोगकर्ताओं को छिपाने के लिए डिज़ाइन नहीं किया गया है। सभी उपयोगकर्ताओं को / etc / passwd की तुलना में कई और तरीकों से गणना की जा सकती है। ls -la / Linux पर घर, ls -la / उपयोक्ता MacOS X पर, dir C: \ Users in windows 7, ps -afux in Unix Systems। डिजाइन की पसंद को बदलकर बेन वोइगट को सिर्फ सुरक्षा में बदलाव किए बिना जीवन को कठिन बना दिया।
जादूगर

1
@Magicianeer - सिर्फ विंडोज उदाहरण कहना काफी सही नहीं है। आप उपयोगकर्ताओं को अन्य तरीकों के माध्यम से प्राप्त कर सकते हैं, लेकिन C: \ users फ़ोल्डर को देखकर केवल उन उपयोगकर्ताओं को सूचीबद्ध करेंगे जो लॉग इन कर चुके हैं; कोई सिस्टम उपयोगकर्ता नहीं।
बर्न_हैंड

6

कुछ हद तक यह है, जैसा कि आप उपयोगकर्ताओं की पहचान कर सकते हैं। अतीत में आप उनके पासवर्ड भी उठा सकते थे। हालांकि, वास्तव में एक उपयोगकर्ता का rootनाम क्रैकिंग है जो पासवर्ड फ़ाइल के बिना अच्छी तरह से जाना जाता है।

आम तौर पर दूर तक पासवर्ड फ़ाइल दुनिया पठनीय होने की उपयोगिता जोखिम से बाहर है। यहां तक ​​कि अगर यह दुनिया में पढ़ने योग्य नहीं था, तो एक कामकाजी getent passwdकमांड सुरक्षा लाभ को शून्य कर देगा।

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

अंत में यह संतुलन की बात है, और इस मामले में मैं कहूंगा कि शेष राशि पासवर्ड की दुनिया में पढ़ने योग्य है।

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