Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript Exec Befehle auf Client (NAS) ausführen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    JavaScript Exec Befehle auf Client (NAS) ausführen

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Pandia last edited by

      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?

      OliverIO 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @Pandia last edited by OliverIO

        @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
        
        1 Reply Last reply Reply Quote 0
        • P
          Pandia last edited by

          @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?

          OliverIO 1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @Pandia last edited by

            @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 2 Replies Last reply Reply Quote 0
            • P
              Pandia @OliverIO last edited by

              @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:~ $

              OliverIO 1 Reply Last reply Reply Quote 0
              • P
                Pandia @OliverIO last edited by

                @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

                AlCalzone OliverIO 3 Replies Last reply Reply Quote 0
                • AlCalzone
                  AlCalzone Developer @Pandia last edited by

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

                  P 1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @Pandia last edited by OliverIO

                    @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

                    1 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @Pandia last edited by

                      @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 1 Reply Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @Pandia last edited by 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 1 Reply Last reply Reply Quote 0
                        • P
                          Pandia @AlCalzone last edited by

                          @AlCalzone

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

                          1 Reply Last reply Reply Quote 0
                          • P
                            Pandia @OliverIO last edited by

                            @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 Reply Last reply Reply Quote 0
                            • P
                              Pandia @OliverIO last edited by

                              @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 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              718
                              Online

                              31.8k
                              Users

                              80.0k
                              Topics

                              1.3m
                              Posts

                              blockly javascript
                              5
                              16
                              1595
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo