क्या मैं उपयोगकर्ताओं को उनके द्वारा स्वामित्व वाली फ़ाइल को चोदने की अनुमति दे सकता हूँ?


17

मैं उपयोगकर्ताओं को एक फ़ाइल को रूट करने की अनुमति देना चाहूंगा जो रूट या कुछ उपयोगकर्ता के स्वामित्व में है जो स्वयं नहीं है। मेरे पास फ़ाइल को 777 पर chmod'ed है और मुझे "ऑपरेशन की अनुमति नहीं है"। मैंने उपयोगकर्ता को फ़ाइल के समूह में जोड़ा है और समान प्राप्त कर रहा हूं। कोई उपयोगकर्ता किसी फ़ाइल को क्यों नहीं लिख सकता, जिसके पास उसकी पहुंच है?


1
इस तर्क से, क्यों न केवल सब कुछ जड़ के रूप में चलाया जाए? यदि कोई उपयोगकर्ता किसी भी मोड को बदल सकता है, तो आप मूल रूप से संपूर्ण यूनिक्स अनुमतियों के मॉडल को नष्ट कर सकते हैं ...
क्रिस डाउन

1
आप क्या करना चाहते हैं? शायद आपको इस पर एक नज़र रखना चाहिए sudo: linux.die.net/man/8/sudo & linux.die.net/man/5/sudoers
xx4h

फ़ाइल में 777 अनुमतियाँ हैं, एक उपयोगकर्ता "mv फ़ाइल file.old; cat file.old> फ़ाइल" पर जा सकता है और वे अब फ़ाइल के स्वामी होंगे और इसे चोद सकते हैं। वे "chmod 777 फ़ाइल" क्यों नहीं कर सकते हैं?
ashleysmithgpu

5
नहीं, वे केवल ऐसा कर सकते हैं यदि उनके पास निर्देशिका की अनुमति है। यदि उपयोगकर्ता के पास 04777 मोड की सेटिंग द्वारा और उसके द्वारा कॉपी की गई फ़ाइलों की अनुमतियों को बदलने का अधिकार है, और उसमें / usr / bin / env कॉपी करके, वह किसी भी कमांड को उस उपयोगकर्ता के रूप में चला सकता है।
स्टीफन चेजेलस

@StephaneChazelas यह एक अजीब तर्क है क्योंकि कर्नेल आसानी से निर्णय ले सकता है (और करता है) गैर-मालिकों को उस निर्णय से बाध्य किए बिना उन सभी प्रकार के परिवर्तनों की अनुमति देने के लिए । सभी SUID के रीसेट होने के बाद भी जब कोई गैर-मालिक फ़ाइल लिखता है।
हौके लैजिंग

जवाबों:


8

कोई उपयोगकर्ता किसी फ़ाइल को क्यों नहीं लिख सकता, जिसके पास उसकी पहुंच है?

सामान्य पहुँच अधिकारों के लिए यह एक डिज़ाइन निर्णय है। आपको रिचाक्ल्स चाहिए : WRITE_ACLऔर हो सकता है WRITE_OWNER


1
और आपको चेतावनी देनी चाहिए कि रिचाक्ल्स आम तौर पर उपलब्ध नहीं हैं।
sendmoreinfo

@sendmoreinfo विकिपीडिया लेख कहता है कि और इसे स्पष्ट रूप से पढ़ा जाना चाहिए क्योंकि मेरा उत्तर यह नहीं बताता है कि रिचाक्ल्स क्या हैं और उनका उपयोग कैसे किया जाता है। इसके कारण एक सही उत्तर "उपयोगी नहीं" पर विचार करना हास्यास्पद है। विशेष रूप से जैसा कि कोई समान विकल्प नहीं है। अगली बार एक संपादन करें यदि आपको लगता है कि ऐसी जानकारी आवश्यक है।
हौके लैगिंग

मैं देख रहा हूं, यह एक डिजाइन निर्णय है, धन्यवाद
ashleysmithgpu

2
आपने स्पष्ट रूप से इस सुविधा का उपयोग किया है, इसलिए इसे स्वयं स्पष्ट करें, अपने शब्दों में।
sendmoreinfo

10

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

एक उपयोगकर्ता को अनुमति देना जो दूसरों को लिखित अनुमति देने के लिए एक फ़ाइल पढ़ सकता है, या एक उपयोगकर्ता को अनुमति दे सकता है जो दूसरों को लिखित अनुमति देने के लिए एक फ़ाइल लिख सकता है, सुरक्षा मॉडल को बहुत अधिक नहीं बदलेगा। ऐसा इसलिए है क्योंकि यूनिक्स की अनुमति विवेकाधीन है: एक उपयोगकर्ता जो एक फ़ाइल पढ़ सकता है, वह अन्य उपयोगकर्ताओं के लिए अपनी सामग्री को उजागर कर सकता है, भले ही ये अन्य उपयोगकर्ता फ़ाइल को पढ़ने में सक्षम नहीं होंगे (और इसी तरह लिखने के लिए, उपयोगकर्ता प्रॉक्सी के रूप में कार्य कर सकता है) दूसरों की ओर से लिखें)।

दूसरी ओर, उपयोगकर्ता को अनुमति देने की अनुमति देता है कि उसके पास अनुमति प्रणाली पूरी तरह से नहीं टूटेगी: उपयोगकर्ता स्वयं को सभी अनुमतियाँ दे सकता है।

यह बहुत दुर्लभ है कि किसी फ़ाइल की अनुमति को बदलने की आवश्यकता नहीं है जो आपके पास नहीं है। आमतौर पर आपको फ़ाइल को बनाते ही सही परमिशन की व्यवस्था करनी चाहिए। यदि आपको वास्तव में इसकी आवश्यकता है, तो आप उपयोगकर्ता sudo chmodको एक विशेष मोड और एक विशेष फ़ाइल (जैसे joe: ALL = (ALL) chmod g+r /path/to/file) के लिए अधिकार दे सकते हैं ।

¹ एक्सेस और संशोधन के समय को छोड़कर, जो विशेष रूप से इसलिए हैं क्योंकि फ़ाइल को पढ़ना या लिखना भी उन्हें सेट करता है।


मेरे उपयोग के मामले में एक वेब प्रक्रिया (www-data) और एक cli प्रक्रिया (स्वयं के द्वारा) दोनों है, जो किसी फ़ाइल पर अनुमतियाँ सेट करना चाहते हैं। मैंने खुद को www-data समूह में जोड़ा, लेकिन यह पर्याप्त नहीं है।
दान

यहां तक ​​कि स्वामी / समूह को स्वयं में परिवर्तित करना: www-data मदद नहीं करता है। (मैं कोशिश करता अनुमति सेट करने के लिए कि, मैं इसे पर नियंत्रण नहीं हो तंत्र तैयार किया गया है नहीं किया है)
donquixote
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.