GID का क्या अर्थ है?


14

GID का वास्तव में क्या मतलब है?

मैंने इसे Googled है और यह linux.about.com ने कहा है:

प्रक्रिया के लिए समूह पहचान संख्या। मान्य समूह नंबर फ़ाइल /etc/groupके GID फ़ील्ड में और में दिए गए हैं /etc/passwd। जब एक प्रक्रिया शुरू की जाती है, तो इसका GID अपनी मूल प्रक्रिया के GID पर सेट होता है।

  • लेकिन इसका क्या मतलब है?

वर्तमान में मेरे फ़ोल्डर के लिए मेरे पास अनुमतियाँ हैं 0755

मैं समझता हूं कि अगर मैं स्वामी के लिए यूआईडी सेट करता हूं तो यह होगा 4755

और अगर मैं ग्रुप का GID सेट करता हूं तो यह होगा 2755

अगर मैं दूसरों के लिए स्टिकी बिट सेट करता हूँ तो यह होगा 1755

  • क्या उन अनुमतियों को सेट करना भी महत्वपूर्ण है?

जवाबों:


27

में हर प्रक्रिया एक UNIX- जैसे प्रणाली, बस हर फ़ाइल की तरह, (जैसे उपयोगकर्ता, वास्तविक या एक प्रणाली "छद्म उपयोगकर्ता", एक स्वामी है daemon, bin, man, आदि) और एक समूह के मालिक। उपयोगकर्ता की फ़ाइलों के लिए समूह का मालिक आम तौर पर उपयोगकर्ता का प्राथमिक समूह होता है, और इसी तरह से, आपके द्वारा शुरू की जाने वाली कोई भी प्रक्रिया आमतौर पर आपके उपयोगकर्ता आईडी और आपके प्राथमिक समूह आईडी के स्वामित्व में होती है।

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

sticky bitएक अलग उद्देश्य में कार्य करता। इसका सबसे आम उपयोग यह सुनिश्चित करना है कि फ़ाइल बनाने वाले केवल उपयोगकर्ता खाते ही इसे हटा सकते हैं। /tmpनिर्देशिका के बारे में सोचो । इसकी बहुत उदार अनुमति है, जो किसी को भी वहां फाइलें बनाने की अनुमति देती है। यह अच्छा है, और उपयोगकर्ताओं की प्रक्रियाओं (अस्थायी फ़ाइलों को बनाने की अनुमति देता screen, ssh, आदि, रखें राज्य में जानकारी /tmp)। उपयोगकर्ता की अस्थायी फ़ाइलों की सुरक्षा के लिए, /tmpचिपचिपा सा सेट है, ताकि केवल मैं अपनी फ़ाइलों को हटा सकूं, और केवल आप ही आपको हटा सकते हैं। बेशक, रूट कुछ भी कर सकता है, लेकिन हमें आशा है कि sysadmin विक्षिप्त नहीं है!

सामान्य फ़ाइलों के लिए (अर्थात, गैर-निष्पादन योग्य फ़ाइलों के लिए), SETUID / SETGID बिट्स सेट करने में बहुत कम बिंदु है। कुछ सिस्टम पर निर्देशिकाओं पर SETGID उस निर्देशिका में बनाई गई नई फ़ाइलों के लिए डिफ़ॉल्ट समूह के मालिक को नियंत्रित करता है।


2
आह भयानक, इसके लिए धन्यवाद। तो इसलिए, स्टिकी बिट एक व्यक्तिगत (उपयोगकर्ता) अनुमति की तरह है? वह जवाब अच्छी तरह से शब्द और समझ में आता था।
केवदोग K K

1
धन्यवाद! चिपचिपा बिट उदार अनुमति के साथ एक निर्देशिका में फ़ाइलों के लिए एक छोटी सी सुरक्षा प्रदान करता है। यह वास्तव में किसी दिए गए उपयोगकर्ता के लिए विशिष्ट नहीं है, क्योंकि सुरक्षा का समान स्तर सभी फ़ाइलों को दिया जाता है, कोई फर्क नहीं पड़ता कि मालिक कौन है। यह किसी को भी फाइल बनाने की अनुमति देने का एक तरीका है, और केवल यह सुनिश्चित करने के लिए कि मालिक उन्हें नष्ट कर सकते हैं।
D_Bye

+1, D_bye, क्या आप निर्देशिका पर सेट बिट बिट के लिए एक उदाहरण साझा कर सकते हैं। साभार
अंकित

1
@ अर्किटस अंडर सोलारिस (और लगभग निश्चित रूप से अन्य - मैं केवल * बीएसडी और सोलारिस का उपयोग करता हूं, हालांकि), अगर सेटगिट बिट को एक निर्देशिका पर सेट किया गया है, तो उस निर्देशिका के तहत बनाई गई किसी भी नई फ़ाइल में निर्देशिका के रूप में एक ही समूह का मालिक होगा, और बनाने की प्रक्रिया (चलाने वाले उपयोगकर्ता) के प्राथमिक समूह को विरासत में नहीं मिलेगा।
D_Bye

3

मुझे लगता है कि आप एक फ़ाइल के "SGID" बिट का मतलब है, जो उसके GID के समान नहीं है।

यहाँ मेरे कंप्यूटर पर एक सामान्य फ़ाइल है (ls -l का आउटपुट):

-rw-r----- 1 bristol    users 16 2012-07-23 11:36 file.txt
abbbcccddd <-- See explanation below.

यदि आप पहले 10 प्रतीकों को देखते हैं,

