यदि मेरे पास sudo/root विशेषाधिकार हैं, तो क्या मैं कुछ उपयोगकर्ता के रूप में sddm में उनका पासवर्ड जाने बिना लॉगिन कर सकता हूँ?

image

यदि मैं रूट हूं, तो मैं किसी भी उपयोगकर्ता का पासवर्ड जाने बिना उसके ग्राफ़िकल सत्र को अनलॉक कर सकता हूं, बस लॉगिनसीटीएल अनलॉक-सेशन <सत्र> का उपयोग कर सकता हूं।

लेकिन क्या मैं एक उपयोगकर्ता के रूप में उनका पासवर्ड जाने बिना किसी तरह ग्राफिकल सत्र शुरू कर सकता हूं? मैं /etc/shadow का बैकअप ले सकता हूं, पासवर्ड बदल सकता हूं, लॉगिन कर सकता हूं, फिर पुनर्स्थापित कर सकता हूं, लेकिन यह बहुत बोझिल है, कोई बेहतर तरीका होना चाहिए... टर्मिनल/कंसोल के लिए, मेरे पास अच्छा पुराना sudo -i -u है, जिसकी आवश्यकता नहीं है, शायद मैं ग्राफिकल वातावरण के लिए भी ऐसा कुछ कर सकता हूं?

यह मेरे उपयोग के मामले में पूरी तरह से वैध है। यदि यह मायने रखता है तो यह sddm और KDE/प्लाज्मा डेस्कटॉप है।

यदि आपका sddm PAM का उपयोग करता है तो आप /etc/pam.d/sddm को संशोधित कर सकते हैं और इसे किसी भी उपयोगकर्ता के लिए अपना मास्टर पासवर्ड स्वीकार करवा सकते हैं।

br>हम एक सहायक स्क्रिप्ट बनाएंगे जो एक अलग फ़ाइल में पहली पंक्ति के रूप में शब्दशः संग्रहीत आपके मास्टर पासवर्ड से इसकी स्टडिन की पहली पंक्ति की तुलना करेगी।

उपरोक्त सटीक कोड को एक शेल में निष्पादित करें, यह आवश्यक फ़ाइलें बनाएगा. अगला sudoedit /etc/security/master_password और M4st3rPSSwrd को अपने मास्टर पासवर्ड से बदलें। (यदि आपके मास्टर पासवर्ड में 'कोड' है तो कोड को निष्पादित करने से पहले बदलने से चीजें खराब हो सकती हैं।) फ़ाइल में मास्टर पासवर्ड को एक न्यूलाइन कैरेक्टर के साथ ठीक से समाप्त किया जाएगा।

sudoedit /etc/pam.d/sddm और रखें किसी भी मौजूदा प्रमाणीकरण पंक्ति से पहले निम्नलिखित पंक्तियाँ:

यह पंक्ति sddm को हमारे मास्टर_पासवर्ड_चेक को चलाने और इसके माध्यम से टाइप किए गए पासवर्ड को पास करने में मदद करेगी stdin. स्क्रिप्ट इसकी तुलना मास्टर पासवर्ड से करेगी और यदि वे मेल खाते हैं तो तुरंत पहुंच की अनुमति देगी। लक्ष्य उपयोगकर्ता के नियमित पासवर्ड का उपयोग करके लॉग इन करने की क्षमता अप्रभावित है।

अब से आप अपना मास्टर पासवर्ड प्रदान करके किसी भी उपयोगकर्ता के रूप में sddm में लॉग इन कर सकते हैं।

/usr/local/bin बनाएं /सही स्वामित्व और अनुमतियों के साथ स्वयं-पासवर्ड का उपयोग करें। निम्नलिखित शेल कोड यह करेगा:

हां, फ़ाइल सभी के लिए निष्पादन योग्य होगी। स्क्रिप्ट अपने आप में पूरी तरह से हानिरहित है। एक उपयोगकर्ता की तरह दूसरे उपयोगकर्ता के रूप में लॉग इन करने की इसकी क्षमता PAM के साथ इसके इंटरेक्शन से आती है, जब इसे PAM के अंदर से चलाया जाता है।

