में हर प्रक्रिया एक UNIX- जैसे प्रणाली, बस हर फ़ाइल की तरह, (जैसे उपयोगकर्ता, वास्तविक या एक प्रणाली "छद्म उपयोगकर्ता", एक स्वामी है daemon
, bin
, man
, आदि) और एक समूह के मालिक। उपयोगकर्ता की फ़ाइलों के लिए समूह का मालिक आम तौर पर उपयोगकर्ता का प्राथमिक समूह होता है, और इसी तरह से, आपके द्वारा शुरू की जाने वाली कोई भी प्रक्रिया आमतौर पर आपके उपयोगकर्ता आईडी और आपके प्राथमिक समूह आईडी के स्वामित्व में होती है।
कभी-कभी, हालांकि, कुछ आदेशों को चलाने के लिए उन्नत विशेषाधिकार होना आवश्यक है, लेकिन पूर्ण प्रशासनिक अधिकार देना वांछनीय नहीं है। उदाहरण के लिए, passwd
कमांड को सिस्टम के शैडो पासवर्ड फ़ाइल तक पहुंच की आवश्यकता होती है, ताकि यह आपके पासवर्ड को अपडेट कर सके। जाहिर है, आप हर उपयोगकर्ता को रूट विशेषाधिकार नहीं देना चाहते हैं, बस इसलिए वे अपना पासवर्ड रीसेट कर सकते हैं - जो निश्चित रूप से अराजकता की ओर ले जाएगा! इसके बजाय, कुछ कार्यों को करने के लिए उपयोगकर्ताओं को अस्थायी रूप से उन्नत विशेषाधिकार देने का एक और तरीका होना चाहिए। यह वही है जो SETUID और SETGID बिट्स के लिए है। यह चिह्नित कमांड के निष्पादन की अवधि के लिए उपयोगकर्ता के विशेषाधिकारों को अस्थायी रूप से बढ़ाने के लिए कर्नेल को बताने का एक तरीका है। एक SETUID बाइनरी निष्पादन योग्य फ़ाइल (आमतौर पर) के मालिक के विशेषाधिकार के साथ निष्पादित किया जाएगाroot
), और एक SETGID बाइनरी निष्पादन योग्य फ़ाइल के समूह के मालिक के समूह विशेषाधिकारों के साथ निष्पादित किया जाएगा। passwd
कमांड के मामले में , जो root
SETUID से संबंधित है और है, यह सामान्य उपयोगकर्ताओं को रूट विशेषाधिकारों के साथ निष्पादित करके, नियंत्रित और अनुमानित तरीके से पासवर्ड फ़ाइल की सामग्री को सीधे प्रभावित करने की अनुमति देता है। ऐसे कई अन्य हैं SETUID
पर आदेशों यूनिक्स सिस्टम ( chsh
, screen
, ping
, su
, आदि), जो सभी के ऊपर उठाया विशेषाधिकारों की आवश्यकता को सही ढंग से संचालित करने के लिए। कुछ SETGID
कार्यक्रम भी हैं , जहां कर्नेल अस्थायी रूप से प्रक्रिया के GID को बदलता है, लॉगफ़ाइल्स तक पहुंच की अनुमति देता है, आदि sendmail
ऐसी उपयोगिता है।
sticky bit
एक अलग उद्देश्य में कार्य करता। इसका सबसे आम उपयोग यह सुनिश्चित करना है कि फ़ाइल बनाने वाले केवल उपयोगकर्ता खाते ही इसे हटा सकते हैं। /tmp
निर्देशिका के बारे में सोचो । इसकी बहुत उदार अनुमति है, जो किसी को भी वहां फाइलें बनाने की अनुमति देती है। यह अच्छा है, और उपयोगकर्ताओं की प्रक्रियाओं (अस्थायी फ़ाइलों को बनाने की अनुमति देता screen
, ssh
, आदि, रखें राज्य में जानकारी /tmp
)। उपयोगकर्ता की अस्थायी फ़ाइलों की सुरक्षा के लिए, /tmp
चिपचिपा सा सेट है, ताकि केवल मैं अपनी फ़ाइलों को हटा सकूं, और केवल आप ही आपको हटा सकते हैं। बेशक, रूट कुछ भी कर सकता है, लेकिन हमें आशा है कि sysadmin विक्षिप्त नहीं है!
सामान्य फ़ाइलों के लिए (अर्थात, गैर-निष्पादन योग्य फ़ाइलों के लिए), SETUID / SETGID बिट्स सेट करने में बहुत कम बिंदु है। कुछ सिस्टम पर निर्देशिकाओं पर SETGID उस निर्देशिका में बनाई गई नई फ़ाइलों के लिए डिफ़ॉल्ट समूह के मालिक को नियंत्रित करता है।