क्यों एक अस्थायी निर्देशिका के लिए sudoedit लेखन है?


10

मैंने sudoeditएक फ़ाइल बनाई:

 $ sudoedit /etc/systemd/system/apache2.service

लेकिन जब मैं फ़ाइल को सहेजने गया, तो उसने इसे एक अस्थायी निर्देशिका (/ var / temp / blahblah) में लिखा। क्या हो रहा है? इसे सिस्टम निर्देशिका में सहेज क्यों नहीं रहा है?

जवाबों:


22

इसका sudoeditउद्देश्य उपयोगकर्ताओं को उन फ़ाइलों को संपादित करने की अनुमति देना है, जिन्हें वे अन्यथा अनपेक्षित संपादक को चलाने के दौरान अनुमति नहीं देंगे। ऐसा करने के लिए, sudoeditफ़ाइल को एक अस्थायी स्थान पर संपादित करने के लिए कॉपी किया जाता है, यह अनुरोध करने वाले उपयोगकर्ता द्वारा लिखने योग्य बनाता है, और इसे कॉन्फ़िगर संपादक में खोलता है। इसलिए संपादक एक अस्थायी निर्देशिका में एक असंबंधित फ़ाइल नाम दिखाता है। जब संपादक बाहर निकलता है, तो sudoeditजांचता है कि क्या वास्तव में कोई बदलाव किए गए थे, और यदि आवश्यक हो तो परिवर्तित अस्थायी फ़ाइल को उसके मूल स्थान पर वापस कॉपी कर दिया जाए।


IIRC कुछ संपादकों ने यह सुनिश्चित करने के लिए बुनियादी स्वच्छता जांच भी की है कि कोई कंप्यूटर-ब्रोकिंग परिवर्तन नहीं किए गए थे, लेकिन मुझे यकीन नहीं है कि यह कितना आम है।
निधि मोनिका का मुकदमा

1
@ नीचार्टली: सामान्य मामले में ऐसा करना कठिन है, क्योंकि आपके कंप्यूटर को ईंट बनाने के लिए बहुत सारे तरीके हैं। यह आवेदन विशिष्ट हो जाता है, उदाहरण के visudoलिए /etc/sudoers
केविन

@ केविन ओह, व्हाट्स, मुझे लगता है कि मैं इसके visudoलिए उलझन में हूं sudoedit। मुझे पता था visudoकि यह सुनिश्चित करने के लिए किया था। इसे साफ करने के लिए धन्यवाद!
निधि मोनिका का मुकदमा

1

यह मैनपेज में अच्छी तरह से समझाया गया हैsudo । का वर्णन -e(जो sudoeditसमकक्ष है) कहता है:

-e

-e(संपादित करें) विकल्प है कि इंगित करता है, एक आदेश चलाकर के बजाय, उपयोगकर्ता संपादित एक या अधिक फ़ाइलों चाहती है। एक कमांड के बदले में, sudoeditसुरक्षा नीति से परामर्श करते समय स्ट्रिंग " " का उपयोग किया जाता है। यदि उपयोगकर्ता नीति द्वारा अधिकृत है, तो निम्न कदम उठाए गए हैं:

  1. अस्थायी प्रतियाँ उन फ़ाइलों से बनी होती हैं, जिन्हें स्वामी के द्वारा आमंत्रित उपयोगकर्ता के साथ संपादित किया जाता है।
  2. पॉलिसी द्वारा निर्दिष्ट संपादक अस्थायी फ़ाइलों को संपादित करने के लिए चलाया जाता है। sudoersनीति का उपयोग करता है SUDO_EDITOR, VISUALऔर EDITORवातावरण चर (इसी क्रम में)। में से कोई भी अगर SUDO_EDITOR, VISUALया EDITORस्थापित कर रहे हैं, पहले संपादक में सूचीबद्ध कार्यक्रम sudoers(5)विकल्प प्रयोग किया जाता है।
  3. यदि उन्हें संशोधित किया गया है, तो अस्थायी फ़ाइलों को उनके मूल स्थान पर वापस कॉपी किया जाता है और अस्थायी संस्करण हटा दिए जाते हैं।

यदि निर्दिष्ट फ़ाइल मौजूद नहीं है, तो इसे बनाया जाएगा। ध्यान दें कि द्वारा संचालित अधिकांश कमांडों के विपरीत sudo, संपादक का उपयोग उपयोगकर्ता के पर्यावरण को अनमॉडिफाइड करने के साथ किया जाता है। यदि, किसी कारण से, sudoअपने संपादित संस्करण के साथ एक फ़ाइल को अपडेट करने में असमर्थ है, तो उपयोगकर्ता को एक चेतावनी मिलेगी और संपादित प्रतिलिपि एक अस्थायी फ़ाइल में रहेगी।

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

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