अगला sudoedit /etc/pam.d/sddm और निम्नलिखित पंक्तियों को किसी भी मौजूदा से पहले रखें auth ⦠पंक्ति:

फिर sudo visudo चलाएँ और sudoers कॉन्फ़िगर करें:

समाधान आवश्यकता के साथ काम नहीं करेगा। जब संदेह हो, तो डिफ़ॉल्ट !requiretty का उपयोग करें।

समाधान सुडोस को स्थापित करता है। बाहरी सूडो को रूट द्वारा आंतरिक सूडो को उस उपयोगकर्ता के रूप में चलाने के लिए चलाया जाएगा जिसकी साख आप उपयोग करना चाहते हैं। यह महत्वपूर्ण है कि बाहरी सूडो पासवर्ड न मांगे। सौभाग्य से यह मामला है: रूट स्वतंत्र रूप से सूडो का उपयोग कर सकता है और मुझे नहीं लगता कि इसे तोड़ने का कोई तरीका भी है। यूजर-ओन-पासवर्ड नो-ऑप को यूजरबी के रूप में उपयोग करें तो हमारी स्क्रिप्ट पासवर्ड फ़ील्ड में यूजरए:पासवर्डए के रूप में प्रदान किए गए यूजरए के क्रेडेंशियल के साथ यूजरबी के रूप में एसडीडीएम में लॉगिंग को अधिकृत करेगी। अब sudoers सेट करना आपका काम है, इसलिए केवल सही उपयोगकर्ता ही स्क्रिप्ट को सही उपयोगकर्ता के रूप में चला सकते हैं। Sudoers फ़ाइल में मूल पंक्तियाँ इस प्रकार होंगी:

इसके लिए NOPASSWD का उपयोग करने से कोई भी व्यक्ति केवल यह दावा करके कि वे userA हैं (और किसी भी पासवर्ड का उपयोग करके) sddm में userB के रूप में लॉग इन कर सकेंगे। मुद्दा यह है कि आप अभी तक लॉग इन नहीं हैं, विशेष रूप से उपयोगकर्ता ए के रूप में लॉग इन नहीं हैं और उपयोगकर्ता ए के पासवर्ड के अलावा यह सत्यापित करने का कोई साधन नहीं है कि आप उपयोगकर्ता ए हैं। Sddm पासवर्ड फ़ील्ड से userA:whatever को हमारी स्क्रिप्ट में पास कर देगा और NOPASSWD के मामले में यह हमेशा सफल होगा।

ध्यान रखें कि अंतिम मिलान का उपयोग किया जाता है। जैसे आप उपरोक्त उदाहरण पंक्ति का उपयोग यूज़-ओन-पासवर्ड और जेनेरिक यूजरए ALL=(userB) NOPASSWD: ALL अन्य सभी चीज़ों के लिए करना चाह सकते हैं; तो आप उदाहरण लाइन को जेनेरिक लाइन के बाद रखेंगे, अन्यथा जेनेरिक लाइन से NOPASSWD sddm पर लागू होगा। मुझे लगता है कि आपको यूज़-ओन-पासवर्ड की अनुमति देने वाली सभी पंक्तियों को सुडोअर्स के बिल्कुल अंत में रखना चाहिए (यहां तक ​​कि @includedir इत्यादि के बाद भी)।

यह भी ध्यान रखें कि आपको यूज़-ओन-पासवर्ड का उल्लेख करने वाली विशिष्ट पंक्तियों की आवश्यकता नहीं है। काम करने के समाधान के लिए पासवर्ड. एक सामान्य लाइन userC ALL=(userD) ALL userC को हमारी तरह sddm में लॉग इन करने की अनुमति देगी

Ask AI
#1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 #22 #23 #24 #25 #26 #27 #28 #29 #30 #31 #32 #33 #34 #35 #36 #37 #38 #39 #40 #41 #42 #43 #44 #45 #46 #47 #48 #49 #50 #51 #52 #53 #54 #55 #56 #57 #58 #59 #60 #61 #62 #63 #64 #65 #66 #67 #68 #69 #70