वास्तविक और प्रभावी उपयोगकर्ता आईडी कैसे काम करती हैं?


13

जब कोई सामान्य उपयोगकर्ता पासवार्ड फ़ाइल में बदलाव करना चाहता है, तो उपयोगकर्ता को सेटयूड द्वारा प्रभावी उपयोगकर्ता पहुँच प्रदान की जाएगी। उपयोगकर्ता अस्थायी रूप से रूट हो जाता है और पासवार्ड को संपादित कर सकता है।

हालाँकि आप केवल अपना पासवर्ड सही संपादित कर सकते हैं, और हर कोई नहीं? हालाँकि आपकी प्रभावी उपयोगकर्ता पहुँच जड़ है। तो कैसे आप अपने पास अन्य पासवर्ड बदलने की अनुमति नहीं है?

जब आप setuid के साथ एक प्रोग्राम चलाते हैं, तो इसका वास्तव में क्या मतलब है जब प्रभावी उपयोगकर्ता रूट होता है, लेकिन वास्तविक उपयोगकर्ता आईडी अभी भी आपका नाम है?

जवाबों:


13

आप अन्य पासवर्ड नहीं बदल सकते क्योंकि प्रोग्राम आपको अनुमति नहीं देगा। प्रोग्राम के पास किसी भी पासवर्ड को बदलने के लिए सिस्टम अनुमतियाँ हैं, क्योंकि वह इस रूप में चल रहा है root, लेकिन प्रोग्राम को विशेष रूप से डिज़ाइन किया गया है ताकि उपयोगकर्ता उन अनुमतियों का उपयोग करने के लिए इसे प्राप्त करने का कोई भी तरीका न दे सके।

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


इसलिए मैं यूआईडी सेट करने के लिए यूआईडी को 0 (सेट्रेयुड का उपयोग करके) खोलता हूं, ताकि प्रभावी यूआईडी जड़ हो जाए लेकिन असली यूआईडी अभी भी है। चूंकि मुझे नहीं लगता कि शेल में विशेष रूप से कुछ बनाया गया है जो मुझे रोकते हैं, क्या इसका मतलब है कि मुझे पूरी प्रणाली तक पहुंच प्राप्त है?
स्टारकॉक

मैं स्टैक स्मैशिंग अटैक तकनीक के संदर्भ में सोच रहा था। जहां दुर्भावनापूर्ण हैकर सुपरसुअर स्तर के साथ एक खोल खोलता है।
स्टारकॉक

@ स्टारक्रॉन: हां। वास्तव में, हो सकता है कि हमलों का प्रदर्शन करके यह दिखाया जाए कि उस हमले का उपयोग करने के लिए एक सेटिड रूट शेल कैसे बनाया जाए।
डेविड श्वार्ट्ज

2

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


0

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

एक अन्य तकनीक में महत्वपूर्ण फाइलों पर एक अपरिवर्तनीय बिट है जो एक सेट को रूट उपयोगकर्ता (एकल उपयोगकर्ता मोड के अलावा) द्वारा भी संशोधित नहीं किया जा सकता है

रूट के रूप में आप उपयोगकर्ताओं को पासवर्ड के बिना अपने सिस्टम पर लॉग इन करने के लिए आमंत्रित कर सकते हैं और किसी भी उपयोगकर्ता के रूप में दिखाई दे सकते हैं लेकिन सामान्य विशेषाधिकार प्राप्त प्रक्रियाएं ऐसा होने से रोकने के लिए बहुत प्रयास करती हैं।

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


0

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

क्योंकि आप अपनी वास्तविक उपयोगकर्ता आईडी को बदल नहीं सकते हैं, यहां तक ​​कि एक सेट-यूआईडी प्रोग्राम को कॉल करके भी, प्रोग्राम इसे सुरक्षा को लागू करने के लिए उपयोग कर सकता है। ऑपरेटिंग सिस्टम सेट uid रूट प्रोग्राम के लिए सुरक्षा को त्यागता है।

नोट: सेट यूआईडी रूट प्रोग्राम वास्तविक उपयोगकर्ता आईडी को बदल सकता है (लेकिन यह इस उपयोग-मामले में उपयोग का नहीं है)।

चेतावनी: यूआईडी रूट को हानिकारक (आदर्श से बहुत कम) माना जाता है। हमें इन दिनों क्षमताओं का उपयोग करना चाहिए (देखें कि ग्नू / लिनक्स और http://man7.org/linux/man-pages/man7/capabilities.7.html पर फ़ाइल अनुमतियाँ सेट करने के विभिन्न तरीके क्या हैं )

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