NEWS
Linux PC in Bereitschaft versetzen exec
-
Morgen Jungs,
Ich würde gerne meinen Linux PC über Blockly in den Ruhezustand setzen..
ioBroker läuft auf der Syno im Docker, in der Konsole klappt mein vorhaben schonmal wunderbarssh sigi@192.168.54.48 sudo /usr/sbin/pm-suspendDer Remote Rechner geht in die Bereitschaft. Nur über Blockly und exec will es noch nicht laufen
Ich hab mir ein relativ einfaches Blockly gebaut, wird der Datenpunkt auf wahr geswitcht soll der Rechner in die Bereitschaft geschickt werden..
"Erlaube Kommando exec" im JS Adapter habe ich gesetzt.
Hier mal ein Screenshot meines Blocklys
Laut Log wird der Befehl auch erfolgreich gesendet...
Hat zu meinem Problem jemand ne Idee? -
Morgen Jungs,
Ich würde gerne meinen Linux PC über Blockly in den Ruhezustand setzen..
ioBroker läuft auf der Syno im Docker, in der Konsole klappt mein vorhaben schonmal wunderbarssh sigi@192.168.54.48 sudo /usr/sbin/pm-suspendDer Remote Rechner geht in die Bereitschaft. Nur über Blockly und exec will es noch nicht laufen
Ich hab mir ein relativ einfaches Blockly gebaut, wird der Datenpunkt auf wahr geswitcht soll der Rechner in die Bereitschaft geschickt werden..
"Erlaube Kommando exec" im JS Adapter habe ich gesetzt.
Hier mal ein Screenshot meines Blocklys
Laut Log wird der Befehl auch erfolgreich gesendet...
Hat zu meinem Problem jemand ne Idee?@UncleB damit du das ergebnis/fehler siehst kannst du folgendes machen:
erzeuge eine variable die "result" heißt - wähle im exec-blockly mit ereignissen aus und setze direkt unter dem exec-blockly ein debug-blockly, die die variable result ausgibt - dann solltes du die antwort deines servers auf den befehl sehen

hast du schon mal ein sudo vor ssh probiert ?
-
sudo erfordert die Eingabe des Passwortes für root rechte. Das geht aber so nicht mit exec, da die möglichkeit dazu fehlt.
Am einfachsten wäre es die sudo Konfiguration für den Benutzer ioBroker so an zu passen das er den Befehl ohne Passwort eingabe ausführen kann.
Hier mal ein Beispiel für ein Bash Script.
-
sudo erfordert die Eingabe des Passwortes für root rechte. Das geht aber so nicht mit exec, da die möglichkeit dazu fehlt.
Am einfachsten wäre es die sudo Konfiguration für den Benutzer ioBroker so an zu passen das er den Befehl ohne Passwort eingabe ausführen kann.
Hier mal ein Beispiel für ein Bash Script.
da hat der jey-cee natürlich recht - hier ist noch ein thread, wo das behandelt wurde
https://forum.iobroker.net/post/267424 -
Danke fpr den Tipp live-in-sky, und sudo ist ja miteingebaut wie man im Screenshot sehen kann.
@Jey-Cee habe den Benutzer sudo ohne PW für die Befehle erlaubt.%sigi ALL=NOPASSWD: /sbin/shutdown, /sbin/reboot, /usr/sbin/pm-suspend, /usr/sbin/pm-hibernateUnd direkt aus der Konsole des Systems auf dem ioBroker läuft klappt das ja auch wunderbar..
Nur nicht über exec und Blockly..Aber ich sehe mir mal die Bash Methode an
-
Danke fpr den Tipp live-in-sky, und sudo ist ja miteingebaut wie man im Screenshot sehen kann.
@Jey-Cee habe den Benutzer sudo ohne PW für die Befehle erlaubt.%sigi ALL=NOPASSWD: /sbin/shutdown, /sbin/reboot, /usr/sbin/pm-suspend, /usr/sbin/pm-hibernateUnd direkt aus der Konsole des Systems auf dem ioBroker läuft klappt das ja auch wunderbar..
Nur nicht über exec und Blockly..Aber ich sehe mir mal die Bash Methode an
-
Danke fpr den Tipp live-in-sky, und sudo ist ja miteingebaut wie man im Screenshot sehen kann.
@Jey-Cee habe den Benutzer sudo ohne PW für die Befehle erlaubt.%sigi ALL=NOPASSWD: /sbin/shutdown, /sbin/reboot, /usr/sbin/pm-suspend, /usr/sbin/pm-hibernateUnd direkt aus der Konsole des Systems auf dem ioBroker läuft klappt das ja auch wunderbar..
Nur nicht über exec und Blockly..Aber ich sehe mir mal die Bash Methode an
@UncleB Wie loggt sich der User sigi auf dem entfernten Rechner ein?
Anhand des Befehls würde ich schätzen mit einem Zertifikat. Da besteht aber das Problem, dass ioBroker im Kontext des Usersiobrokerläuft, in welchem das Zertifikat nicht zugreifbar ist.
Wenn du auf der Konsole bist, dürftest du alsrootangemeldet sein?Wenn dem so ist:
- "Logge" dich als ioBroker ein:
sudo su -u iobroker -s /bin/bash - Installiere dort das Zertifikat für den User
sigi
- "Logge" dich als ioBroker ein: