600 / के लिए फ़ाइल अनुमति / आदि / छाया के लिए क्यों है?


25

/etc/shadow600 की अनुमतियाँ हैं, जिसका अर्थ है कि यह रूट को छोड़कर किसी के लिए भी पठनीय नहीं है।

हालाँकि, चूंकि इसके अंदर सभी पासवर्ड स्पष्ट पाठ में संग्रहीत नहीं हैं, लेकिन हैश के रूप में (जिसका अर्थ है कि हैश से मूल पासवर्ड की गणना करना असंभव है), यह सभी के द्वारा क्यों नहीं पढ़ा जा सकता है?


क्या आप सुनिश्चित हैं कि अनुमतियाँ /etc/shadowहैं 600?
edwinksl

4
यदि आपके Stackoverflow खाते का पासवर्ड हैशेड है, तो क्या आप अपना हैशेड पासवर्ड दूसरों को दिखाने के लिए तैयार हैं?
जीयन

5
@ByteCommander। कभी-कभी मैं संपादन को बढ़ाने का एक तरीका चाहता हूं।
TRIG

जवाबों:


60

ऑफलाइन ब्रूट-फोर्स हमलों को रोकने के लिए।

भले ही आप एक हैश को उल्टा नहीं कर सकते, फिर भी आप मैच देखने तक हर संभव पासवर्ड की कोशिश कर सकते हैं, और आप अच्छे हार्डवेयर और फ़ाइल तक स्थानीय पहुंच के साथ प्रति सेकंड लाखों प्रयास कर सकते हैं।

यदि फ़ाइल की 644अनुमति थी , तो जो कोई भी आपके सिस्टम में लॉग इन करता है, यहां तक ​​कि अतिथि सत्र में, वह आपके कंप्यूटर की फ़ाइल बंद कर सकता है (चाहे USB स्टिक से या दूरस्थ रूप से scp) और ऑफ़लाइन ब्रूट-फ़ोर्स हमले का प्रयास करें , आपके कंप्यूटर पर इसके किसी भी सबूत को छोड़ने के बिना


ध्यान दें कि Ubuntu पर अनुमतियाँ वास्तव में हैं 640, नहीं 600:

$ ls -l /etc/shadow
-rw-r----- 1 root shadow 1239 Jun 25 04:35 /etc/shadow

यह बहुत मायने नहीं रखता है, क्योंकि अभी भी दूसरों के लिए कोई अनुमति नहीं है, और, डिफ़ॉल्ट रूप से, कोई भी shadowसमूह में नहीं है।


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

काम /etc/passwdकरने 640या 600न करने की अनुमति बदलना , क्योंकि /etc/passwdसामान्य उपयोगकर्ता के रूप में पढ़ने में सक्षम होने के लिए कई वैध कारण हैं (उपयोगकर्ता नाम में यूआईडी को परिवर्तित करना, उपयोगकर्ता का पूरा नाम, फोन नंबर आदि प्राप्त करना), इसलिए हैश को स्थानांतरित कर दिया गया /etc/shadow। जिसे 640अनुमति दी गई थी। एक xमें एक उपयोगकर्ता के लिए पासवर्ड हैश क्षेत्र के स्थान पर /etc/passwdप्रयोग किया जाता है संकेत मिलता है कि यह है कि उपयोगकर्ता के लिए हैश में संग्रहीत किया जाता /etc/shadowबजाय।


1
फाइल की कॉपी पर अच्छा कॉल!
रिनजविंड

1
और मुझे प्रतिनिधि की आवश्यकता नहीं है ;-) संपादित करें: हम्म उसने इसे मेरे पर सेट किया: P क्षमा करें: D edit2 और अब यह फिर से वापस आ गया है। एह: डी
रिनविंड

6
अंतिम बार मैंने जांच की थी कि आप हैशेड पासवर्ड वापस / etc / passwd में डाल सकते हैं और / etc / shadow से लाइन हटा सकते हैं और लॉग इन करने में सक्षम होने की उम्मीद करते हैं / etc / shadow मौजूद है ताकि इसे दिए गए कारण के लिए 600 पर सेट किया जा सके। इस जवाब में।
जोशुआ

