मुझे सिस्टम कॉन्फ़िगरेशन फ़ाइलों को संपादित करने की अनुमति कैसे मिलती है?


47

मैं रूट सिस्टम में कॉन्फिग फाइल को एडिट और सेव नहीं कर सकता (जैसे:) /etc/dhcp/dhcpd.config; यह सिर्फ "अनुमति से इनकार" या पाठ संपादक में सेव ऑप्शन को ब्लॉक करने की बात कहता है।

मुझे पूरा यकीन है कि मैं एक रूट उपयोगकर्ता हूं, लेकिन मैं यह कैसे सुनिश्चित करूं? यदि मैं एक रूट उपयोगकर्ता हूं, तो मैं इसे कैसे ठीक करूं?

जवाबों:


42

आप किस टेक्स्ट एडिटर का उपयोग कर रहे हैं? यदि आप एक रूट उपयोगकर्ता हैं और पासवर्ड जानते हैं, तो (टर्मिनल में) प्रयास करें:

  • sudoedit /etc/dhcp/dhcpd.configयदि आप टर्मिनल-आधारित संपादक का उपयोग कर रहे हैं जैसे कि nanoया सर्वर में ssh'ing।
  • gksudo <text editor here> /etc/dhcp/dhcpd.config यदि आप GUI- आधारित संपादक का उपयोग कर रहे हैं जैसे gedit

किसी भी स्थिति में, अनुरोध करने पर आपको पहले अपना रूट पासवर्ड प्रदान करना होगा।

Ubuntu 14.04 में, gksudoडिफ़ॉल्ट रूप से स्थापित नहीं है। आपको इसे प्राप्त करने के लिए gksuपैकेज (या तो सॉफ्टवेयर सेंटर या इसके माध्यम से sudo apt-get install gksu) को स्थापित करना होगा।

उबंटू 17.10 में, पारंपरिक X सर्वर के बजाय वेलैंड डिफ़ॉल्ट है, और रूट के रूप में ग्राफिकल संपादकों को चलाना मुश्किल है। देखें कि वेक्सू के साथ सुडोकू कार्य के साथ gksu / gksudo या ग्राफ़िकल एप्लिकेशन लॉन्च क्यों नहीं करते? ब्योरा हेतु।

उबंटू 18.04 gksudoमें, आधिकारिक रिपॉजिटरी में उपलब्ध नहीं है। का प्रयोग करें sudo -H <text editor>बजाय, या प्रोटोकॉल :admin://

gedit admin:///etc/dhcp/dhcpd.config

15

यदि आप टर्मिनल का उपयोग नहीं करना चाहते हैं, तो आप GUI प्रोग्राम को रूट के रूप में लागू कर सकते हैं (यह उदाहरण Gedit के लिए है):

  1. हिट Alt+ F2भागो संवाद को लाने के।
  2. gksudoअपने प्रोग्राम के निष्पादन योग्य नाम (जो GUI द्वारा प्रदर्शित नाम से भिन्न हो सकता है) के बाद टाइप करें। उदाहरण के लिए:

    gksudo gedit
    
  3. मारो Enter

10

मैं एक ऐसे मामले के बारे में नहीं सोच सकता जहां रूट मिलेगा permission denied

12.04 में आप इसे इस तरह से कर सकते हैं: alt+ f2और gksudoइस तरह दिखाई देने वाले बॉक्स में दर्ज करें:

F2 संवाद

आपको इस तरह एक बॉक्स मिलता है और दर्ज करें geditऔर क्लिक करें ok:

Run डायलॉग में gedit टाइप करें

क्लिक करें Open:

Gedit के अंदर टैब खोलें

बस फ़ाइल को ब्राउज़ करें:

खुली फ़ाइलें संवाद

किया हुआ

चेतावनी: एक कारण के लिए एक सुपर-उपयोगकर्ता / रूट है। ऐसा नहीं है कि आप गलती से कुछ बुरा या संरचना से बाहर कुछ गलती से डाल नहीं है। आपको अत्यधिक सावधान रहना चाहिए कि जो भी आप रूट के रूप में संपादित करते हैं वह सही फाइल है जिसे आप संपादित करने के लिए कहते हैं और यह कि आपका सिंटैक्स सही है। यदि संपादन के लिए अन्य उपकरण उपलब्ध हैं, तो इसका उपयोग करने की अनुशंसा की जाती है। उदाहरण के लिए, मैन्युअल रूप से संपादन के बजाय visudo टर्मिनल कमांड का उपयोग करें /etc/sudoers

