chown - ऑपरेशन की अनुमति नहीं है


37

मैं मिनिम के रूप में लॉग इन हूं।

मुझे समझ में नहीं आता है कि यह मुझे फ़ाइल को चॉइस करने की अनुमति क्यों नहीं देता है जो मैं सु विशेषाधिकार के बिना करता हूं। जाहिर है मैं sudo का उपयोग कर सकता हूं, लेकिन मैं समझना चाहूंगा कि क्यों? www-data समूह के कारण?

chown minime:www-data user-functions.php

ls -lh

-rw-r--r--  1 minime minime    24K Jan  6 16:11 user-functions.php

Error:

chown: changing ownership of `user-functions.php': Operation not permitted

जवाबों:


51

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

जैसा कि यहाँ बताया गया है (साभार @slhck):

केवल फ़ाइल के उपयोगकर्ता आईडी के बराबर या उचित विशेषाधिकार के साथ एक प्रभावी उपयोगकर्ता आईडी के साथ प्रक्रियाएं फ़ाइल के स्वामित्व को बदल सकती हैं। यदि पथ के लिए _POSIX_CHOWN_RESTRICTED प्रभावी है:

  • उपयोगकर्ता आईडी बदलना उचित विशेषाधिकार के साथ प्रक्रियाओं तक सीमित है।

  • समूह आईडी को बदलने की अनुमति एक प्रभावी उपयोगकर्ता आईडी के साथ एक प्रक्रिया है जो फ़ाइल के उपयोगकर्ता आईडी के बराबर है, लेकिन उपयुक्त विशेषाधिकारों के बिना, यदि और केवल यदि मालिक फ़ाइल के उपयोगकर्ता आईडी या (uid_t) -1 के बराबर है और समूह बराबर है या तो कॉलिंग प्रक्रिया 'प्रभावी समूह आईडी या उसके पूरक समूह आईडी में से एक के लिए।

इसके पीछे के तर्क को @Gilles द्वारा अच्छी तरह से समझाया गया है इस यूनिक्स और लिनक्स उत्तर :

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

  • यदि किसी सिस्टम में डिस्क कोटा सक्षम है, तो ऐलिस केवल उसके द्वारा सुलभ एक निर्देशिका के तहत एक विश्व-लेखन योग्य फ़ाइल बना सकता है (इसलिए कोई और उस विश्व-लेखन फ़ाइल को निर्देशिका में एक्सेस नहीं कर सकता), और फिर उस फ़ाइल को स्वामित्व में बनाने के लिए उसे चलाएं। एक अन्य उपयोगकर्ता बिल। फ़ाइल तब बिल की डिस्क कोटा के तहत गिना जाएगा भले ही केवल ऐलिस फ़ाइल का उपयोग कर सकता है।
  • यदि ऐलिस बिल के लिए एक फ़ाइल देता है, तो कोई निशान नहीं है कि बिल ने वह फ़ाइल नहीं बनाई है। यह एक समस्या हो सकती है यदि फ़ाइल में अवैध या अन्यथा डेटा शामिल है।
  • कुछ कार्यक्रमों के लिए अनुरोध करने के लिए उनकी इनपुट फ़ाइल किसी विशेष उपयोगकर्ता से संबंधित होती है (उदाहरण के लिए, फ़ाइल में कुछ निर्देश होते हैं जो प्रोग्राम उस उपयोगकर्ता की ओर से करेगा)। यह आमतौर पर एक सुरक्षित डिजाइन नहीं है, क्योंकि भले ही बिल ने एक फाइल बनाई है जिसमें सिंटैक्टिक रूप से सही निर्देश हैं, वह इस विशेष समय में उन्हें निष्पादित करने का इरादा नहीं कर सकता है। फिर भी, ऐलिस को मनमाने ढंग से सामग्री के साथ एक फ़ाइल बनाने की अनुमति देता है और इसे बिल से इनपुट के रूप में लिया जाता है, जिससे चीजें खराब हो सकती हैं।


थैंक्स @slhck मैंने manपेज चेक किया और इस बारे में कोई स्पष्ट उल्लेख नहीं मिला, जवाब अपडेट किया गया।
टेराडन

महान! अब बहुत स्पष्ट है ... क्या होगा यदि मिनिमम www-data समूह का हिस्सा है?

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