8
यह ध्यान देने योग्य है कि / etc / passwd की अनुमतियाँ 644 हैं। मेरा मानना ​​है कि ऐतिहासिक रूप से, पासवर्ड हैश यहाँ संग्रहीत किया जाता था। हालाँकि, इस फ़ाइल को 640 में बदलने से सभी प्रकार की संगतता समस्याएँ उत्पन्न हो जाती हैं, इसलिए इसके बजाय पासवर्ड हैश को छाया में ले जाया जाता है और पासवार्ड से हटा दिया जाता है - इससे पासवड में अन्य जानकारी को पढ़ने योग्य बनाए रखा जा सकता है जबकि पासवर्ड हैश को गुप्त रखा जाता है अलग फाइल।
रॉडने

4
@ बीएसडी 4.3 पर बड़े हुए किसी व्यक्ति के रूप में, आप सही हैं। Hashes / etc / passwd में संग्रहीत किए गए थे। वापस जब वैक्स 11/780 कला का राज्य था, तो फ़ाइल में पासवर्ड पर एक क्रूर बल हमला असंभव माना जाता था। शायद अधिक महत्वपूर्ण बात, इंटरनेट [अर्पानेट] एक नींद वाला थोड़ा सा पानी था, और ऐसी चीजों पर शायद ही विचार किया जाता था; कोई ssh- केवल rlogin / telnet नहीं था। पासवर्ड फ़ाइल 644 रखने का मतलब है कि lsयूआईडी से नाम तक का अनुवाद करने के लिए उपयोगिताओं जैसे रूट सेटिड रूट की आवश्यकता नहीं है।
माइक एस

13

वास्तव में, उपयोगकर्ता नाम और पासवर्ड की सार्वजनिक रूप से पठनीय सूची से दूर जाने की अनुमति देने के लिए / etc / छाया बनाया गया था ।

वहां रुको, यह एक छोटा सा इतिहास का सबक होगा, इससे पहले कि हम वास्तविक उत्तर पर पहुंचें। यदि आप इतिहास की परवाह नहीं करते हैं, तो बस थोड़ा नीचे स्क्रॉल करें।

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

फिर भी, लोगों ने महसूस किया कि एक प्रसिद्ध स्थान में एक फ़ाइल में सादे पाठ में पासवर्ड होने से जो कोई भी व्यक्ति लॉग इन कर सकता है वह स्वतंत्र रूप से पढ़ सकता है। तो पासवर्ड हैश में थे, एक अर्थ में। यह पुराने "क्रिप्ट" पासवर्ड हैशिंग तंत्र है, जो लगभग कभी भी आधुनिक प्रणालियों पर उपयोग नहीं किया जाता है, लेकिन अक्सर विरासत के प्रयोजनों के लिए समर्थित होता है।

अपने सिस्टम पर / etc / passwd पर एक नज़र डालें। उस दूसरे क्षेत्र को देखें, जो xहर जगह कहता है? यह प्रश्न में खाते के लिए हैशेड पासवर्ड रखता था।

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

इसे हल करने के लिए दो काम किए गए:

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

वह फ़ाइल / etc / छाया है।

सॉफ़्टवेयर जो / etc / छाया के साथ काम करता है वह आम तौर पर बहुत छोटा, अत्यधिक केंद्रित होता है, और समस्याओं के कारण संभावित रूप से समीक्षा में कुछ अतिरिक्त जांच प्राप्त करता है। यह विशेष अनुमतियों के साथ भी चलता है, जो इसे सामान्य उपयोगकर्ताओं को उस फ़ाइल को देखने में असमर्थ रखते हुए / / / छाया को पढ़ने और संशोधित करने की अनुमति देता है

