Como posso usar o Emacs tramp para ssh para um host remoto e editar um arquivo como outro usuário em uma base ad-hoc?

StackOverflow https://stackoverflow.com/questions/7832837

  •  27-10-2019
  •  | 
  •  

Pergunta

/ multi costumava funcionar para mim, agora acabou e estou frustrado.

O que eu quero fazer é, no meu mundo dos sonhos:

/ myuser @ remotehost: sudo: anotheruser: / some / path / to / file

... e o modo ido funciona.

O principal aqui é que 'myuser', 'remotehost' e 'anotheruser' são todos muito ad-hoc, eu uso uma grande variedade de hosts remotos, geralmente com diferentes usuários e sudo-ing para uma ampla gama de diferentesusuários.

O que preciso adicionar e como posso testá-lo sem recarregar o emacs repetidamente?

Foi útil?

Solução

A partir de este commit, o TRAMP é compatível com vários saltos ad-hoc novamente.

Grosso modo, você o usa assim:

/ssh:transituser@remotehost|sudo:user@remotehost:/some/file

Ainda não o fiz funcionar de forma fiável com ido-mode, o que é uma pena, mas é muito melhor do que nada!:-)

Outras dicas

O código a seguir pode ajudar:

  (defun find-file-as-root ()
    "Find a file as root."
    (interactive)
    (let* ((parsed (when (tramp-tramp-file-p default-directory)
                     (coerce (tramp-dissect-file-name default-directory)
                             'list)))
           (default-directory
             (if parsed
                 (apply 'tramp-make-tramp-file-name
                        (append '("sudo" "root") (cddr parsed)))
               (tramp-make-tramp-file-name "sudo" "root" "localhost"
                                           default-directory))))
      (call-interactively 'find-file)))

Eu o tinha em meu arquivo .emacs e parece vir daqui: http://atomized.org/2011/01/toggle-between-root-non-root-in-emacs-with-tramp/

Não usei muito, mas parece que é um passo na direção certa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top