कुछ फाइलें जो गड़बड़ हो सकती हैं, उनसे उबरना आसान है। अन्य अपेक्षाकृत जटिल हैं या आपको रिकवरी कंसोल और बहुत सारी कमांड लाइनों का उपयोग करना होगा।

हाँ रिकवरी कंसोल कमांड लाइन इस से भी थोड़ा डरावना लगता है । बस थोड़ा सावधान रहें।


आपको इसे 13.04 और नए के लिए अपडेट करने की आवश्यकता हो सकती है। Gksu / gksudo से संबंधित कुछ चीजें बदल गई हैं (सुनिश्चित नहीं हैं कि आपके उत्तर पर लागू होती है या नहीं)।
सेठ

यह मेरी समझ का सुडो है, अब जादुई रूप से पर्यावरण चर और gksu / gksudo का निर्यात करता है या चले गए हैं। मैंने हालांकि जाँच नहीं की है।
रोबॉटहैंस

rootयदि फ़ाइल का उपयोग chattrकेवल पढ़ने के लिए किया जाता है या कभी-कभी डिस्क को अपरिवर्तनीय रूप से सेट किया गया है, तो अनुमति अस्वीकृत हो सकती है ।
चाई टी। रेक्स

6

आप परीक्षण कर सकते हैं कि क्या आपका वर्तमान शेल कुछ अलग तरीकों से जड़ के रूप में चल रहा है

~/ > whoami
paul
~/ > sudo whoami
root
~/ > id
uid=1000(paul) gid=1000(paul) groups=1000(devs),4(adm),20(dialout),24(cdrom),…
~/ > sudo id
uid=0(root) gid=0(root) group=0(root)

अन्य उत्तर मूल विशेषाधिकार को बढ़ाने के अच्छे तरीके देते हैं, इसलिए मैं उन बातों को नहीं दोहराऊंगा। मान लें कि आप कर रहे हैं जड़ और आप अभी भी फ़ाइल को संपादित नहीं कर सकते हैं /etc/dhcp/dhcpd.config- तो बहुत शायद किसी ऐसे व्यक्ति अथवा कार्यक्रम का इस्तेमाल किया गया chattrफ़ाइल अपरिवर्तनीय बनाने के लिए कार्यक्रम।

से chattr मैनुअल पृष्ठ :

'I' विशेषता वाली फ़ाइल को संशोधित नहीं किया जा सकता है: इसे हटाया या नाम बदला नहीं जा सकता है, इस फ़ाइल का कोई लिंक नहीं बनाया जा सकता है और न ही फ़ाइल में कोई डेटा लिखा जा सकता है। केवल सुपरयूज़र या CAP_LINUX_IMMUTABLEक्षमता रखने वाली प्रक्रिया ही इस विशेषता को निर्धारित या साफ़ कर सकती है।

आप उपयोग करके पता कर सकते हैं lsattr

lsattr /etc/dhcp/dhcpd.config

यदि वास्तव में यह अपरिवर्तनीय है तो आप इसे इस तरह बंद कर सकते हैं:

chattr -i /etc/dhcp/dhcpd.config

3

यदि आप Ubuntu 17.04 या उच्चतर का उपयोग कर रहे हैं , तो यह gvfs व्यवस्थापक बैकएंड का उपयोग करने के लिए अनुशंसित है । बस admin://उस पूर्ण फ़ाइलपाथ के सामने जोड़ें , जिसे आप किसी पाठ संपादक या फ़ाइलें ऐप्स जैसे एप्लिकेशन में खोलना चाहते हैं

उदाहरण के लिए, बूट सेटिंग बदलने के लिए, खोलें

admin:///etc/default/grub

यदि आप डिफ़ॉल्ट वेलैंड के साथ उबंटू 17.10 का उपयोग कर रहे हैं, sudoऔर gksuजैसा कि पुराने उत्तर में बताया गया है, तो यह काम नहीं करेगा ।


2

अपने पसंदीदा पाठ संपादक का उपयोग करें

आप पर्यावरण चर 1 के माध्यम से अपने पसंदीदा (चित्रमय!) पाठ संपादक के साथ sudo -eइसका उपयोग कर सकते हैं या इसका उपनाम :sudoeditVISUAL

VISUAL=gedit sudo -e /path/to/some-config-file.cfg

के बराबर है

VISUAL=gedit sudoedit /path/to/some-config-file.cfg

बेशक आप किसी अन्य संपादक है कि आप की तरह, जैसे उपयोग कर सकते हैं leafpad, kateया subl

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

  • GEdit उपयोग के लिए VISUAL='gedit -s'
  • केट उपयोग के लिए VISUAL='kate -n'