इसलिए आपके पास यह है: पर / आदि / छाया की अनुमति प्रतिबंधात्मक है (हालांकि, जैसा कि पहले ही बताया गया है, आप राज्य के रूप में काफी प्रतिबंधात्मक नहीं हैं) क्योंकि उस फ़ाइल का पूरा उद्देश्य संवेदनशील डेटा तक पहुंच को प्रतिबंधित करना है।

एक पासवर्ड हैश को मजबूत माना जाता है, लेकिन यदि आपका पासवर्ड इंटरनेट सूचियों के शीर्ष 500 पासवर्डों में है , तो हैश तक पहुंचने वाला कोई भी व्यक्ति पासवर्ड को जल्दी से ढूंढ सकेगा। हैश की रक्षा करना, उस सरल हमले को रोकता है और बार-बार पहले से ही मेजबान पर एक सिस्टम प्रशासक होने या एक विशेषाधिकार वृद्धि हमले के माध्यम से जाने की आवश्यकता के लिए एक साधारण हमले से एक सफल हमले के लिए बार उठाता है। विशेष रूप से एक सही ढंग से प्रशासित बहु-उपयोगकर्ता प्रणाली पर, उन दोनों को एक विश्व-पठनीय फ़ाइल को देखने की तुलना में काफी अधिक कठिन है।


मैं वास्तव में जिस तरह से आप हर चीज़ का वर्णन करते हैं :) (y)
शुभांशु विश्वकर्मा

शब्दावली / व्युत्पत्ति: /etc/shadow"छाया पासवर्ड" नहीं रखता (क्योंकि यह कोई बात नहीं है)। पूरी फाइल की छाया है /etc/passwdलिनक्स शैडो पासवर्ड HOWTO में शब्दावली का उपयोग करने का तरीका देखें : आपकी पासवार्ड फ़ाइल को क्यों छाया दें? । कंप्यूटिंग में "शैडो" शब्द के कुछ अन्य उपयोगों के विपरीत, यह एक छाया प्रति नहीं है , हालांकि (ROM से चलने के बजाय RAM में BIOS कोड को छायांकित करना)। / Etc / passwd में फ़ील्ड एक प्लेसहोल्डर है, जिसमें एक विशेष वर्ण होता है, जिसका अर्थ है "असली पासवर्ड हैश / इन / छाया" है।
पीटर कॉर्ड्स

अच्छा इतिहास लेकिन 1 सेकंड। 1980 के दशक में भी प्रति पासवर्ड शायद ही सीमित था, तब नहीं जब शीर्ष पासवर्ड का उपयोग प्रत्येक व्यक्ति के 1% से अधिक द्वारा किया जाता था।
वारेन ड्यू

1
यदि आप तथ्य, या राय का बयान कर रहे हैं, तो @arrenDew निश्चित नहीं है। क्रिप्ट () में आठ-बाइट पासवर्ड के लिए 12 बिट नमक और 12 + 64 बिट आउटपुट होता है (फिर आमतौर पर बेस 64 एनकोडेड)। सामान्य पासवर्ड के लिए, हां, आप शायद उन पर क्रूर बल द्वारा हमला कर सकते हैं, लेकिन अगर किसी पासवर्ड की जांच में एक सेकंड का समय लगता है , तो यह इतना बल नहीं देता है कि वह क्रूर बल द्वारा क्रैक कर सके। एक भी पासवर्ड के लिए एक नमकीन टेबल को प्री-कॉम्पट्यूट करना एक एन्क्रिप्शन प्रति सेकंड की दर से एक घंटे के आदेश पर ले जाएगा, इसके अलावा आपको सीमित भंडारण (40-80 एमबी उन दिनों में बहुत कुछ) के साथ संघर्ष करना था।
बजे एक CVn

@PeterCordes अच्छी बात है। मैं उस मार्ग को हटा रहा हूं क्योंकि यह वास्तव में ओपी के प्रश्न का उत्तर देने के लिए प्रासंगिक नहीं है।
बजे एक CVn

10

/ Etc / छाया फ़ाइल के लिए अनुमति 600 क्यों दी जाती है?

