जब फ़ाइलों का उपयोग किया जाता है, तो सिस्टम प्रक्रिया के प्रभावी यूआईडी, जीआईडी के सेट को देखता है और फाइल अनुमतियों (और संभवतः फ़ाइल पर एसीएल) से मेल खाता है।
जब फ़ाइलें बनाई जाती हैं, तो फ़ाइल को बनाया जा सकता है या नहीं, यह तय करते समय सिस्टम एक ही प्रक्रिया मानों को देखता है, लेकिन फ़ाइल पर यूआईडी सेट करने के लिए प्रभावी यूआईडी का उपयोग करता है, और या तो प्रभावी जीआईडी या निर्देशिका के जीआईडी का उपयोग करता है (यदि एसजीआईडी बिट निर्देशिका पर सेट है, या यदि आप मैकोज़ एक्स पर हैं)।
access()
सिस्टम कॉल जांचता है कि वास्तविक यूआईडी और वास्तविक जीआईडी (प्रभावी यूआईडी और जीआईडी के बजाय) फ़ाइल तक पहुंच सकते हैं।
यदि आपके पास एक SUID (setuid) प्रोग्राम है, तो यह अपने ईयूआईडी का उपयोग उन फ़ाइलों तक पहुंचने के लिए कर सकता है जो अन्यथा अपने उपयोगकर्ताओं के लिए उपलब्ध नहीं होंगे। हालांकि, अगर यह उपयोगकर्ता की तरफ से फ़ाइल बनाना चाहता है (इसे चलाने वाले व्यक्ति का आरयूआईडी), तो उसे एसयूआईडी विशेषाधिकार छोड़ना होगा ताकि ईयूआईडी आरयूआईडी के समान हो। एक बार बहुत पहले नहीं, एक बार जब आप SUID विशेषाधिकार छोड़ देते हैं, तो यह अच्छा के लिए खो गया था; आप इसे वापस नहीं मिल सका। सहेजा गया यूआईडी मूल्य आपको वापस स्विच करने की अनुमति देता है, जो SUID कार्यक्रमों के लिए विशेषाधिकारों के प्रबंधन को सरल बनाता है।
स्रोत
2011-04-14 18:00:22
यह भी देखें http://stackoverflow.com/questions/205070/whats-the-deal-with-all-the- अलग-uids-a-process-can-have – Andy