zsh - espande completamente il percorso binario su <tab>


10

Nel mio attuale comportamento zsh, colpire la scheda dopo aver digitato "sudo" aggiunge solo uno spazio.

$ sudo ...

Quello che voglio davvero è che la scheda si espanda completamente sul percorso del binario che sta per eseguire quando premo la scheda, permettendomi di vedere cosa verrà eseguito:

$ /usr/bin/sudo ...

Lo scopo è quello di proteggere dal caso in cui l'utente locale sulla mia macchina viene violato, una voce aggiunta alla mia $PATHvariabile e "sudo" esegue un programma dannoso, che sarebbe una facile escalation alla radice.


Esiste un'altra soluzione che non prevede la scheda di rilegatura. Prepara il nome del comando con =e premi tab dopo il comando, e il nome del comando si espanderà nel percorso completo.
Mischa Arefiev,

Risposte:


7

Utilizzare il bindkeycomando incorporato per associare le chiavi ai comandi Zsh, in questo modo:

bindkey "^I" expand-cmd-path 

dov'è "^I"Tab. Puoi semplicemente rilasciare questa riga nel tuo ~/.zshrcfile. Attenzione: interromperà il completamento automatico degli argomenti.


Saluti! Chiaramente questa non è una soluzione ideale, quindi l'ho legata a Ctrl-O. Tuttavia, non ci sono molti file binari che accettano input di password (sudo, ssh, gpg, ...), quindi sono felice di premere Ctrl-O ogni volta che ne uso uno. Devo anche sottolineare che questo non risolve l'intero problema poiché chiunque abbia accesso al mio account può sovvertirlo tramite .zshrc o xmonad.hs, ma mi dà un po 'di strada lì!
Ali,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.