SSH2SessionMBS - sudo reboot, aber wie?

Mir gelingt es durch Herumspielen mit dem Beispiel aus den MBS-Plugins eine SSH-Verbindung z.B. zu einer Synology oder einem Raspi aufzubauen und “Nicht privilegierte” Kommandos auszuführen, z.B. “ls” (und das Resultat zu lesen) …

Wie gehe ich aber damit um, dass manche Kommandos erneut nach dem Passwort fragen, nicht nur beim Eröffnen der Session, z.B. “sudo reboot”? Neuer “Channel”?

Maybe this?

echo myPassword | sudo -S reboot

admin@ESB-Syno2:~$ echo !esbxxxxx | sudo -S reboot
-sh: !esbxxxxx: event not found
admin@ESB-Syno2:~$

Das Sonderzeichen (!) am Anfang des Passwortes dürfte vermutlich störend wirken. Also entweder Passwort ändern oder versuchsweise mal in einfache Anführungszeichen (') fassen…

This is how I have it in my code

const commandline = "/bin/echo mysudopassword | /usr/bin/sudo -S /home/dirk/resetfiles.sh"
dim channel as SSH2ChannelMBS = session.OpenSession
channel.SetBlocking false
channel.execute commandline

This then executes whatever is in the .sh file with sudo rights.

2 Likes

“Das Sonderzeichen (!) am Anfang des Passwortes dürfte vermutlich störend wirken. Also entweder Passwort ändern oder versuchsweise mal in einfache Anführungszeichen (') fassen…”

YESS! Danke, genau das war es!

1 Like

@ Dirk: Thanks for your answer. But unfortunately I don’t have the right script on the goals.

1 Like