लाभ

  • अतिरिक्त और / या पदावनत अनुप्रयोगों की आवश्यकता नहीं है।
  • सुरक्षा नीति परिवर्तनों की आवश्यकता नहीं है, जैसे pkexec(जिसके लिए आपको फ़ाइलों को संपादित करने की आवश्यकता होगी ... सुपर-उपयोगकर्ता के रूप में, सटीक बात यह उत्तर हल करने की कोशिश कर रहा है)।
  • एलिवेटेड विशेषाधिकारों के साथ संभावित असुरक्षित अनुप्रयोगों के निष्पादन की आवश्यकता नहीं है।
  • वर्तमान उपयोगकर्ता के एप्लिकेशन कॉन्फ़िगरेशन का उपयोग करता है, लेकिन कॉन्फ़िगरेशन फ़ाइल एक्सेस अनुमतियों के साथ गड़बड़ करना sudo -Hआदि।
  • उपयोगकर्ता के उपयोगकर्ता कॉन्फ़िगरेशन डेटा पर वापस नहीं आता है, rootजो देख और समझ नहीं सकता है या व्यवहार कर सकता है।

नुकसान

  • आपको एक छोटी सी नई कमांड सीखने की जरूरत है।

1 EDITOR या SUDO_EDITORकाम भी करें, लेकिन कम प्राथमिकता लें या क्रमशः अधिक विशिष्ट हैं। देखें मैन्युअल पृष्ठ जानकारी के लिए।


0

इसका उपयोग cp /etc/dhcp/dhcpd.config /$HOME/dhcpd.config.backup और चलाने के लिए सुरक्षित होनाgksu gedit /etc/dhcp/dhcpd.config

geditअपनी पसंद के संपादक से बदलें

आप इस तरह एक संकेत मिलेगा

पासवर्ड शीघ्र

यहां अपना पासवर्ड डालें।

एक नई विंडो खुलती है और आप अपने कॉन्फिग को वहां एडिट कर सकते हैं।

अगर कुछ गलत हो जाता है, तो आप इसे अपने बैकअप से होम फोल्डर में पुनर्स्थापित कर सकते हैं।

लिनक्स कैसे अनुमति देता है, इसके कारण आपको "अनुमति अस्वीकृत" मिलती है।

$HOMEफ़ोल्डर में कुछ भी उपयोगकर्ता का है, जबकि लगभग कुछ भी रूट का है।

जिस /etc/dhcp/dhcpd.confफ़ाइल को आप एक्सेस करने का प्रयास कर रहे /etc/हैं वह रूट से संबंधित है , और अधिकांश फाइलें सुरक्षा कारणों से डिफ़ॉल्ट रूप से रूट की हैं।

आप अभी भी अपनी अनुमतियों को बढ़ाकर इस फ़ाइल को संपादित कर सकते हैं।

ऐसा करने के लिए आपके पास कई तरीके हैं:

  • उपयोग suजो स्विच उपयोगकर्ता के लिए खड़ा है। किसी भी विशेषता के बिना, यह रूट खाते पर स्विच करने के लिए एक कमांड के रूप में कार्य करता है, लेकिन आपको उस उपयोगकर्ता के पासवर्ड को दर्ज करने की आवश्यकता है जिसे आप स्विच कर रहे हैं और चूंकि Ubuntu पर डिफ़ॉल्ट रूप से रूट का कोई पासवर्ड नहीं है (प्रभावी रूप से रूट खाते को अक्षम करना) , यह तब तक काम नहीं करेगा जब तक आपने रूट के लिए पासवर्ड सेट नहीं किया है, जिसकी अनुशंसा नहीं की गई है।

  • का उपयोग करके sudoजो केवल एक आदेश के लिए आपकी अनुमति को बढ़ाता है। यह आमतौर पर केवल कमांड लाइन ऐप जैसे कि CLI टेक्स्ट एडिटर जैसे vim, nanoआदि के लिए उपयोग किया जाता है

  • का उपयोग करके gksuजो केवल एक आदेश के लिए आपकी अनुमति को बढ़ाता है, लेकिन इसके विपरीत sudoजीयूआई पाठ संपादकों जैसे ग्राफिकल कार्यक्रमों के लिए उपयोग किया जाता है gedit। यह एक पासवर्ड के प्रवेश की सुविधा के लिए एक ग्राफिकल प्रॉम्प्ट का उपयोग करता है।


0
sudo < editor > < filelocation >

उदाहरण के लिए:

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