"Ls -ld / tmp" के आउटपुट में "t" अक्षर क्या है?


94

कमांड चलाते समय  ls -ld /tmp, आउटपुट होगा:

drwxrwxrwt 30 root root 20480 Mar 11 14:17 /tmp

इसलिए मेरे दो मुख्य प्रश्न हैं:

  • tअनुमति के बाद पत्र क्या है ?
  • जहां तक ​​मुझे पता /tmpहै कि सिस्टम में विभिन्न उपयोगकर्ताओं से संबंधित अस्थायी फाइलें बनाने के लिए उपयोग किया जाता है, तो यह कैसे अनुमति rwxrwxrwx(777) है?

यह मेरे लिए गलत लगता है। कृपया मुझे यह समझने में आपकी मदद चाहिए कि यहाँ क्या हो रहा है।


8
विकिपीडिया लेख पढ़ें , यह उत्तर के बजाय यहाँ बेहतर है।
गाइल्स


ठीक है क्यों, जब मैं एक अपडेट या नया आरपीएम पैकेज / tmp से स्थापित करता हूं, तो क्या चिपचिपा बिट हटा दिया जाता है?

जवाबों:


112

तो चिपचिपा सा क्या है?

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

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

चिपचिपा सा क्यों होता /tmpहै t?

/tmpनिर्देशिका अस्थायी फ़ाइलों को बनाने के लिए विभिन्न लिनक्स उपयोगकर्ताओं द्वारा इस्तेमाल किया जा सकता है। अब, क्या होगा यदि कोई उपयोगकर्ता इस निर्देशिका में किसी अन्य उपयोगकर्ता द्वारा बनाई गई फ़ाइल को हटा / नाम बदल देता है?

खैर, इस तरह के मुद्दों से बचने के लिए, चिपचिपा बिट की अवधारणा का उपयोग किया जाता है। तो इसके लिए एक 777दिया गया है, लेकिन चिपचिपा बिट को संरक्षित करना एक बुरा विचार नहीं है।

मैं एक निर्देशिका के लिए चिपचिपा बिट कैसे सेट कर सकता हूं?

मैं testअपने डेस्कटॉप पर एक निर्देशिका पर एक चिपचिपा बिट सेट करूँगा ।

प्रतीकात्मक तरीका ( tचिपचिपा सा का प्रतिनिधित्व करता है):

chmod o+t ~/Desktop/test

या

chmod +t ~/Desktop/test

संख्यात्मक / अष्टांगिक तरीका (1, पहली स्थिति में 1 मान के रूप में थोड़ा सा चिपचिपा)

chmod 1757 ~/Desktop/test

अब हम परिणामों का परीक्षण करते हैं:

ls -li ~/Desktop/test

1551793 drwxrwxrwt 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test

एक चिपचिपा बिट को हटाने / हटाने के लिए

chmod o-t ~/Desktop/test

अब हम परिणामों का परीक्षण करते हैं:

ls -li ~/Desktop/test

1551793 drwxrwxrwx 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test

स्रोत: "लिनक्स में एक चिपचिपा बिट क्या है और इसे कैसे सेट किया जाए?"


13
चिपचिपा बिट का यह उपयोग केवल निर्देशिकाओं पर लागू होता है, फाइलों पर नहीं। सुदूर अतीत में, निष्पादन योग्य फ़ाइलों पर इसका अर्थ प्रोग्राम के टेक्स्ट सेगमेंट को सहेजने के बजाय स्वैप करने के लिए सहेजना था, ताकि इसे फिर से चलाना तेजी से हो, लेकिन इन दिनों इसका नियमित फ़ाइलों पर कोई अर्थ नहीं है।
Psusi

एक प्रोग्राम का टेक्स्ट सेगमेंट क्या था और इसे कैसे तेज बनाए रखेगा?
ब्लूपीथॉन

@BluePython एक निष्पादन योग्य फ़ाइल का 'पाठ' खंड वह हिस्सा है जिसमें सभी मशीन कोड शामिल हैं: वास्तविक निष्पादन बिट। आम अन्य सेगमेंट स्टैटिक डेटा के लिए 'डेटा' और डेटा के लिए 'bss' है जो सभी शून्य है (और इस तरह इसे निष्पादन में संग्रहीत करने की आवश्यकता नहीं है)।
माइल्स रुट

1
निर्देशिका अनुमति के लिए 't' और 'T' में कोई अंतर है ?? @ psusi
Afshin

1
@Afshin: क्योंकि tखाल xका संकेत सभी उपयोगकर्ताओं फ़ाइल / निर्देशिका निष्पादित कर सकते हैं कि क्या, हम इस संकेत के किसी अन्य तरीके की जरूरत है। सामान्य बात यह है कि हर कोई इसे अंजाम दे सकता है, जिस स्थिति में आपको एक सामान्य t(बदले x) मिलता है। लेकिन अगर नहीं, तो आपको एक अपरकेस T(बदले में -) मिलता है। स्रोत: विकिपीडिया
टॉबी बार्टेल्स

25

