सुपर-उपयोगकर्ता अधिकारों के साथ फ़ाइल संपादित करें


54

जब आपको सिस्टम फ़ाइलों को संपादित करना होता है, तो यह एक सामान्य स्थिति होती है जिसे आपने पहले एक सामान्य उपयोगकर्ता के साथ Emacs लॉन्च किया था, इसलिए फ़ाइल राइट-प्रोटेक्टेड होगी। रूट विशेषाधिकार प्राप्त करने के लिए मैं क्या कर सकता हूं? मेरा मतलब है कि कुछ ऐसा ही M-x sudoहै।

मैं Emacs को सुपर-यूजर के रूप में लॉन्च नहीं करना चाहता और मैं इसे छोड़ना नहीं चाहता।

जवाबों:


59

उपयोग C-x C-fऔर टाइप करें /su::/etc/hostnameया /sudo::/etc/hostnameलागू के रूप में।

यह TRAMP पैकेज का उपयोग करता है , जिसे Emacs के साथ वितरित किया जाता है। यह पैकेज दूरस्थ फ़ाइलों तक पहुंच प्रदान करता है, और आम तौर पर उन फाइलों तक पहुंचता है जो Emacs सीधे नहीं खोल सकते हैं।


1
धन्यवाद। का अर्थ क्या है ::?
स्मॉनफ

7
The: एक विभाजक है; हम यह संकेत करने के लिए दूसरी बार आपूर्ति करते हैं कि कोई और तर्क नहीं है। आप कर सकते हैं /su:otheruser@localhost:, उदाहरण के लिए।
आर्टागनन

5
/sudo::के लिए आवारा आशुलिपि हैsudo:root@<hostname>:
फिल्स

9

find-fileट्रम्प के साथ प्रयोग करें । प्रॉम्प्ट में /sudo::/etc/ssh/ssh_configsudo और एक उपधारा का उपयोग कर उस फ़ाइल को रूट विशेषाधिकारों के साथ खोलें। जब सूडो का पहली बार उपयोग किया जाता है तो यह एक पासवर्ड के लिए संकेत देगा, लेकिन जब तक कि सत्र बंद नहीं हो जाता तब तक आप मौजूदा /sudo::आदेश के साथ प्रीफ़िक्स करके उन अनुमतियों के साथ किसी भी फ़ाइल को संपादित कर सकते हैं ।

अधिक जानकारी के लिए http://www.gnu.org/software/tramp/ देखें ।


3

यदि आप ivyपैकेज का उपयोग करते हैं , और counsel-find-fileप्रतिस्थापित करने के लिए कॉन्फ़िगर किया है find-file, तो आपके लिए पहले से कॉन्फ़िगर की गई "आइवीवाई" में से एक फ़ाइल को रूट के रूप में संपादित करना है। hydraउस क्रिया के लिए डिफ़ॉल्ट कीस्ट्रोक है r


2

आज कई पैकेज हैं जो इस समस्या को हल करते हैं (2018 के अनुसार)। उनमें से कुछ हैं:

  • sudo-edit, पहले से खुली हुई केवल-पढ़ने वाली फ़ाइल पर संपादन अधिकार स्विच करने की अनुमति देता है। बस M-x sudoएक पासवर्ड टाइप करें और आपका काम हो गया। इस एक के उपयोग के कई वर्षों के बाद, मुझे लगता है कि यह इस जरूरत के लिए अधिक सुविधाजनक है। sudo-editआपको किसी भी उपयोगकर्ता के रूप में एक फ़ाइल खोलने की अनुमति देता है, लेकिन यह sudo पर डिफ़ॉल्ट है यदि कोई भी प्रदान नहीं किया गया है।
  • dired-toggle-sudo। यह पहला पैकेज्ड सॉल्यूशन था जो मुझे यह सवाल पूछने के बाद मिला। यह Dired ओरिएंटेड है, इसलिए यदि आप फ़ाइल ओरिएंटेड वर्जन को पसंद करते हैं, तो इस सूची की पहली बुलेट देखें।
  • मेलपा पर अन्य समाधान मौजूद हैं

2

यदि आप Helm का उपयोग करते हैं। आपको किसी भी बाहरी पैकेज / अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं है। यह बॉक्स से बाहर काम करता है।

अंदर helm-find-filesआप किसके लिए find file as rootबाध्य कर सकते हैं C-c r। यह helm-find-filesसत्र में फ़ाइलों या निर्देशिकाओं के लिए काम करता है ।

अगर आप रूट फाइल / डायर खोलने के लिए हर बार पासवर्ड नहीं लिखना चाहते हैं। निम्नलिखित लाइन को अपने पास रखें~/.authinfo.gpg

machine localhost port sudo login root password xxxxxx
machine your_machine_name port sudo login root password xxxxx

स्रोत

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