मैं उस फ़ाइल को क्यों नहीं हटा सकता जहाँ मेरे पास समूह की अनुमतियाँ हैं?


26

मेरे पास निम्नलिखित अनुमतियों वाली एक फाइल है:

root:data, और chmod775 पर सेट है।

मेरा सामान्य उपयोगकर्ता, चलो उसे बोबी कहते हैं, dataसमूह में है।

मैं उपयोगकर्ता बॉबी के साथ फ़ाइल क्यों नहीं हटा सकता?

 rwxrwxr-x 18 रूट डेटा 4096 2011-12-30 22:02 स्टोरेज
 मेरा उपयोगकर्ता समूह डेटा में है, लेकिन संग्रहण में नहीं लिख सकता

जवाबों:


32

क्योंकि किसी फ़ाइल को हटाकर, आप न केवल फ़ाइल को संशोधित कर रहे हैं, बल्कि उसकी निर्देशिका को भी संशोधित कर रहे हैं।

तो अगर आपकी फ़ाइल है:

rwxrwxr-x

आप कर सकेंगे:

cp /dev/null <filename>

लेकिन अगर आपकी निर्देशिका अनुमतियाँ हैं:

rwxr-xr-x  root  data  <directory name>

तब सिस्टम आपको फ़ाइल को हटाने से रोक देगा।


मेरे पास निर्देशिका पर drwxrwxr-x है, मुझे लगता है कि इसका सामने वाले d के साथ कुछ करना है
danidacar

2
@ user56301 d केवल इंगित करता है कि यह फ़ाइल एक निर्देशिका है। निर्देशिका का स्वामित्व क्या है?
कार्लसन 19

drwxrwxr-x 18 रूट डेटा
danidacar 19

उपयोगकर्ता bobyको निम्न के रूप में चलाने का प्रयास करें :cd <directory> ; touch test_file ; rm test_file
कार्लसन

@ user56301 क्या आप उस निर्देशिका में एक फ़ाइल बना सकते हैं? यदि आप नहीं कर सकते हैं, तो आप निश्चित रूप से वहाँ एक फ़ाइल नहीं हटा सकते हैं।
रिच होमोलका

12

फ़ाइल विलोपन निर्देशिका परमिटों पर आधारित है, फ़ाइल परमिट (*) पर नहीं।

क्या आपके पास उस निर्देशिका पर लिखने की अनुमति है जिसमें फ़ाइल शामिल है?

(*) कैविएट, आपके पास एक निर्देशिका हो सकती है जहाँ आप यह लागू करते हैं कि केवल फ़ाइल का स्वामी ही इसे हटा सकता है। यह अस्थायी dirs के लिए उपयोगी है।


: इसके अलावा यहां एक नजर है superuser.com/questions/784952/... जहां एक ही चर्चा की है।
मीटाइ.कॉम

1

यदि युक्त निर्देशिका उपयोगकर्ता bobyया dataसमूह को इसे लिखने की अनुमति नहीं देती है, तो वह इस व्यवहार की व्याख्या करेगा।


2
तो पूरे रास्ते को समूह की अनुमति चाहिए? यह उसी तरह काम करता है।
danidacar 20

1
@user: संपूर्ण पथ नहीं - बस फ़ाइल की तत्काल मूल निर्देशिका है। आप केवल निर्देशिका की सामग्री को संशोधित कर रहे हैं। उच्च माता-पिता सब पर कोई फर्क नहीं पड़ता
२०:३० पर ग्रेविटी

मैं जवाब अपडेट करता हूं
danidacar 20

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

@ रीच: AFAIK, केवल एक सेट की जाँच की जाती है। यदि आप स्वामी हैं, तो सिस्टम केवल 'स्वामी' की जांच करेगा, न कि 'समूह' और न ही अन्य लोगों की। यदि आप समूह में हैं, तो सिस्टम 'दूसरों' के परमिट की जाँच नहीं करेगा। ( touch foo; chmod 6 foo; ls -l foo; cat foo)
ग्रैविटी

1

मैंने वही कोशिश की, और उसी समस्या में भाग गया।

एक नया टर्मिनल सत्र शुरू करने में समस्या। इसके द्वारा प्राप्त किया जा सकता है:

  1. लॉग आउट कर वापस लॉग इन करना होगा
  2. 6 ट्टियों में से एक पर जाना (Ctrl + Alt + F1-6) (नोट: Ctrl + Alt + F7 आपका GUI सत्र है)
  3. su bobyउपयोगकर्ता के लिए एक नया सत्र शुरू करने के लिए उपयोग करना boby

चीयर्स!


उन्होंने उल्लेख किया है कि वह पहले से ही बॉबी के रूप में लॉग इन हैं
कनाडाई ल्यूक रिइनसेट मोनाका

उसे फिर से लॉगिन करने की आवश्यकता है boby- पुराने सत्र को बासी लगता है और समूह एसोसिएशन के परिवर्तनों को प्रतिबिंबित नहीं करता है।
यहाँ

1

मैं शर्त लगाता हूं कि जिस फ़ाइल को आप हटाने की कोशिश कर रहे हैं वह / tmp में है।

लिनक्स देखें - समूह सदस्य rw अनुमति वाली फ़ाइल को हटा नहीं सकते हैं

/ tmp में आमतौर पर "स्टिकी" उर्फ ​​"प्रतिबंधित विलोपन" मोड सेट (ओ + टी) होता है। इस मोड सेट के साथ, केवल फ़ाइल का स्वामी बिना किसी अनुमति के उस निर्देशिका में फ़ाइलों को स्थानांतरित या हटा सकता है।

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