मैं vi। एडिटर का उपयोग करके source.list को संपादित करने की कोशिश कर रहा हूं, लेकिन फ़ाइल को सहेजते समय निम्न त्रुटि हो रही है:
/etc/apt/sources.list" E212: Can't open file for writing
मैं vi। एडिटर का उपयोग करके source.list को संपादित करने की कोशिश कर रहा हूं, लेकिन फ़ाइल को सहेजते समय निम्न त्रुटि हो रही है:
/etc/apt/sources.list" E212: Can't open file for writing
जवाबों:
For some reason the file you are writing to cannot be created or overwritten.
The reason could be that you do not have permission to write in the directory
or the file name is not valid.
विम में एक बिलिन हेल्प सिस्टम है। मैंने अभी उद्धृत किया है कि यह क्या कहता है :h E212
।
आप फ़ाइल को सुपरयुजर के रूप में संपादित करना चाह सकते हैं sudo vim FILE
। या यदि आप अपना मौजूदा सत्र नहीं छोड़ना चाहते (और अब उसके पास उचित अधिकार हैं), तो आप जारी कर सकते हैं:
:w !sudo tee % > /dev/null
जिससे फाइल सेव होगी।
HTH
इसके बजाय अपने सभी परिवर्तनों को खोने और sudo के साथ फिर से खोलने के लिए। उन परिवर्तनों को सहेजने का यह डेमो देखें:
एक मूल सेटअप बनाने के लिए एक समय सेटअप डेमो एक कम उपयोगकर्ता के लिए केवल फ़ाइल पढ़ें:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
पहले फ़ाइल को सामान्य उपयोगकर्ता के रूप में खोलें:
vi temp.txt
फिर फ़ाइल में कुछ बदलाव करें, यह आपको इसकी रीड ओनली चेतावनी देता है। इस कमांड का उपयोग करें।
:w !chmod 777 %
फिर फ़ाइल लिखें:
:wq!
अनुमतियाँ विस्तारित हैं, और फ़ाइल सहेजी गई है। आपको विस्मयादिबोधक बिंदु की आवश्यकता है क्योंकि आप एक रूट फ़ाइल को कम उपयोगकर्ता के रूप में संपादित कर रहे हैं।
उस आदेश का क्या वर्णन है:
: W का अर्थ है फ़ाइल लिखें। बैंग का अर्थ है शेल के रूप में व्याख्या करना शुरू करना। chmod का अर्थ है अनुमतियाँ बदलना, 777 का अर्थ है पूर्ण अनुमतियाँ हर जगह। प्रतिशत का अर्थ है वर्तमान फ़ाइल नाम।
यह परिवर्तन को लागू करता है। और यह पूछता है कि क्या आप फिर से लोड करना चाहते हैं। "ओ" के लिए "ओ" दबाएं। पुनः लोड न करें या आप अपने परिवर्तनों को खो देंगे।
मेरे लिए काफी सरल उपाय था। मैं एक फ़ोल्डर में एक फ़ाइल को संपादित / बनाने की कोशिश कर रहा था जो मौजूद नहीं था। जैसा कि मैं पहले से ही फ़ोल्डर में था, मैं एक फ़ाइल को संपादित / बनाने की कोशिश कर रहा था ।
अर्थात pwd folder/file
और टाइप कर रहा था
sudo vim folder/file
और बल्कि स्पष्ट रूप से यह फ़ोल्डर में फ़ोल्डर की तलाश में था और बचाने में विफल रहा।
या शायद आप एक आसानी से माउंट किए गए एफएस पर हैं
मैंने Zsolt का उल्लेख स्तर 2 में किया है, मुझे इनपुट:
:w !sudo tee % > /dev/null
और फिर मेरी स्थिति में, मैं अभी भी फ़ाइल को संशोधित नहीं कर सकता हूं, इसलिए इसने संकेत दिया कि "!"। इसलिए मैंने इनपुट किया
:q!
तब यह काम करता है
मेरे लिए vim चलाने से पहले रीड-ओनली से फाइल सिस्टम को बदलने का काम किया:
bash-3.2# mount -o remount rw /
उपयोगकर्ता को रूट में बदलें
sodu su -
आदि के लिए ब्राउज़ करें
vi sudoers
उपयोगकर्ता निजीकृत अनुभाग में रूट उपयोगकर्ता की तलाश करें। आप इसे पसंद करेंगे
root ALL=(ALL:ALL) ALL
अपने उपयोगकर्ता नाम के लिए एक ही प्रविष्टि करें। यदि आप उपयोगकर्ता नाम 'myuser' हैं, तो जोड़ें
myuser ALL=(ALL:ALL) ALL
ऐसा लगेगा
root ALL=(ALL:ALL) ALL
myuser ALL=(ALL:ALL) ALL
बचाओ। रूट यूजर को अपने यूजर में बदलें। अब वही कोशिश करें जहाँ आपको सूदखोरों का मुद्दा मिल रहा था
यह संभव हो सकता है कि जिस फ़ाइल तक आप पहुँच रहे हैं, उसमें पहले से ही उसी निर्देशिका में एक स्वैप प्रति (या स्वैप संस्करण) हो
इसलिए पहले देखें कि कोई छिपी हुई फ़ाइल मौजूद है या नहीं।
उदाहरण के लिए, निम्न प्रकार की फ़ाइलों के लिए देखें
.system.conf.swp
आज्ञा का उपयोग करके
ls -a
और फिर, इसका उपयोग करके हटाएं ...
rm .system.conf.swp
आमतौर पर, मैं सुपर उपयोगकर्ता विशेषाधिकारों का उपयोग शुरू करने की सलाह देता हूं ...
sudo su
मुझे यह त्रुटि तब मिली जब मैंने git rm
एक निर्देशिका में एक फ़ाइल पर उपयोग किया ।
मैं ~ / gitRepo / code / newFeature जैसी किसी चीज़ में था
NewFeature में केवल एक फ़ाइल थी। मैंने git rm
उस फ़ाइल पर किया, फिर vi का उपयोग करके एक नई फ़ाइल myNewFile बनाने की कोशिश की।
उबंटू ने मुझे अभी भी नई निर्देशिका निर्देशिका के अंदर होने के रूप में दिखाया लेकिन वास्तव git rm
में पूरी निर्देशिका को हटा दिया था।
मुझे vi से बाहर निकलना था, एक डायरेक्टरी को नेविगेट करना था और फिर न्यूफ़्रीचर डायरेक्टरी को फिर से बनाना था।