इसकी स्थापना के बाद से, लिनक्स को बहु-उपयोगकर्ता वातावरण का समर्थन करने के लिए तैयार किया गया था। एक कार्य प्रणाली पर कई उपयोगकर्ताओं और समूहों के साथ, एक ही समूह के उपयोगकर्ताओं के बीच साझा की गई निर्देशिकाओं का सामना करना काफी आम है, और निर्देशिकाओं में फ़ाइलों को साझा करने से समस्याएँ उत्पन्न होती हैं। इस लेख में, हम चर्चा करेंगे कि आप साझा निर्देशिकाओं पर फ़ाइल एक्सेस अनुमति को ठीक करने के लिए स्टिकी बिट्स का उपयोग कैसे कर सकते हैं।
उदाहरण के लिए, हमारे पास तीन उपयोगकर्ताओं के साथ एक प्रणाली है - जॉन 1, जॉन 2 और जॉन 3, सभी सामान्य समूह "जॉन" के सदस्य हैं
मान लें कि "जॉन 1" "शेयर्ड-डीआईआर" नामक एक नई निर्देशिका बनाता है जिसका अर्थ "जॉन्स" समूह के सभी उपयोगकर्ताओं के बीच साझा किया जाना है।
ls
. के साथ आदेश, हम "साझा-डीआईआर" की अनुमति देख सकते हैं, जिसे निम्न तालिका में व्याख्या किया जा सकता है:
केवल "जॉन 1" निर्देशिका की सामग्री को पढ़ सकता है और निर्देशिका को भी लिख सकता है। चूंकि हम एक साझा निर्देशिका के साथ काम कर रहे हैं, हम चाहते हैं कि समूह के सभी उपयोगकर्ता "साझा-डीआईआर" को लिख सकें।
इसके लिए, हम chmod
. का उपयोग करके अनुमतियों को संशोधित करेंगे आज्ञा। हम नीचे दिखाए गए अनुसार "जॉन्स" समूह के सभी उपयोगकर्ताओं के लिए "लिखने" अनुमतियां जोड़ देंगे।
जैसा कि नीचे दिखाया गया है हम "साझा-डीआईआर" के लिए अद्यतन अनुमतियां देख सकते हैं। पीले रंग में रेखांकित भाग दर्शाता है कि "जॉन्स" समूह को "लिखने" की अनुमति दी गई है।
साझा निर्देशिका में फ़ाइलें जोड़ना
अब “john1” “shared-dir” में दो फ़ाइलें (j1_file1.txt और j1_file2.txt) जोड़ता है
आसान समझ के लिए, फ़ाइल नाम के पहले दो अक्षर उपयोगकर्ता नाम के समानार्थी हैं।
इसी तरह, “john2” भी “shared-dir” निर्देशिका में “लिखने” में सक्षम हैं
"shared-dir" में अब चार फ़ाइलें हैं।
क्या मौजूदा सेटअप में कोई समस्या है?
फ़ाइल "j1_file1.txt" को "john1" द्वारा फ़ाइल स्वामी "john1" बनाकर बनाया गया था। अब “john2” लॉग इन करता है और इस फ़ाइल को हटाने का प्रयास करता है, और वह ऐसा कर पाएगा।
"जॉन 1" फ़ाइल का स्वामी था, लेकिन "जॉन 2" इसे हटाने में सक्षम था क्योंकि "जॉन" समूह के सभी सदस्यों को "लिखने" की अनुमति दी गई थी।
यह परिदृश्य आदर्श नहीं है। हम चाहते हैं कि सभी उपयोगकर्ता निर्देशिका को लिखने में सक्षम हों, लेकिन केवल फ़ाइल स्वामी ही फ़ाइल को हटाने में सक्षम होना चाहिए। यह कैसे हासिल किया जा सकता है?
पेश है स्टिकी बिट
स्टिकी बिट एक विशेष अनुमति है जिसे उस निर्देशिका पर सेट किया जा सकता है जिसमें समूह के लिए "लिखने" अनुमतियां सेट की गई हैं। यह बिट सुनिश्चित करता है कि समूह के सभी सदस्य निर्देशिका को लिख सकते हैं, लेकिन केवल वह व्यक्ति जिसने फ़ाइल बनाई है, वह फ़ाइल स्वामी है, फ़ाइल को हटा सकता है।
chmod
+t
. के साथ कमांड करें निर्देशिका पर स्टिकी बिट सेट करने के लिए ध्वज का उपयोग किया जा सकता है।
अद्यतन अनुमति नीचे देखी जा सकती है।
अब अगर “john2” “j1_file2.txt” फ़ाइल को हटाने का प्रयास करता है जो “john1” द्वारा बनाई गई थी, तो उस ऑपरेशन की अनुमति नहीं है।
यदि आप "अन्य" के लिए "निष्पादित" अनुमति को हटाते हैं, जैसा कि नीचे दिखाया गया है:
निर्देशिका पर चिपचिपा बिट का अस्तित्व अनुमति स्ट्रिंग के "अन्य" भाग में ऊपरी केस "टी" द्वारा दर्शाया गया है। निर्देशिका पर चिपचिपा सा व्यवहार वही रहता है।
“chmod” कमांड का प्रकार
chmod
. का संख्यात्मक रूप निर्देशिका पर स्टिकी बिट सेट करने के लिए कमांड का भी उपयोग किया जा सकता है।
chmod nxyz <file_name>
जहां,
- n =1, स्टिकी बिट को संदर्भित करता है। "एन" के अन्य मान अन्य विशेष अनुमतियों को संदर्भित करते हैं।
- x :फ़ाइल स्वामी को अनुमति दी गई
- y :फ़ाइल तक पहुंच वाले समूह को दी गई अनुमति
- z :दूसरों को दी गई अनुमति
"शेयर्ड-डीआईआर" पर स्टिकी बिट सेट करने के लिए, निम्न कमांड का उपयोग करें:
chmod 1755 shared-dir
जो +t
. का उपयोग करने जैसा ही परिणाम देता है मौजूदा डिफ़ॉल्ट अनुमतियों पर।
स्टिकी बिट का उपयोग केवल निर्देशिकाओं के लिए अच्छा है, इसे फाइलों के लिए उपयोग करने का कोई मतलब नहीं होगा।