जब आप लिनक्स में एक निष्पादन योग्य फ़ाइल चलाते हैं, तो यह आमतौर पर वर्तमान उपयोगकर्ता और समूह आईडी के साथ चलती है। हालांकि, ऐसे समय होते हैं जब आपको उस फ़ाइल को किसी अन्य उपयोगकर्ता (जैसे रूट) के रूप में चलाने की आवश्यकता होती है। अपने उपयोगकर्ता खाते को बदलने के बजाय, आप निष्पादन योग्य को फ़ाइल स्वामी के रूप में चलाने के लिए setuid का उपयोग कर सकते हैं न कि वर्तमान उपयोगकर्ता के रूप में। यहां हम बताएंगे कि कैसे सेटुइड काम करता है और यह कैसे उपयोगकर्ताओं को उन्नत विशेषाधिकारों के साथ निष्पादन योग्य/बाइनरी चलाने की अनुमति देता है।
सेटयूड कैसे काम करता है?
Setuid का अर्थ है निष्पादन पर उपयोगकर्ता आईडी सेट करें . मान लें कि हमारे पास रूट उपयोगकर्ता द्वारा बनाई गई "पहचान" नामक एक निष्पादन योग्य है। जब आप इसे चलाते हैं, तो यह आपकी यूजर आईडी, ग्रुप आईडी और यूजर विशेषाधिकारों के साथ चलेगा। यदि सेट्यूड बिट "पहचान" फ़ाइल पर सेट है, जब आप इसे चलाते हैं, तो इसे रूट उपयोगकर्ता और इसके उपयोगकर्ता विशेषाधिकारों के रूप में चलाया जाएगा।
उदाहरण के तौर पर, हम पहले "पहचान" फ़ाइल के स्वामित्व की जांच कर सकते हैं और सत्यापित कर सकते हैं कि यह मूल उपयोगकर्ता के स्वामित्व में है। अनुमति स्ट्रिंग उपयोगकर्ता, समूह और अन्य के लिए सेट किए गए निष्पादन योग्य (x) बिट्स को भी दिखाती है।
उपयोगकर्ता "जॉन 1" "पहचान" फ़ाइल निष्पादित करता है, जो निष्पादन पर एक प्रक्रिया बन जाती है। जैसा कि प्रक्रिया सूची में दिखाया गया है, प्रक्रिया "जॉन 1" उपयोगकर्ता नाम और उपयोगकर्ता आईडी के तहत बनाई और चलती है।
अगला, एक रूट उपयोगकर्ता के रूप में, हम "पहचान" फ़ाइल का सेटयूड बिट सेट करते हैं:
chmod u+s /usr/bin/identity
"यू" का अर्थ है कि सेटुइड बिट (+s) केवल उपयोगकर्ता के लिए सेट किया जाना चाहिए।
स्वामी के लिए, अनुमति स्ट्रिंग के निष्पादन योग्य भाग में हम देख सकते हैं कि "x" को "s" से बदल दिया गया है। जब भी आप एक निष्पादन योग्य के लिए "एस" का सामना करते हैं, तो इसका मतलब है कि उस पर सेट्यूड बिट सेट किया गया है।
chmod
. का संख्यात्मक रूपांतर जैसा कि नीचे दिखाया गया है, कमांड का भी उपयोग किया जा सकता है।
chmod 4755 /usr/bin/identity
संख्यात्मक अनुमति स्ट्रिंग में 4 का जोड़ सेट्यूड बिट के समावेश को दर्शाता है।
निम्नलिखित तब होता है जब "जॉन 1" "पहचान" फ़ाइल को फिर से निष्पादित करता है। चल रही प्रक्रियाओं की सूची को देखते हुए, अब हम देख सकते हैं कि प्रक्रिया "john1" के बजाय "रूट" उपयोगकर्ता द्वारा बनाई और चलाई जाती है।
सेटयूड बिट का महत्वपूर्ण उपयोग
अधिकांश समय आप विशेषज्ञों से सुनेंगे कि आपको रूट उपयोगकर्ता के रूप में एप्लिकेशन नहीं चलाने चाहिए। हालाँकि, ऐसे उदाहरण हैं जहाँ कुछ फ़ाइलों को रूट अनुमति के साथ चलाने की आवश्यकता होती है। उदाहरण के लिए, passwd
उपयोगिता जो कि Linux सिस्टम पर डिफ़ॉल्ट रूप से संस्थापित होती है, उस पर setuid बिट सेट होता है।
कारण सरल है:उपयोगकर्ता के लिए पासवर्ड जानकारी "/ etc / passwd" और "/ etc / छाया" फ़ाइलों में संग्रहीत होती है, जिसे केवल "रूट" द्वारा संशोधित किया जा सकता है। जब "जॉन 1" अपने लिए पासवर्ड बदलने का प्रयास करता है, तो उसे दो उपरोक्त फाइलों में जानकारी को संशोधित करने की अनुमति की आवश्यकता होगी। passwd
. पर setuid बिट सेट होने के बाद "जॉन 1" को अस्थायी रूप से उपयोगकर्ता पासवर्ड बदलने और दो फाइलों में जानकारी अपडेट करने के लिए रूट अनुमतियां प्राप्त करने में सक्षम बनाता है।
सेटयूड सुरक्षा जोखिम
यदि आप सावधान नहीं हैं, तो एक हमलावर आपके सिस्टम को नियंत्रित करने के लिए सेट्यूड बायनेरिज़ का उपयोग कर सकता है। उपयोगकर्ताओं के पास सामान्य रूप से सेटयूड प्रोग्राम स्थापित नहीं होने चाहिए, विशेष रूप से स्वयं के अलावा अन्य उपयोगकर्ताओं के लिए सेटयूड। सबसे महत्वपूर्ण बात यह है कि आपके होम फोल्डर में रूट यूजर के लिए कोई सेट्यूड इनेबल्ड बाइनरी नहीं होनी चाहिए। ये आमतौर पर ट्रोजन हॉर्स या मैलवेयर होते हैं।
निष्कर्ष
Setuid केवल निष्पादन योग्य फ़ाइलों पर सेट किया जा सकता है। इसी तरह, setgid
बिट को भी सेट किया जा सकता है, जो समूह के सभी सदस्यों को स्वामी अनुमतियों के साथ निष्पादन योग्य चलाने में सक्षम बनाता है।
ध्यान दें कि setuid
और setgid
बिट सुरक्षा के प्रति संवेदनशील होते हैं और केवल योग्य सिस्टम प्रशासकों द्वारा ही उपयोग किए जाने चाहिए।
आगे पढ़ें:
- लिनक्स में साझा निर्देशिकाओं पर फ़ाइलों को प्रबंधित करने के लिए स्टिकी बिट का उपयोग कैसे करें
- लिनक्स टर्मिनल में वर्तनी जांच कैसे करें
- Linux में फ़ाइलों को खोजने के लिए खोज, पता लगाएँ, कौन सी और कहाँ की कमांड का उपयोग करना