मैं लिनक्स में एक निर्देशिका पर "s" अनुमति कैसे साफ़ करूँ?


24

मेरे पास एक निर्देशिका है जो अनुमति मुखौटा के साथ दिखाई दे रही है drwsrwsr-x। जब मैं 755S को अनुमतियाँ रीसेट करने का प्रयास करता हूं तब भी रहता है।

"S" क्या है और मैं 775 ( drwxrwxr-x) में अनुमतियों को वापस क्यों नहीं बदल सकता ?

जवाबों:


25

उपयोगकर्ता और समूह कॉलम में "निष्पादित" स्थिति में आप जो देख रहे हैं, वह सेटयूआईडी (निष्पादन पर सेट उपयोगकर्ता आईडी) और सेटजीआईडी ​​(निष्पादन पर समूह आईडी सेट) बिट्स हैं।

यूनिक्स फ़ाइल अनुमतियां वास्तव में एक 4-अंकीय ओक्टल संख्या हैं SUGO

  • S , SetUID (4), SetGID (2) और "स्टिकी" (1) बिट्स को नियंत्रित करता है
  • U नियंत्रण फ़ाइल स्वामी के लिए पढ़ें (4) / लिखें (2) / निष्पादित करें (1) बिट्स
  • जी फ़ाइल के समूह के लिए रीड / राइट / एक्सक्यूट बिट्स को नियंत्रित करता है
  • O बाकी सभी के लिए Read / Write / Execute बिट्स को नियंत्रित करता है।

आप अपनी निर्देशिका से chmod ug-s directory, या के साथ सेतु बिट्स को हटा सकते हैंchmod 0755 directory

अधिक जानकारी के लिए chmod, और सेटअप बिट के बारे में इस विकिपीडिया पृष्ठ के लिए मैन पेज देखें ।


यह "sgid" (कोई "u") नहीं है।
अगली सूचना तक रोक दिया गया।

"क्या ड्र्वेस्र्स्क्स है?" <- फिर से जाँच करें
Hrvoje Špoljar

6
chmod 0755करता नहीं setuid बिट स्पष्ट, कम से कम लिनक्स पर नहीं। मैं वर्तमान में अन्य प्रणालियों पर परीक्षण कर रहा हूं।
FUZxxl

1
POSIX का कहना है कि यह नियमित फ़ाइलों के अलावा अन्य फ़ाइल प्रकारों के लिए लागू किया गया है, चाहे chmodएक ऑक्टामल मोड से सेट्यूड, सेटगिड और वीटीएक्स बिट्स को साफ करता है।
फ़ूजएक्सएक्सएल

2
लिनक्स पर एक निर्देशिका पर सेतु बिट को खाली करने के लिए, उपयोग करें chmod 00755; देखें unix.stackexchange.com/q/393531/46851
रोजर लिप्सकॉम्ब

23

सेतु और सेटिग

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

संख्यात्मक रूप से सेट्युड और सेटगिड बिट्स को हटाने के लिए, आपको बिट-पैटर्न को एक 0(जैसे: 0775बन जाता है 00775) के साथ उपसर्ग करना होगा ।

सेयुड और सेटगिड को हटाने के लिए चलाएँ:

chmod 00775 path

या

chmod a-st path

यह निर्देशिका में फ़ाइल नहीं है
ह्रोज़्जे directoryपोलर

1
एक निर्देशिका भी एक यूनिक्स फाइल सिस्टम में एक फाइल है, क्या ooshro का कहना है पूरी तरह से सही है
lynxman

हाँ, यह सब एक फाइल है, लेकिन यह वर्णन सही नहीं है क्योंकि आप कुछ ऐसा नहीं करते हैं जो drwxrwxr-x जैसा दिखता हो: |
हिरोवेज jeपोलर

यूनिक्स में, इनोड वह चीज है जिसे अनुमति मिलती है।
क्रिस

2
GNU chmod, जब आप इसे ऑक्टेमल मोड के साथ निष्पादित करते हैं, तो निर्देशिका पर सेटिड और सेटगिड बाइट्स को साफ़ नहीं करता है। POSIX इस व्यवहार की अनुमति देता है।
FUZxxl

2

ओशो के उत्तर में जोड़ना ...

यदि आप किसी निर्देशिका पर suid या sgid अनुमतियों का उपयोग करते हैं, तो उस निर्देशिका के अंदर बनाई गई किसी भी फ़ाइल में एक ही स्वामी (यदि suid) या समूह (sgid) होगा, तो वह निर्देशिका में है।

मैं अपने घर सांबा के शेयर का उपयोग करता हूं। आधार निर्देशिका उपयोगकर्ता किसी और समूह ओलंपिया के स्वामित्व में है, और अनुमतियाँ 2770 हैं। इसलिए आपको उस निर्देशिका के नीचे कुछ भी पढ़ने या लिखने के लिए समूह ओलंपिया में होना होगा, और यह सुनिश्चित करेगा कि ओलंपिया इसके नीचे सब कुछ का समूह है। । मेरे पास सांबा भी है जो पेड़ के नीचे सभी तरह से अनुमतियों को सही रखने के लिए 2770 के एक डर्मस्क और 660 के एक फिल्ममास्क का उपयोग करने के लिए कॉन्फ़िगर किया गया है।

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