user2
लॉग आउट करने और वापस करने की आवश्यकता है। समूह अनुमतियाँ इस तरह से काम करती हैं:
- जब आप लॉग इन करते हैं, तो आपकी प्रक्रियाओं का उल्लेख आपके मुख्य समूह में समूह सदस्यता के लिए मिलता है
/etc/passwd
, साथ ही उन सभी समूहों में जहां आपके उपयोगकर्ता में उल्लेख किया गया है /etc/group
। (अधिक सटीक रूप से, वह pw_gid
फ़ील्ड getpw(your_uid)
, जिसके साथ ही आपका उपयोगकर्ता एक स्पष्ट सदस्य है , के सभी समूह । परे और जानकारी, NIS या LDAP जैसे अन्य प्रकार के उपयोगकर्ता डेटाबेस से आ सकते हैं।) मुख्य समूह प्रक्रिया का प्रभावी समूह आईडी बन जाता है। और अन्य समूह इसके पूरक समूह आईडी बन जाते हैं ।/etc/passwd
/etc/group
- जब एक प्रक्रिया एक ऑपरेशन करती है, जिसमें एक निश्चित समूह में सदस्यता की आवश्यकता होती है, जैसे कि फ़ाइल तक पहुंचना , तो उस समूह को प्रभावी समूह आईडी या प्रक्रिया के पूरक समूह आईडी में से एक होना चाहिए।
जैसा कि आप देख सकते हैं, उपयोगकर्ता के समूह सदस्यता के लिए आपका परिवर्तन केवल तभी प्रभावी होता है जब उपयोगकर्ता लॉग इन करता है। चल रही प्रक्रियाओं के लिए, बहुत देर हो चुकी है। इसलिए उपयोगकर्ता को लॉग आउट और बैक-इन करने की आवश्यकता है। यदि यह बहुत अधिक परेशानी है, तो उपयोगकर्ता एक अलग सत्र (जैसे कि एक अलग कंसोल पर, या साथ ssh localhost
) में लॉग इन कर सकता है ।
हुड के तहत, एक प्रक्रिया केवल विशेषाधिकार (उपयोगकर्ता आईडी, समूह आईडी, क्षमताओं) को कभी भी खो सकती है । कर्नेल init
रूट के रूप में (बूट के बाद पहली प्रक्रिया) प्रक्रिया शुरू करता है, और हर प्रक्रिया अंततः उस प्रक्रिया से उतारी जाती है। login
प्रक्रिया (या sshd
, या अपने डेस्कटॉप प्रबंधक की बात यह है कि आप में लॉग) अभी भी रूट के रूप में चल रहा है। इसका काम का हिस्सा जड़ विशेषाधिकारों को छोड़ना और उचित उपयोगकर्ता और समूहों पर स्विच करना है।
एक एकल अपवाद है: एक सेट्यूड या सेटगिड प्रोग्राम को निष्पादित करना । उस कार्यक्रम को अतिरिक्त अनुमति प्राप्त होती है: यह मूल प्रक्रिया के सदस्यों के विभिन्न सबसेट के तहत कार्य करने का विकल्प चुन सकता है। विशेष रूप से, एक setuid रूट प्रोग्राम में रूट अनुमतियां हैं, इसलिए सब कुछ कर सकते हैं; इस तरह से कार्यक्रम su
और sudo
अपना काम कर सकते हैं।
(
कभी-कभी ऐसी प्रक्रियाएं होती हैं जो init (initrd, udev) से नहीं ली जाती हैं, लेकिन सिद्धांत एक ही है: मूल के रूप में शुरू करें और समय के साथ विशेषाधिकारों को खो दें।
SEL
SELinux जैसे बहुस्तरीय सुरक्षा ढांचे को वर्जित करना।