Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript Exec Befehle auf Client (NAS) ausführen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    9
    1
    89

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

JavaScript Exec Befehle auf Client (NAS) ausführen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
blocklyjavascript
16 Beiträge 5 Kommentatoren 1.9k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • P Offline
    P Offline
    Pandia
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich habe ioBroker neu aufgesetzt. Basis OS ist Raspbian-Buster-Desktop. Über ioBroker/Java-Script sollen Befehle an QNAP NAS (pegasus)geschickt.

    Die Authentifizierung (pi->NAS) erfolgt über Public Key. Das folgende Kommando auf der Konsole wird ordnungsgemäß ausgeführt:

    pi@ioBroker1:~ $ ssh pegasus l- admin sudo /etc/init.d/container-station.sh start

    Die Kommandos sollten jedoch aus einem ioBroker Java-Script gestartet werden. Erlaube das Kommando „exec“ im Java-Adapter ist aktiviert. Das Script korrekt ausgeführt.

    Log Protokoll:

    javascript.0 2019-11-09 12:13:47.235 info script.js.common.programs.QnapServices: exec: ssh pegasus -l admin sudo /etc/init.d/container-station.sh start

    Der Befehl kommt jedoch nicht auf dem NAS an. Auf meiner früheren Installation hat es bereits funktioniert.

    Worin unterscheidet sich die Ausführung des Kommandos auf der Konsole zum Java-Script-Exec? Habe ich etwas vergessen? Vielen Dank im Voraus.

    GlasfaserG M 2 Antworten Letzte Antwort
    0
    • P Pandia

      Hallo zusammen,

      ich habe ioBroker neu aufgesetzt. Basis OS ist Raspbian-Buster-Desktop. Über ioBroker/Java-Script sollen Befehle an QNAP NAS (pegasus)geschickt.

      Die Authentifizierung (pi->NAS) erfolgt über Public Key. Das folgende Kommando auf der Konsole wird ordnungsgemäß ausgeführt:

      pi@ioBroker1:~ $ ssh pegasus l- admin sudo /etc/init.d/container-station.sh start

      Die Kommandos sollten jedoch aus einem ioBroker Java-Script gestartet werden. Erlaube das Kommando „exec“ im Java-Adapter ist aktiviert. Das Script korrekt ausgeführt.

      Log Protokoll:

      javascript.0 2019-11-09 12:13:47.235 info script.js.common.programs.QnapServices: exec: ssh pegasus -l admin sudo /etc/init.d/container-station.sh start

      Der Befehl kommt jedoch nicht auf dem NAS an. Auf meiner früheren Installation hat es bereits funktioniert.

      Worin unterscheidet sich die Ausführung des Kommandos auf der Konsole zum Java-Script-Exec? Habe ich etwas vergessen? Vielen Dank im Voraus.

      GlasfaserG Offline
      GlasfaserG Offline
      Glasfaser
      schrieb am zuletzt editiert von
      #2

      @Pandia

      Kannst du das nicht mit diesem CodeSnipsel ausführen

      PI3 durch ioBroker herunterfahren

      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

      1 Antwort Letzte Antwort
      0
      • P Pandia

        Hallo zusammen,

        ich habe ioBroker neu aufgesetzt. Basis OS ist Raspbian-Buster-Desktop. Über ioBroker/Java-Script sollen Befehle an QNAP NAS (pegasus)geschickt.

        Die Authentifizierung (pi->NAS) erfolgt über Public Key. Das folgende Kommando auf der Konsole wird ordnungsgemäß ausgeführt:

        pi@ioBroker1:~ $ ssh pegasus l- admin sudo /etc/init.d/container-station.sh start

        Die Kommandos sollten jedoch aus einem ioBroker Java-Script gestartet werden. Erlaube das Kommando „exec“ im Java-Adapter ist aktiviert. Das Script korrekt ausgeführt.

        Log Protokoll:

        javascript.0 2019-11-09 12:13:47.235 info script.js.common.programs.QnapServices: exec: ssh pegasus -l admin sudo /etc/init.d/container-station.sh start

        Der Befehl kommt jedoch nicht auf dem NAS an. Auf meiner früheren Installation hat es bereits funktioniert.

        Worin unterscheidet sich die Ausführung des Kommandos auf der Konsole zum Java-Script-Exec? Habe ich etwas vergessen? Vielen Dank im Voraus.

        M Offline
        M Offline
        Marty56
        schrieb am zuletzt editiert von
        #3

        @Pandia Hast Du vielleicht die Rechte mit dem Fix Tool geändert. Danach funktionieren alle ssh Befehle natürlich nicht mehr. Man kann das ändern, in dem man das sudoers File nach dem Fix Tool Durchlauf ändert.

        HW:NUC (16 GB Ram)
        OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          Pandia
          schrieb am zuletzt editiert von
          #4

          Kurzer Zwischenstand: Ich konnte den Fehler soweit eingrenzen und eine Umgehungslösung schaffen. Hintergrund: Die ssh-Befehle werden vom User iobroker ausgeführt. Dieser verfügt bei neuen Installationen nicht mehr über die entsprechenden Rechte. Gleiches gilt auch, wenn das Fixer-Skript ausgeführt wurde.
          Als Umgehungslösungen habe ich jetzt in der /etc/suders.d den Schutz des Users iobroker vollständig aufgehoben (iobroker ALL=(ALL:ALL) NOPASSWD: ALL), was dem eigentlichen Anliegen widerspricht.
          Besser wäre, dem iobroker nur die Ausführung der ssh-Befehle zu erlauben. Leider waren alle Versuche bisher erfolglos.

          Welches iobroker-Modul ist für die Ausführung verantwortlich?

          OliverIOO 1 Antwort Letzte Antwort
          0
          • P Pandia

            Kurzer Zwischenstand: Ich konnte den Fehler soweit eingrenzen und eine Umgehungslösung schaffen. Hintergrund: Die ssh-Befehle werden vom User iobroker ausgeführt. Dieser verfügt bei neuen Installationen nicht mehr über die entsprechenden Rechte. Gleiches gilt auch, wenn das Fixer-Skript ausgeführt wurde.
            Als Umgehungslösungen habe ich jetzt in der /etc/suders.d den Schutz des Users iobroker vollständig aufgehoben (iobroker ALL=(ALL:ALL) NOPASSWD: ALL), was dem eigentlichen Anliegen widerspricht.
            Besser wäre, dem iobroker nur die Ausführung der ssh-Befehle zu erlauben. Leider waren alle Versuche bisher erfolglos.

            Welches iobroker-Modul ist für die Ausführung verantwortlich?

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von OliverIO
            #5

            @Pandia
            zum besseren testen, ob die Befehle mit den Berechtigungen funktionieren,
            kannst du die auf der Kommandozeile auch als iobroker ausführen

            Mit dem folgenden Befehl startest du ein neues bash mit iobroker als user

            sudo -u iobroker /bin/bash
            
            

            unter welchem user liegen den deine ssh-keys auf deinem iobroker-rechner?
            du musst ssh genau mit dem user ausführen, sonst findet er die keys nicht.
            deinem post nach bist du der user pi

            demnach müsste in sudoers so etwas drin stehen

            iobroker  ALL = (pi) NOPASSWD: hier der ssh befehl
            

            und ausführen dann mit

            sudo -u pi hier dein ssh befehl
            

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              Pandia
              schrieb am zuletzt editiert von
              #6

              @OliverIO

              Auf dem iobroker-Rechner stehen für die User pi und iobroker ssh-keys zur Verfügung.

              Folgendes ssh-Kommando soll auf dem Client ausgeführt werden: ssh pegasus -l admin sudo /etc/init.d/CloudLink.sh start

              Habe unter /etc/suders.d/ die Datei iobroker_cumstom mit folgendem Inhalt angelegt:

              iobroker ALL = (pi) NOPASSWD: ssh pegasus -l admin sudo /etc/init.d/CloudLink.sh start

              Anschließend auf der Konsole versucht bash mit use iobroker zu starten:

              pi@ioBroker0:~ $ sudo -u iobroker /bin/bash

              /etc/sudoers.d/iobroker_custom: Syntax-Fehler near line 1 <<<
              sudo: Syntax-Fehler in /etc/sudoers.d/iobroker_custom bei der Zeile 1
              sudo: Keine gültige sudoers-Quelle gefunden, Programmende
              sudo: Regelwerks-Plugin konnte nicht initialisiert werden
              pi@ioBroker0:~ $

              Hast du noch eine Idee?

              OliverIOO 1 Antwort Letzte Antwort
              0
              • P Pandia

                @OliverIO

                Auf dem iobroker-Rechner stehen für die User pi und iobroker ssh-keys zur Verfügung.

                Folgendes ssh-Kommando soll auf dem Client ausgeführt werden: ssh pegasus -l admin sudo /etc/init.d/CloudLink.sh start

                Habe unter /etc/suders.d/ die Datei iobroker_cumstom mit folgendem Inhalt angelegt:

                iobroker ALL = (pi) NOPASSWD: ssh pegasus -l admin sudo /etc/init.d/CloudLink.sh start

                Anschließend auf der Konsole versucht bash mit use iobroker zu starten:

                pi@ioBroker0:~ $ sudo -u iobroker /bin/bash

                /etc/sudoers.d/iobroker_custom: Syntax-Fehler near line 1 <<<
                sudo: Syntax-Fehler in /etc/sudoers.d/iobroker_custom bei der Zeile 1
                sudo: Keine gültige sudoers-Quelle gefunden, Programmende
                sudo: Regelwerks-Plugin konnte nicht initialisiert werden
                pi@ioBroker0:~ $

                Hast du noch eine Idee?

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #7

                @Pandia

                und was ist das Ergebnis deines Versuchs?

                1. kommst du auf die shell als user iobroker? Dann müsste im prompt iobroker@ioBroker1 stehen
                2. wenn du auf der shell mit dem user iobroker angekommen bist, was ist das Ergebnis/Fehlermeldung deines ssh befehls?
                  Also ssh pegasus -l admin sudo /etc/init.d/CloudLink.sh start

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                P 2 Antworten Letzte Antwort
                0
                • OliverIOO OliverIO

                  @Pandia

                  und was ist das Ergebnis deines Versuchs?

                  1. kommst du auf die shell als user iobroker? Dann müsste im prompt iobroker@ioBroker1 stehen
                  2. wenn du auf der shell mit dem user iobroker angekommen bist, was ist das Ergebnis/Fehlermeldung deines ssh befehls?
                    Also ssh pegasus -l admin sudo /etc/init.d/CloudLink.sh start
                  P Offline
                  P Offline
                  Pandia
                  schrieb am zuletzt editiert von
                  #8

                  @OliverIO

                  Ich komme nicht auf die shell als iobroker. Syntax-Fehler:

                  /etc/sudoers.d/iobroker_custom: Syntax-Fehler near line 1 <<<
                  sudo: Syntax-Fehler in /etc/sudoers.d/iobroker_custom bei der Zeile 1
                  sudo: Keine gültige sudoers-Quelle gefunden, Programmende
                  sudo: Regelwerks-Plugin konnte nicht initialisiert werden
                  pi@ioBroker0:~ $

                  OliverIOO 1 Antwort Letzte Antwort
                  0
                  • OliverIOO OliverIO

                    @Pandia

                    und was ist das Ergebnis deines Versuchs?

                    1. kommst du auf die shell als user iobroker? Dann müsste im prompt iobroker@ioBroker1 stehen
                    2. wenn du auf der shell mit dem user iobroker angekommen bist, was ist das Ergebnis/Fehlermeldung deines ssh befehls?
                      Also ssh pegasus -l admin sudo /etc/init.d/CloudLink.sh start
                    P Offline
                    P Offline
                    Pandia
                    schrieb am zuletzt editiert von
                    #9

                    @OliverIO

                    Habe den fehlerhaften Eintrag in der /etc/sudoers.d/iobroker_custom gelöscht. Shell wurde initialisiert. Die ssh-Kommandos werden korrekt auf dem Client ausgeführt.

                    166fad05-0a99-47e2-94eb-708592953146-image.png

                    Die Ausführung durch das Java-Skript geht nicht durch.

                    4a88b4f8-ca8e-4e3d-ac69-8772974b219d-image.png

                    Hier der Auszug aus dem iobroker-Log:

                    573a27e1-6cd2-4a3d-8cf4-26af46c924c1-image.png

                    AlCalzoneA OliverIOO 3 Antworten Letzte Antwort
                    0
                    • P Pandia

                      @OliverIO

                      Habe den fehlerhaften Eintrag in der /etc/sudoers.d/iobroker_custom gelöscht. Shell wurde initialisiert. Die ssh-Kommandos werden korrekt auf dem Client ausgeführt.

                      166fad05-0a99-47e2-94eb-708592953146-image.png

                      Die Ausführung durch das Java-Skript geht nicht durch.

                      4a88b4f8-ca8e-4e3d-ac69-8772974b219d-image.png

                      Hier der Auszug aus dem iobroker-Log:

                      573a27e1-6cd2-4a3d-8cf4-26af46c924c1-image.png

                      AlCalzoneA Offline
                      AlCalzoneA Offline
                      AlCalzone
                      Developer
                      schrieb am zuletzt editiert von
                      #10

                      @Pandia Hast du nach dem Löschen den Skript-Adapter oder gar den Host mal neu gestartet?

                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                      P 1 Antwort Letzte Antwort
                      0
                      • P Pandia

                        @OliverIO

                        Ich komme nicht auf die shell als iobroker. Syntax-Fehler:

                        /etc/sudoers.d/iobroker_custom: Syntax-Fehler near line 1 <<<
                        sudo: Syntax-Fehler in /etc/sudoers.d/iobroker_custom bei der Zeile 1
                        sudo: Keine gültige sudoers-Quelle gefunden, Programmende
                        sudo: Regelwerks-Plugin konnte nicht initialisiert werden
                        pi@ioBroker0:~ $

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von OliverIO
                        #11

                        @Pandia

                        bose böse, diese datei mit einem normalen editor zu bearbeiten
                        https://wiki.ubuntuusers.de/sudo/Konfiguration/
                        lese insbesondere den roten kasten
                        da steht dann auch genau drin wie die datei sudoers aufgebaut ist.
                        ich habe das oben auch nur adaptiert, evtl. ist mir auch ein fehler passiert, wegen was der syntax fehler kommt

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        1 Antwort Letzte Antwort
                        0
                        • P Pandia

                          @OliverIO

                          Habe den fehlerhaften Eintrag in der /etc/sudoers.d/iobroker_custom gelöscht. Shell wurde initialisiert. Die ssh-Kommandos werden korrekt auf dem Client ausgeführt.

                          166fad05-0a99-47e2-94eb-708592953146-image.png

                          Die Ausführung durch das Java-Skript geht nicht durch.

                          4a88b4f8-ca8e-4e3d-ac69-8772974b219d-image.png

                          Hier der Auszug aus dem iobroker-Log:

                          573a27e1-6cd2-4a3d-8cf4-26af46c924c1-image.png

                          OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          schrieb am zuletzt editiert von
                          #12

                          @Pandia
                          dann musst du um diese uhrzeit mal in der syslog nachschauen, ob da Fehler auftauchen
                          oder es scheint noch einen unterschied zu geben, wie iobroker shell komandos ausführt.

                          Meine Adapter und Widgets
                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                          Links im Profil

                          P 1 Antwort Letzte Antwort
                          0
                          • P Pandia

                            @OliverIO

                            Habe den fehlerhaften Eintrag in der /etc/sudoers.d/iobroker_custom gelöscht. Shell wurde initialisiert. Die ssh-Kommandos werden korrekt auf dem Client ausgeführt.

                            166fad05-0a99-47e2-94eb-708592953146-image.png

                            Die Ausführung durch das Java-Skript geht nicht durch.

                            4a88b4f8-ca8e-4e3d-ac69-8772974b219d-image.png

                            Hier der Auszug aus dem iobroker-Log:

                            573a27e1-6cd2-4a3d-8cf4-26af46c924c1-image.png

                            OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            schrieb am zuletzt editiert von OliverIO
                            #13

                            @Pandia
                            noch eine frage, da du ja sudo auf dem anderen rechner ausführst.
                            da wird kein passwort benötigt?
                            Ich weiß im LAN ist das mit der Sicherheit nicht ganz so dramatisch.
                            ideal wäre, wenn auf dem anderer Rechner ein eigener (technischer) user existiert,
                            der genau die Kommandos ausführen darf die du möchtest und das ohne passwort.
                            also auf dem anderen Rechner ebenfalls die sudoers pflegen
                            mit ssh meldest du dich dann direkt als dieser user an.

                            in deinem beispiel meldest du dich als user admin auf dem anderen rechner an und machst sudo um höhere rechte zu bekommen. ist das notwendig?

                            Meine Adapter und Widgets
                            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                            Links im Profil

                            P 1 Antwort Letzte Antwort
                            0
                            • AlCalzoneA AlCalzone

                              @Pandia Hast du nach dem Löschen den Skript-Adapter oder gar den Host mal neu gestartet?

                              P Offline
                              P Offline
                              Pandia
                              schrieb am zuletzt editiert von
                              #14

                              @AlCalzone

                              Habe nach dem Löschen den Skript-Adapter und Host neu gestartet. Befehle gehen nicht durch.

                              1 Antwort Letzte Antwort
                              0
                              • OliverIOO OliverIO

                                @Pandia
                                dann musst du um diese uhrzeit mal in der syslog nachschauen, ob da Fehler auftauchen
                                oder es scheint noch einen unterschied zu geben, wie iobroker shell komandos ausführt.

                                P Offline
                                P Offline
                                Pandia
                                schrieb am zuletzt editiert von
                                #15

                                @OliverIO
                                Das Syslog des Host enthält zum Zeitpunkt der Ausführung keine Fehlermeldung. Was mich wundert. Es wird überhaupt nichts aufgezeichnet. Der Prozess muss schon vorher abbrechen.

                                1 Antwort Letzte Antwort
                                0
                                • OliverIOO OliverIO

                                  @Pandia
                                  noch eine frage, da du ja sudo auf dem anderen rechner ausführst.
                                  da wird kein passwort benötigt?
                                  Ich weiß im LAN ist das mit der Sicherheit nicht ganz so dramatisch.
                                  ideal wäre, wenn auf dem anderer Rechner ein eigener (technischer) user existiert,
                                  der genau die Kommandos ausführen darf die du möchtest und das ohne passwort.
                                  also auf dem anderen Rechner ebenfalls die sudoers pflegen
                                  mit ssh meldest du dich dann direkt als dieser user an.

                                  in deinem beispiel meldest du dich als user admin auf dem anderen rechner an und machst sudo um höhere rechte zu bekommen. ist das notwendig?

                                  P Offline
                                  P Offline
                                  Pandia
                                  schrieb am zuletzt editiert von
                                  #16

                                  @OliverIO
                                  Das sudo auf dem Host ist nicht zwingend notwendig, da der User admin über die entsprechenden Rechte verfügt. Der Prozess lässt sich im Nachgang noch sicherer gestalten. Der Aufruf vom Host muss erst mal richtig ankommen.

                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  809

                                  Online

                                  32.5k

                                  Benutzer

                                  81.7k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe