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/file
jako 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ć?
ssh remoteserver
i na zdalnym serwerze wykonaćsudo vim /etc/myfile
. LUB jedno polecenie:ssh -t remoteserver sudo vi /etc/myfile
scp remote:/etc/myfile ~/myfile
edytowaćvim ~/myfile
, ale będzie problem z zastąpieniem zdalnego pliku zmienionym.Odpowiedzi:
Zgodnie z tą stroną wiki powinieneś podać swoją nazwę użytkownika i hosta w ten sposób:
I dzięki za wskazówkę, nie wiedziałem, że vim jest w stanie edytować pliki za pomocą scp.
źródło
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ć
sudo
przed 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ź
ssh
na serwer i użyj tam Vima lub użyj fragmentu kodu KL-7 z odpowiednim kontem.Zobacz
:help netrw-xfer
i:help netrw-quickmap
dodatkowe funkcje, takie jak lista katalogów. Niesudo
widać.źródło