Por que o TRAMP não pode assumir o host atual para `sudo::`?

Aug 15 2020

Existem motivos técnicos ou casos de uso para o motivo pelo qual sudo::o TRAMP não pode usar o host mais à direita à esquerda dele, em vez do host local?

Quando o fizer /ssh:[email protected]|sudo::/tmp/file, esperaria que o sudo::usasse implicitamente [email protected].

De maneira mais geral, quando vários saltos SSH são encadeados, como em /ssh:jumpbox.example.com|ssh:remote.example.com|sudo::/tmp/file, eu esperaria que o sudo::sempre usasse o host mais à direita à esquerda do sudo::.

Espero isso porque , do ponto de vista da interface do usuário e da experiência , para mim, esse parece ser o comportamento obviamente mais intuitivo e conveniente para ele.

Mas isso não acontece. Em vez disso, sudo::parece sempre usar implicitamente root @ o host local.

Eu entendo que é assim. O que eu não entendo é por quê? Existem razões técnicas pelas quais a implementação disso seria difícil ou casos de uso comuns que não estou imaginando que seriam quebrados se isso fosse implementado?

Respostas

2 phils Aug 15 2020 at 09:21

Você ficará feliz em saber que em versões mais recentes do tramp (incluídas pela primeira vez no Emacs 27.1), o ::caso funcionará da maneira que você deseja, de modo que /ssh:you@remotehost|sudo::será reutilizado em remotehostvez de seu próprio nome de host local, para que você não termine com uma entrada de proxy ruim.

Além disso, os gostos de /ssh:you@remotehost|sudo:localhost:são detectados e sinalizados como erros do usuário.

Claro, se você está sujeito a usar uma mistura de versões do Emacs, você deve continuar a tratá-lo ::como inseguro ao fazer multi-hopping em geral, para evitar possíveis contratempos.

--https://stackoverflow.com/questions/2177687/open-file-via-ssh-and-sudo-with-emacs/16408592#comment94821206_16408592