(ए) -: यह सिर्फ एक सादा पुरानी फाइल है (जैसा कि एक डायरेक्टरी, सिम्कलिन, पाइप आदि के विपरीत ...)

(b) rw-: मालिक इस फ़ाइल को पढ़ और लिख सकता है, लेकिन इसे निष्पादित नहीं कर सकता है। मालिक "ब्रिस्टल" है जैसा कि आप बाद में लाइन में देख सकते हैं।

(c) r--: इस फ़ाइल के समूह के सदस्य (उदाहरण में "उपयोगकर्ता") के मालिक के अलावा अन्य पढ़ सकते हैं, लेकिन इस फ़ाइल को लिख या निष्पादित नहीं कर सकते हैं।

(d) ---: कोई भी इस फाइल को बिल्कुल एक्सेस नहीं कर सकता (रूट को छोड़कर)।

GID फ़ील्ड वह है जो आपको बताती है कि यह फ़ाइल किस समूह की है - इस मामले में "उपयोगकर्ता"।

आपके विवरण के आधार पर आपके द्वारा संभवतः जिस क्षेत्र का अर्थ है, वह SGID बिट है, और यहां एक बेहतर स्पष्टीकरण है, जिससे मैं ऊपर आ सकता हूं:

http://www.codecoffee.com/tipsforlinux/articles/028.html

संक्षिप्त संस्करण यह है: यदि निष्पादन योग्य फ़ाइल में SGID बिट सेट है, तो जो कोई भी समूह में नहीं है, लेकिन इस फ़ाइल को निष्पादित कर सकता है अस्थायी रूप से इस समूह के अधिकारों को प्राप्त कर सकता है जबकि कार्यक्रम निष्पादित हो रहा है।

उदाहरण के लिए, यदि आपके पास एक समूह "स्पूल" है जो प्रिंट स्पूलर निर्देशिका में फ़ाइलों को पढ़ और लिख सकता है, तो आप नहीं चाहते कि कोई भी इस निर्देशिका के साथ गड़बड़ करे लेकिन आप चाहते हैं कि वे फ़ाइलों को प्रिंट करने में सक्षम हों, तो आप बना सकते हैं कुछ प्रिंटिंग प्रोग्राम या स्क्रिप्ट में समूह "स्पूल" होता है और SGID बिट सेट करता है और जब कोई भी इस प्रोग्राम को लॉन्च करता है, तो प्रोग्राम अब स्पूलर डायरेक्टरी को उस व्यक्ति के बिना लिख ​​सकता है जो इसे पूर्ण एक्सेस प्राप्त कर रहा है।


यह अच्छा है, इसके लिए धन्यवाद। मुझे अनुमतियाँ भाग समझ में आता है, (abbbcccddd भाग) - लेकिन वह आपको :)
Kevdog777

मैंने सिर्फ tmp फ़ोल्डर पर अपनी अनुमति देखी है drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmpक्या करता है abbbcccddt(पत्र 't') क्या मतलब है? - मैं समझता हूं कि "डी = निर्देशिका", "आरडब्ल्यूएक्स = पढ़ा, लिखना, निष्पादित करना"; लेकिन मैंने पहले कभी भी 't' नहीं देखा। क्या tmp फ़ोल्डर के लिए विशेष अनुमति है?
केवदोग K K

छोटा टी "निष्पादन योग्य (एक्स) और चिपचिपा बिट सेट" है। यह क्यों / tmp पर सामान्य है, इसकी व्याख्या के लिए ऊपर देखें।
ब्रिस्टल

3

GID है, जैसा कि आपने पाया है, एक समूह का आईडी नंबर। यह ओएस के लिए कुछ (एक प्रक्रिया, एक फ़ाइल, आदि) से जुड़े उपयोगकर्ता (उपयोगकर्ता) समूह को व्यक्त करने के लिए एक निश्चित तरीका है; संभावित रूप से लंबे स्ट्रिंग पहचानकर्ता के बजाय, इसे निश्चित आकार की संख्या के रूप में व्यक्त किया जा सकता है।

चार ऑक्टल अंकों (उदाहरण के लिए, 0755) के फ़ाइल अनुमतियों के मूल्य में, तीसरा अंक फ़ाइल के लिए समूह की अनुमतियों को निर्दिष्ट करता है। यदि आप पहले अंक को छोड़ देते हैं, तो यह दूसरा अंक है जो समूह की अनुमतियों को निर्दिष्ट करता है। ध्यान दें कि इस संबंध में फ़ाइलों और निर्देशिकाओं का एक समान व्यवहार किया जाता है, लेकिन यह कि प्रत्येक अनुमतियों के बिट का सटीक अर्थ, निर्देशिकाओं के मामले में कुछ हद तक गैर-सहज ज्ञान युक्त है।

दो अवधारणाएं संबंधित हैं, लेकिन बहुत अलग उद्देश्यों से काम करती हैं।

जैसा कि आपके प्रश्न के लिए "क्या उन अनुमतियों को सेट करना महत्वपूर्ण है?"; वे हमेशा कुछ के लिए सेट होते हैं , लेकिन चूंकि ज्यादातर मामलों में प्रारंभिक अंक 0 ("कुछ भी विशेष") नहीं है, इसलिए यह संक्षिप्तता के लिए छोड़ा जाता है। चाहे आपको कुछ अन्य मूल्य निर्दिष्ट करने की आवश्यकता हो, यह पूरी तरह से फ़ाइल या निर्देशिका के लिए उपयोग पैटर्न पर निर्भर करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.