शायद ही कभी, यह कोड में है। उदाहरण के लिए, मध्य में hwclock.c
, आप पाएंगे:
if (getuid() == 0)
permitted = TRUE;
else {
/* program is designed to run setuid (in some situations) */
if (set || systohc || adjust) {
warnx(_("Sorry, only the superuser can change "
"the Hardware Clock."));
[...]
यदि आप रूट हैं या नहीं, तो प्रोग्राम का व्यवहार बदल जाएगा।
अधिकांश अन्य मामलों में, यह निहित है; गिरी को सौंप दिया। उदाहरण के लिए, यदि प्रोग्राम सिस्टम कॉल को कॉल करता है जो आपको सिस्टम को रिबूट करने देता है, तो यह रूट होने पर ही काम करेगा। यदि आप रूट नहीं हैं, तो आपके पास "अनुमति अस्वीकृत" त्रुटि होगी जो आवेदन (यदि अच्छी तरह से लिखा गया है) बस आपको रिपोर्ट करता है। या आप किसी फ़ाइल को हटाने की कोशिश कर रहे हैं; यदि आपके पास इसे करने के लिए फ़ाइल पर सही अनुमति है, तो यह सफल होगा; यदि नहीं, तो यह निर्भर करता है कि आप रूट हैं या नहीं --- जब rm
कॉल unlink()
कर्नेल अनुमतियों की जांच करेगा।
तो नहीं, सिद्धांत रूप में आप केवल निष्पादन योग्य की अनुमति को देखकर यह नहीं कह सकते हैं कि प्रोग्राम को रूट विशेषाधिकारों की आवश्यकता है या नहीं। बहुत सारे कार्यक्रमों के लिए उन्हें केवल कुछ ऑपरेशन की आवश्यकता होगी, इसलिए ऐसा कुछ करना वास्तव में मुश्किल होगा। के मामले hwclock
में एक (किसी को भी घड़ी पढ़ सकते हैं लेकिन केवल रूट सेट कर सकते हैं) है, लेकिन उनमें से सैकड़ों देखते हैं ( kill
, rm
, cat
...)
फिर सेतु कार्यक्रमों की संबंधित और दिलचस्प दुनिया है ...
/bin
या/sbin
निर्देशिका से निष्पादित कर सकता है । समस्या यह है कि उन कार्यक्रमों में से कुछ अलग चल रहे हैं, जिसके आधार पर उपयोगकर्ता उन्हें चलाता है।