Zdalna edycja sudo w Vimie

5

Jak mogę edytować plik zdalny za pomocą sudo?

Mam dostęp ssh / scp do zdalnego serwera i sudo bez hasła.

Chcę edytować /etc/some/filejako zdalny root, więc uruchomiłem:

  $ Vi scp://server/etc/some/file

To jednak nie działa, ponieważ nie mam wystarczających uprawnień. Jak mogę to zrobić?

datacompboy
źródło
2
Możesz zalogować się do zdalnego systemu za pomocą ssh remoteserveri na zdalnym serwerze wykonać sudo vim /etc/myfile. LUB jedno polecenie:ssh -t remoteserver sudo vi /etc/myfile
taro
@taro Co jeśli nie ma powłoki logowania na tym komputerze?
Szwajcarski
Jeśli nie ma loginu, może scp remote:/etc/myfile ~/myfileedytować vim ~/myfile, ale będzie problem z zastąpieniem zdalnego pliku zmienionym.
taro
2
Głównym celem jest użycie lokalnego vima (z moimi ustawieniami, mapą klawiszy itp.) Na pilocie. Tak, mogę zainstalować na każdym hoście moje ustawienia - ale w ten brzydki sposób.
Mam dokładnie ten sam problem i mam taką samą motywację do korzystania z jednego centralnego programu VIM
puk

Odpowiedzi:

0

Zgodnie z tą stroną wiki powinieneś podać swoją nazwę użytkownika i hosta w ten sposób:

vim scp://user@server//etc/some/file

I dzięki za wskazówkę, nie wiedziałem, że vim jest w stanie edytować pliki za pomocą scp.

KL-7
źródło
Niestety wygląda na to, że nie rozwiązuje problemu z uprawnieniami, chyba że zalogujesz się jako root.
KL-7
Problem z uprawnieniami nie jest problemem. Jeśli chcesz robić rzeczy na poziomie roota, po prostu logujesz się jako root, to dobra rzecz w mojej książce. Twoje rozwiązanie działa dobrze.
romainl
Powiedziałem już - to nie pozwala na dostęp do plików dostępnych w sudo.
1
Zdalna edycja w Vimie nie jest wykonywana na zdalnym serwerze. Plik jest pobierany lokalnie i przesyłany ponownie po zapisaniu
romainl,
2
Ja wiem Po prostu chcę znaleźć plugin / mod netrw, który pozwala nie tylko scp, ale ssh + sudo.
datacompboy
0

Aby rozwinąć mój komentarz…

Vim nie robi takich fantazyjnych rzeczy na zdalnym komputerze, bez względu na to, z którego konta korzystasz. Jest to ograniczone do pobierania i przesyłania: odczytanie pliku zdalnego oznacza pobranie pliku w tymczasowej lokalizacji na komputerze lokalnym, zapisanie pliku zdalnego oznacza przesłanie kopii lokalnej na komputer zdalny.

Oznacza to, że nie będziesz mógł tego zrobić sudoprzed edycją na zdalnym komputerze.

Jeśli konto użyte do zapisu / przesłania pliku nie jest rootem, nie możesz zastąpić pliku będącego własnością roota. To podstawowe zabezpieczenia systemu UNIX / serwera.

Zamiast tego przejdź sshna serwer i użyj tam Vima lub użyj fragmentu kodu KL-7 z odpowiednim kontem.

Zobacz :help netrw-xferi :help netrw-quickmapdodatkowe funkcje, takie jak lista katalogów. Nie sudowidać.

romainl
źródło
1
Możesz to zrobić w emacsie, jego trampolina jest w stanie pracować przez ssh + sudo. Po prostu szukam wtyczki, która implementuje to samo dla vima.
datacompboy