स्टिकी बिट एक अनुमति बिट है जो किसी फ़ाइल या निर्देशिका पर सेट होती है, जो फ़ाइल / निर्देशिका या रूट उपयोगकर्ता के केवल स्वामी को फ़ाइल को हटाने या नाम बदलने की सुविधा देती है। किसी अन्य उपयोगकर्ता द्वारा बनाई गई फ़ाइल को हटाने के लिए किसी अन्य उपयोगकर्ता को विशेषाधिकार नहीं दिए गए हैं।

शायद ही कभी ऐसा होता है कि आपको लिनक्स निर्देशिका की आवश्यकता होती है जो फ़ाइलों को बनाने के लिए लिनक्स सिस्टम के सभी उपयोगकर्ताओं द्वारा उपयोग की जा सकती है। उपयोगकर्ता इस निर्देशिका में अपनी सुविधा के अनुसार फाइलें बना सकते हैं, हटा सकते हैं या उनका नाम बदल सकते हैं।

अब, क्या होगा यदि कोई उपयोगकर्ता गलती से या जानबूझकर इस निर्देशिका में किसी अन्य उपयोगकर्ता द्वारा बनाई गई फ़ाइल को हटा देता है (या उसका नाम बदल देता है)?

खैर, इस तरह के मुद्दों से बचने के लिए, चिपचिपा बिट की अवधारणा का उपयोग किया जाता है। चूँकि / tmp का उपयोग इस उद्देश्य के लिए किया जाता है। तो उपरोक्त परिदृश्य से बचने के लिए, / tmp चिपचिपा सा उपयोग करें।

उदाहरण के लिए:

mkdir demo
chmod 777 demo

मैंने इस फ़ोल्डर में 777 की अनुमति वाले अलग-अलग उपयोगकर्ता के साथ दो फ़ाइल बनाई।

ls -ld demo
drwxrwxrwx 2 guru guru 4096 Mar 11 18:17 demo

ls -l demo
-rwxrwxrwx 1 abhi abhi    0 Mar 11 17:11 file1
-rwxrwxrwx 1 anshu anshu   0 Mar 11 18:15 file2

अब इस पर स्टिक बिट को चालू करें

 chmod +t demo/
 ls -ld demo
 drwxrwxrwt 2 guru guru 4096 Mar 11 18:17 demo

अब क्या होगा यदि एक उपयोगकर्ता (अभि) 2 उपयोगकर्ता (अंशु) का नाम बदलना चाहता है

mv /home/guru/demo/file2  /home/guru/demo/file3
mv: cannot move '/home/guru/demo/file2' to  '/home/guru/demo/file3': Operation not   permitted  

चिपचिपा सा की उत्पत्ति

लिनक्स पर, चिपचिपा बिट में केवल ऊपर वर्णित निर्देशिकाओं का उपयोग होता है। ऐतिहासिक रूप से, इसका उपयोग नियमित फ़ाइलों पर पूरी तरह से कुछ अलग करने के लिए किया गया था, और यह वह जगह है जहां से नाम आता है।

जब किसी प्रोग्राम को निष्पादित किया जाता है, तो प्रोग्राम को मेमोरी में लोड करने में समय लगता है इससे पहले कि उपयोगकर्ता वास्तव में इसका उपयोग शुरू कर सकता है। यदि कोई प्रोग्राम, उदाहरण के लिए एक संपादक का उपयोग अक्सर उपयोगकर्ताओं द्वारा किया जाता है तो स्टार्ट-अप समय की देरी तब ओवरहेड बैक थी।

इस समय की देरी को सुधारने के लिए, चिपचिपा सा पेश किया गया था। ओएस ने जाँच की कि यदि निष्पादन योग्य पर चिपचिपा सा है, तो निष्पादन योग्य का टेक्स्ट सेगमेंट स्वैप स्पेस में रखा गया था। इससे जब प्रोग्राम को फिर से चलाया जाता था, तो RAM में निष्पादन योग्य को वापस लोड करना आसान हो जाता था, जिससे समय की देरी कम से कम हो जाती थी।

लिनक्स जैसे आधुनिक सिस्टम अपने कैश ऑफ़ एक्जीक्यूटेबल्स और अन्य फ़ाइलों को स्वचालित रूप से प्रबंधित करते हैं और इसके लिए स्टिकी बिट की आवश्यकता नहीं होती है।

स्रोत: गीक स्टफ में "लिनक्स स्टिकी बिट कॉन्सेप्ट उदाहरण के साथ समझाया गया"


2

एक चिपचिपा साझा निर्देशिका के लिए एक वर्कअराउंड विधि है जो गलती से नष्ट नहीं की जाती है। जब किसी निर्देशिका में एक स्टिकबेट होता है, तो केवल स्वामी या रूट इसे हटा सकते हैं यहां तक ​​कि प्रत्येक उपयोगकर्ता पूर्ण अन्य अनुमतियाँ ले सकता है।

/tmpप्रक्रियाओं और उपयोगकर्ताओं के बीच सबसे साझा निर्देशिका है और इसके लिए यह सुनिश्चित करने के लिए स्टिकबिट शामिल है कि कोई उपयोगकर्ता निर्देशिका को हटा नहीं सकता है, यहां तक ​​कि अनुमति भी है 777, और ऐसा होना चाहिए ताकि उपयोगकर्ता और प्रक्रियाओं को निर्देशिका का उपयोग करने की क्षमता दे सके अनुमतियों में संघर्ष के बिना।

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