PAM - आवश्यक और पर्याप्त नियंत्रण ध्वज


14

मैं पीएएम का अध्ययन कर रहा हूं, और मैं नियंत्रण झंडे के कुछ संयोजन के अर्थ के बारे में थोड़ा अनाड़ी हूं। Red Hat प्रलेखन से हमारे पास:


  • इस तरह के PAM की आवश्यक विफलता अंततः PAM-API रिटर्निंग विफलता की ओर ले जाएगी, लेकिन शेष स्टैक किए गए मॉड्यूल (इस सेवा और प्रकार के लिए) के बाद ही लागू किया गया है

  • आवश्यक की
    तरह अपेक्षित, हालांकि, इस मामले में कि ऐसा मॉड्यूल विफलता देता है, नियंत्रण सीधे आवेदन पर वापस आ जाता है।


  • इस तरह के एक मॉड्यूल की पर्याप्त सफलता मॉड्यूल के ढेर की प्रमाणीकरण आवश्यकताओं को संतुष्ट करने के लिए पर्याप्त है (यदि एक पूर्व आवश्यक मॉड्यूल विफल हो गया है तो इस की सफलता को अनदेखा कर दिया जाता है)। इस मॉड्यूल की विफलता को उस एप्लिकेशन को संतुष्ट करने के लिए घातक नहीं माना जाता है जो इस प्रकार सफल हुई है। यदि मॉड्यूल सफल होता है तो PAM फ्रेमवर्क किसी अन्य मॉड्यूल को आजमाए बिना तुरंत आवेदन में सफलता प्रदान करता है।

इसलिए, मेरी समझ में, यदि कोई मॉड्यूल requisiteविफल हो जाता है , तो मॉड्यूल के पूरे ढेर को पार्स नहीं किया जाएगा, और नियंत्रण तुरंत आवेदन पर वापस आ जाएगा। यदि एक मॉड्यूल sufficientसफल होता है, तो बाकी मॉड्यूल ढेर नहीं किए जाएंगे और नियंत्रण तुरंत आवेदन पर वापस आ जाएगा। यदि एक मॉड्यूल requiredविफल हो जाता है, तो पूरे स्टैक को पार्स किया जाएगा।

अब, मैं समझ नहीं पा रहा हूं कि एक निश्चित मॉड्यूल के requiredविफल होने और दूसरे मॉड्यूल के sufficientसफल होने पर क्या व्यवहार होगा ।

जवाबों:


11

PAM क्रम में स्टैक पर वस्तुओं के माध्यम से आगे बढ़ता है। यह केवल याद रखता है कि यह किस अवस्था में है (सफलता से वंचित, सफलता के अर्थ के साथ अब तक की सफलता), न कि यह उस स्थिति तक कैसे पहुंचा।

यदि कोई आइटम sufficientसफल हुआ, तो PAM लाइब्रेरी उस स्टैक को प्रोसेस करना बंद कर देती है। ऐसा होता है कि पिछले requiredआइटम थे या नहीं। इस बिंदु पर, पीएएम वर्तमान स्थिति लौटाता है: यदि कोई पिछली requiredवस्तु विफल नहीं हुई, तो सफलता ।

इसी तरह, यदि कोई आइटम requisiteविफल हो जाता है, तो PAM लाइब्रेरी प्रसंस्करण बंद कर देती है और विफलता लौटा देती है। उस बिंदु पर, यह अप्रासंगिक है कि क्या पिछला requiredआइटम विफल हुआ था।

दूसरे शब्दों में, requiredजरूरी नहीं कि पूरे स्टैक को संसाधित किया जाए। इसका सिर्फ मतलब है कि चलते रहना।


लेकिन यदि कोई requiredवस्तु विफल हो गई, PAMतो स्टैक से गुजरने की आवश्यकता क्यों है ? अगर यह अंत में वैसे भी विफल हो जाएगा?
मोहम्मद नौरेलिन

1
@MohammedNoureldin यदि कोई लॉगिन प्रयास विफल हो जाता है, तो भी कुछ चीजें अवश्य की जानी चाहिए, जैसे कि लॉग-इन करना, ब्रूट-फोर्स प्रयासों के खिलाफ टाइमआउट जोड़ना, आदि। आमतौर पर सिस्टम विफलता के सटीक कारण को प्रकट नहीं करता है, जैसे कि अगर ऊपर देख रहा है, तो उपयोगकर्ता नाम विफल रहता है फिर भी उपयोगकर्ता को पासवर्ड के लिए संकेत दिया जाता है।
गिल्स एसओ- बुराई को रोकना '

आदेश वह क्रम है जिसमें वे विन्यास में सूचीबद्ध हैं?
ऑरेंजडॉग

@ ऑरेंजडॉग हां। पहली पंक्ति पर सूचीबद्ध मॉड्यूल को क्रियान्वित किया जाता है, फिर दूसरी पंक्ति को निष्पादित किया जाता है (या पहली पंक्ति के परिणाम के आधार पर छोड़ दिया जाता है), आदि
गाइल्स का SO- रोकना बुराई है

1

मेरी राय में, requiredएक मॉड्यूल सफल होने के लिए एक नियंत्रण ध्वज को हमेशा सफल होना चाहिए।

sufficientयदि यह विफल रहता है तो एक ध्वजांकित मॉड्यूल को अनदेखा किया जाता है। यदि यह सफल है और requiredऊपर का कोई ध्वजांकित मॉड्यूल विफल नहीं हुआ है, तो उसी प्रकार के किसी अन्य मॉड्यूल की जाँच नहीं की जानी चाहिए और मॉड्यूल को सफल माना जाता है। इसलिए मूल रूप से, requiredध्वज में ध्वज की तुलना में उच्च प्राथमिकता होती है, sufficientलेकिन बाद वाले के पास बाकी लोगों की जांच करने से रोकने की क्षमता होती है यदि पिछले requiredवाले सफल हुए।

उदाहरण:

1 auth       required     /lib/security/pam_nologin.so
2 auth       required     /lib/security/pam_securetty.so
3 auth       required     /lib/security/pam_env.so
4 auth       sufficient   /lib/security/pam_rhosts_auth.so
5 auth       required     /lib/security/pam_stack.so service=system-auth

यदि लाइनें 1, 2, 3 और 4 सफल हैं, तो लाइन 5 को छोड़ दिया जा सकता है और मॉड्यूल authसफल है। यदि पंक्ति 4 सफल नहीं है तो इसे अनदेखा कर दिया जाता है और पंक्ति 5 की जाँच की जाती है। यदि 1, 2, 3 में से कोई भी रेखा विफल हो गई है, तो पंक्ति 4 को ध्यान में नहीं रखा गया है।


1
मुझे लगता है कि उनका सवाल है कि क्या होता है अगर 1 असफल और 2-4 सफल हो। ५ को चलता है? अगर 1 सफल हो गया, तो 5 नहीं चलाया जाएगा। या दूसरे शब्दों में, क्या "पर्याप्त सफल होने के बाद बंद हो जाता है" लागू होता है यदि पिछले आवश्यक मॉड्यूल विफल हो गया?
cjm

नहीं, इस तरह के संयोजन के साथ ओटर मॉड्यूल विफल होगा।
dsmsk80

सवाल यह नहीं है कि क्या प्राधिकरण विफल हो जाएगा। यह। सवाल यह है कि क्या मॉड्यूल 5 आवेदन से पहले असफलता की सूचना देगा।
cjm
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.