मुझे यह प्रश्न मिला है जो बताता है कि vim का उपयोग करके किसी दूरस्थ फ़ाइल को कैसे संपादित किया जाए:
vim scp://user@myserver[:port]//path/to/file.txt
क्या sudo
रिमोट होस्ट पर रूट (के माध्यम से ) ऐसा करना संभव है ?
मैंने दूरस्थ होस्ट पर रूट अनुमतियों के साथ एक फ़ाइल बनाने की कोशिश की है और इसे ऊपर से संपादित किया है। विम सामग्री को देख सकता है, उसे संपादित कर सकता है, और इसे बचा सकता है लेकिन दूरस्थ होस्ट पर कुछ भी नहीं बदलता है (शायद इसलिए क्योंकि विम केवल अपनी अस्थायी फ़ाइल को सहेज रहा है और फिर उसे वापस देने के लिए scp को दे रहा है?)
मेरे उपयोगकर्ता द्वारा सहेजी गई फ़ाइल के साथ ऐसा करते समय यह अपेक्षित रूप से व्यवहार करता है।
मेरा SSH प्रमाणित करने के लिए एक कुंजी का उपयोग करता है और रिमोट सर्वर में मेरे sudo एक्सेस के लिए NOPASSWD है
यह प्रश्न समान है, लेकिन वोटों के साथ एकमात्र उत्तर कठपुतली का उपयोग करता है जो निश्चित रूप से वह नहीं है जो मैं उपयोग करना चाहता हूं।
संपादित करें: नीचे @ drewbenn की टिप्पणी के जवाब में, संपादन के लिए यहां मेरी पूरी प्रक्रिया है:
vim scp://nagios//tmp/notouch
/tmp/notouch
रूट के स्वामित्व वाली फ़ाइल कहां है, मुझे vim जल्दी दिखा
:!scp -q 'nagios:/tmp/notouch' '/tmp/vaHhwTl/0'
यह पाठ के साथ एक खाली काली स्क्रीन उत्पन्न करने के लिए स्वचालित रूप से चला जाता है
"/tmp/vaHhwTl/0" 1L, 12C
Press ENTER or type command to continue
एंटर दबाने पर मुझे फाइल को एडिट करने की सुविधा मिलती है
सहेजना शुरुआत के समान उसी तरह के scp कमांड को पॉप करता है, जो जल्दी और स्वचालित रूप से चला जाता है (समय में इसे पढ़ना मुश्किल है लेकिन scp और / tmp / ... फाइलें निश्चित रूप से हैं)
.vimrc
फ़ाइल के लिए मेरे स्थानीय संस्करण का उपयोग करना चाहता हूं
ssh -t host sudo vim file
?
ssh
सर्वर के लिए और वहाँ फ़ाइल को संपादित करें (के साथvisudo
, या जो भी)। किसी भी चीज के सुरक्षा निहितार्थ हैं।