Perché TRAMP non può assumere l'host corrente per `sudo::`?

Aug 15 2020

Ci sono ragioni tecniche o casi d'uso per cui sudo::in TRAMP non è possibile utilizzare l'host più a destra a sinistra di esso, invece di localhost?

Quando lo faccio /ssh:[email protected]|sudo::/tmp/file, mi aspetto sudo::che utilizzi implicitamente [email protected].

Più in generale, quando più hop SSH sono concatenati insieme, come in /ssh:jumpbox.example.com|ssh:remote.example.com|sudo::/tmp/file, mi aspetto sudo::che utilizzi sempre l'host più a destra a sinistra di sudo::.

Mi aspetto questo perché dal punto di vista dell'interfaccia utente e dell'esperienza , a me questo sembra il comportamento ovviamente più intuitivo e più conveniente da eseguire.

Ma questo non accade. Invece, sudo::sembra usare sempre implicitamente root @ l'host locale.

Capisco che è così. Quello che non capisco è perché? Ci sono ragioni tecniche per cui l'implementazione di questo sarebbe difficile o casi d'uso comuni che non immagino sarebbero interrotti se fosse implementato?

Risposte

2 phils Aug 15 2020 at 09:21

Sarai felice di apprendere che nelle versioni più recenti di Tramp (incluse per la prima volta in Emacs 27.1) il ::case funzionerà nel modo desiderato, in modo tale da /ssh:you@remotehost|sudo::riutilizzare remotehostanziché il tuo nome host locale, quindi non finirai con una voce proxy errata.

Inoltre, simili a /ssh:you@remotehost|sudo:localhost:vengono rilevati e contrassegnati come errori dell'utente.

Naturalmente, se sei responsabile dell'utilizzo di una combinazione di versioni di Emacs, dovresti continuare a considerarlo ::non sicuro durante il multi-hopping in generale, per evitare potenziali incidenti.

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