किसने कहा तुमसे ये?

$ls -l /etc/shadow
-rw-r----- 1 root shadow 1407 mei 18 10:05 /etc/shadow
  • यह 640 है।

सरल उत्तर: लिनक्स में अनुमतियाँ गंभीर हैं। "दूसरों" के साथ कुछ भी करने का कोई कारण नहीं है /etc/shadow। और इसे लिखने के लिए समूह "छाया" का कोई कारण नहीं है। और निष्पादन आदेश से बाहर है।

हालाँकि, चूंकि इसके अंदर सभी पासवर्ड स्पष्ट पाठ में संग्रहीत नहीं हैं, लेकिन हैश के रूप में (जिसका अर्थ है कि हैश से मूल पासवर्ड की गणना करना असंभव है), यह सभी के द्वारा क्यों नहीं पढ़ा जा सकता है?

क्योंकि ऐसा करने का एक भी कारण नहीं है।

हैगस वन-वे हैं। किसी को पढ़ी गई पहुँच प्रदान करना उसके लिए इस एक तरफ़ा को गाली देने के लिए एक स्क्रिप्ट का उपयोग करना संभव बनाता है: किसी भी ऐसे शब्द को सूचीबद्ध करें जिसकी आप कल्पना कर सकते हैं और हैश बना सकते हैं। कुछ बिंदु पर यह पासवर्ड से मेल खा सकता है। हालांकि इसमें भी थोड़ा समय लग सकता है।

यह उत्तर दिलचस्प है और इसका क्रूरता पर कुछ अनुमान है।


640 सामान्य उपयोगकर्ता के लिए है ?? समूह उपयोगकर्ता छाया फ़ाइल पढ़ सकते हैं ??
शुभांशु विश्वकर्मा

माफ़ कीजिये? फ़ाइल 640 है। इसलिए, उपयोगकर्ता "रूट" के लिए लिखें और समूह "छाया" के लिए पढ़ें। "छाया" इस विशिष्ट उद्देश्य के लिए एक विशेषाधिकार प्राप्त प्रणाली बनाया समूह है।
रिन्जविंड

2

महत्वपूर्ण पृष्ठभूमि: /etc/shadowकेवल पासवर्ड हैश को छिपाए रखने के उद्देश्य से मौजूद है। यू यूनिक्स के शुरुआती दिनों में, पासवर्ड हैश में संग्रहीत किया गया था /etc/passwd। जैसे-जैसे कंप्यूटर अधिक शक्तिशाली होते गए, नेटवर्क कनेक्शन अधिक लगातार और सुरक्षा अधिक परिष्कृत होते गए, लोगों ने महसूस किया कि पासवर्ड हैश शब्द को पढ़ने योग्य रखने से परेशानी हो रही है। (मैं कारनामों का विवरण नहीं दूंगा; उस बारे में पहले से ही काफी अच्छे जवाब हैं।)

लेकिन /etc/passwdइसे पढ़ा-संरक्षित नहीं किया जा सकता है: इसका उपयोग सभी प्रकार के कार्यक्रमों द्वारा उपयोगकर्ता नाम के लिए संख्यात्मक उपयोगकर्ता आईडी को मैप करने के लिए किया जाता है, और होम डायरेक्टरी, डिफ़ॉल्ट शेल, उपयोगकर्ता का पूरा नाम (और कार्यालय नंबर आदि - चेक आउट man finger) देखने के लिए किया जाता है। । तो संवेदनशील हिस्सा, पासवर्ड हैश, को स्थानांतरित कर दिया गया था /etc/shadow, और बाकी जैसा था वैसा ही रहा। इसीलिए /etc/passwd, नाम से घृणा करें, (हैशेड ) पासवर्ड को छोड़कर सब कुछ शामिल है ।


मेरे प्रश्न पर आपके उत्तर के लिए धन्यवाद, अब मुझे / etc / passwd और / etc / छाया फ़ाइल का पूरा विचार मिल गया।
शुभांशु विश्वकर्मा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.