Я знайшов це питання, яке пояснює, як редагувати віддалений файл за допомогою vim за допомогою:
vim scp://user@myserver[:port]//path/to/file.txt
Чи можна це зробити як root (через sudo
) на віддаленому хості?
Я спробував створити файл з кореневими правами на віддаленому хості та відредагувати його вище. Vim може бачити вміст, може редагувати його та зберігати його, але нічого не змінюється на віддаленому хості (можливо, тому, що vim просто зберігає свій тимчасовий файл, а потім надає його scp для повернення?)
Коли це робиться із збереженим моїм файлом файлом, він поводиться так, як очікувалося.
Мій SSH використовує ключ для автентифікації, а віддалений сервер має NOPASSWD для мого доступу до sudo
Це питання схоже, але єдиною відповіддю з голосами використовується маріонетка, яка точно не те, що я хочу використовувати.
Редагувати: У відповідь на коментар @ drewbenn нижче, ось мій повний процес редагування:
vim scp://nagios//tmp/notouch
Де /tmp/notouch
файл належить root, я бачу, що vim швидко показує
:!scp -q 'nagios:/tmp/notouch' '/tmp/vaHhwTl/0'
Це автоматично відходить, щоб отримати порожній чорний екран з текстом
"/tmp/vaHhwTl/0" 1L, 12C
Press ENTER or type command to continue
Натискання клавіші Enter дозволяє мені редагувати файл
Збереження спливає той самий тип команди scp, що і початок, який швидко і автоматично відходить (важко його прочитати в часі, але файли scp та / tmp / ... точно є)
.vimrc
файлу
ssh -t host sudo vim file
?
ssh
на сервері та відредагуйте файл (тамvisudo
, чи що завгодно). Все інше має наслідки для безпеки.