मैं यह समझने की कोशिश कर रहा हूं कि लिनक्स में उपयोगकर्ता की अनुमति कैसे काम करती है। कर्नेल बूट और init
रूट के रूप में शुरू होता है, है ना? Init फिर स्टार्टअप स्क्रिप्ट चलाता है और चलाता है getty
( agetty
), फिर से रूट के रूप में। मैं सिर्फ उपयोगकर्ता नाम और रन को भूल जाता हूं login
, फिर भी जड़ के रूप में, मुझे लगता है। अभी तक कुछ भी दिलचस्प नहीं है। लेकिन लॉगिन क्या करता है? मैं "लॉग इन करने का प्रयास करता हूं" से बेहतर कुछ भी नहीं खोज सका। मान लीजिए कि लॉगिन उस पासवर्ड से मेल खाता है (और हम सामान्य उपयोगकर्ता के रूप में लॉग इन करने की कोशिश कर रहे हैं), यह उपयोगकर्ता आईडी कैसे बदलता है? मैंने सोचा था कि उसके लिए सिस्टम कॉल होनी चाहिए लेकिन मैं इसे ढूंढ नहीं पा रहा था (हो सकता है कि मैं सिर्फ अंधा हूं?)
इसके बारे में भी su
। su
जब हम इसे चलाते हैं तो 'setuid' बिट सेट होता है, यह हमेशा रूट के रूप में चलता है। लेकिन जब हम इसे सामान्य उपयोगकर्ता के रूप में लॉग इन करने के लिए कहते हैं, तो इसे फिर से उपयोगकर्ता आईडी बदलने की आवश्यकता होती है। क्या मैं सही ढंग से समझता हूं कि वही "जादू" होता है su
और login
जब उन्हें उपयोगकर्ता को बदलने की आवश्यकता होती है? यदि हां, तो दो अलग-अलग कार्यक्रम क्यों हैं? लॉगिन चलाते समय क्या कोई अतिरिक्त प्रकार का गंभीर व्यवसाय हो रहा है?