4-नंबर के चार्म तर्क (जैसे `चामॉड 4555`) के लिए पहली संख्या क्या है?


20

जब मैं एक प्रोग्राम स्थापित करता हूं, तो यह मुझे करने की सलाह देता है chmod 4555। ठीक है, मुझे मूल्यों के बारे में पता है अगर मैं सिर्फ तीन नंबर का उपयोग करता हूं। उदाहरण के लिए

chmod 555 test-file

दे देंगे

-r-xr-xr-x

लिखने के लिए 4, पढ़ने के लिए 2 और निष्पादन के लिए 1। लेकिन, जब मैं ऐसा करता हूं:

chmod 4555 test-file

यह मुझे देता है

-r-sr-xr-x

इसलिए, में xबदल गया s। उसका मतलब क्या है?


1
यहाँ भी समझाया: askubuntu.com/a/550947/72216 ("s- ध्वज के बारे में")
याकूब Vlijm

@JacobVlijm भी अधिक गहराई में अन्य "विशेष" बिट के साथ, नीचे समझाया
थॉमस वार्ड

जवाबों:


29

वास्तव में 4 विशेषता सेट हैं जिनके माध्यम से आप काम कर सकते हैं chmod

Special, User/Owner, Group, और Othersइसी क्रम में, जब चार नंबर chmods साथ काम करना, कि पहले नंबर विशेष बिट्स सेट किया जा सकता है कि होने के साथ में।

chmod 4555 निम्नलिखित के बराबर है:

  • Set UID बिट - फ़ाइल को मालिक के रूप में चलाएं, भले ही उपयोगकर्ता इसे चला रहा हो
  • उपयोगकर्ता / स्वामी: Read, Execute
  • समूह: Read, Execute
  • अन्य: Read, Execute

sअपने 'मानव पठनीय' अनुमतियों के लिए स्ट्रिंग में इंगित करता है कि SetUIDबिट (नीचे समझाया) निर्धारित है।


प्रभावी रूप से, हम चार-संख्या chmodअनुमतियों के तर्क को विशिष्ट विवरणों में निम्नानुसार तोड़ सकते हैं, और यह निर्धारित करने के लिए गणित कर रहे हैं 4कि पहले खंड में क्या होगा, 5अगले खंड में, और इसी तरह।

ध्यान रखें कि रखें ####है Special User/Owner Groupऔर Othersइसी क्रम में।

के लिए Specialगुण (एक चार की संख्या में पहले नंबर chmodतर्क):

  • Set UID- उपयोगकर्ता की परवाह किए बिना इसे चलाने वाले के रूप sमें फ़ाइल चलाएं ( Userअनुभाग के लिए मानव-पढ़ने योग्य अनुमतियों के रूप में दिखाता है ) = +4 ( --sनीचे User/Owner)
  • Set GID- भागो फ़ाइल समूह के रूप में उपयोगकर्ता / समूह की परवाह किए बिना यह (शो के रूप में चल sके लिए मानव पठनीय अनुमतियाँ स्ट्रिंग में Groupखंड) = 2 ( --sनीचे Group)
  • Sticky Bit- केवल DIRECTORIES पर प्रभाव - यदि सेट किया जाता है, तो केवल निर्देशिका का स्वामी उपयोगकर्ता और rootनिर्देशिका को हटा सकता है, और केवल फ़ाइल स्वामी या rootउसके अंदर फ़ाइलें हटा सकता है। ( अनुभाग के tलिए मानव-पठनीय अनुमतियाँ स्ट्रिंग में दिखाता है Others) = +1 ( --tअंडर Others)

के लिए User/Owner, Groupऔर Othersविशेषताएँ (चार-संख्या वाले chmodतर्क में अंतिम तीन संख्याएँ ):

  • Read= +4 ( r--)
  • Write= +2 ( -w-)
  • Execute(फ़ाइलों के लिए), या 'इन्टू / लिस्ट आइटम दर्ज करें' (निर्देशिकाओं के लिए) = +1 ( --x)

7

इसे SETUIDबिट कहा जाता है । यदि यह chmod 4555 test-file(आपके मामले में) सेट है , तो test-fileकिसी भी उपयोगकर्ता द्वारा निष्पादित किया जा सकता है जैसे कि उपयोगकर्ता फ़ाइल का मालिक है।

जब SETUIDबिट सेट हो जाता है तो उस उपयोगकर्ता का प्रभावी उपयोगकर्ता आईडी ( EUID) जिसके पास फ़ाइल को निष्पादित करने की अनुमति नहीं है (सामान्य अनुमतियों द्वारा, उदाहरण के लिए 0744), फ़ाइल स्वामी का EUID लेता है और फ़ाइल को निष्पादित कर सकता है।

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