Como posso editar um arquivo remoto com o sudo?
Eu tenho acesso ssh / scp ao servidor remoto e sudo sem senha nele.
Eu quero editar /etc/some/file
como raiz remota, então eu corri:
$ Vi scp://server/etc/some/file
Não funciona, no entanto, citando não tenho permissões suficientes. Como posso fazer isso?
ssh remoteserver
, e no servidor remoto executarsudo vim /etc/myfile
. OU um comando:ssh -t remoteserver sudo vi /etc/myfile
scp remote:/etc/myfile ~/myfile
editevim ~/myfile
, mas será um problema para substituir o arquivo remoto por um alterado.Respostas:
De acordo esta página da wiki você deve especificar seu nome de usuário e host assim:
E obrigado pela dica, eu não sabia que o vim é capaz de editar arquivos via scp.
fonte
Para expandir meu comentário ...
O Vim não faz esse tipo de coisa extravagante na máquina remota, não importa a conta que você usa. Limita-se ao download e upload: ler um arquivo remoto significa baixar o arquivo em um local temporário em sua máquina local, escrever um arquivo remoto significa fazer o upload da cópia local para a máquina remota.
Isso significa que você não será capaz de
sudo
antes de editar na máquina remota.Se a conta usada para gravar / carregar o arquivo não for root, você não poderá sobrescrever o arquivo de propriedade da raiz. Essa é a segurança básica do UNIX / servidor.
Em vez de,
ssh
no servidor e use o Vim ou use o snippet do KL-7 com a conta certa.Vejo
:help netrw-xfer
e:help netrw-quickmap
para recursos adicionais, como listagem de diretórios. Nãosudo
discernimento.fonte