- Se si utilizza sudo in una pipe ssh, ad esempio per eseguire un tar da remoto, sudo non ha un terminale per richiedere la password. Se si utilizza il flag -t per ssh, la password viene richiesta, ma il prompt verrà poi scritto nella pipe ssh, che verrà poi redirezionato nell'archivio tar.
- Per risolvere la cosa, si utilizza un programma esterno per la richiesta della password. Naturalmente deve essere attivo l'X11 forwarding per pter eseguire comandi X remoti dal server a cui ci si collega
- Sul server remoto installare:
sudo apt-get install ssh-askpass
SUDO_ASKPASS=/usr/bin/ssh-askpass sudo -A ls
- Dal client, eseguire il tar remoto usando al sintassi:
/usr/bin/ssh myserver.example.com \
"cd /; SUDO_ASKPASS=/usr/bin/ssh-askpass sudo -A tar --one-file-system -cvf - ." \
| gzip > myserver.tar.gz
Riferimenti