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. [offen] root Rechte für exec()

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    600

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

[offen] root Rechte für exec()

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
55 Beiträge 10 Kommentatoren 10.6k Aufrufe 8 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.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #5

    @Homoran:

    Hast du mal versucht ein sudo mitzugeben? `

    ja, habe ich. Habe die Meldungen dazu jetzt nicht parat.

    Ergebnis war aber, dass das Kommando mit Sudo gar nicht ausgeführt wird. Ohne, siehe oben, wird es versucht und es scheitert an den Rechten.,

    Der Reboot in der Doku (mein erster Post) ist auch ohne sudo. und der Reboot benötigt ebenfalls root Rechte.

    Ich vermute, dass ich nur die Rechte in dem Verzeichnis ändern muss, welches im Log angemeckert wird.

    Wie erwähnt ist das der Punkt, bei dem ich unsicher werde.

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Antwort Letzte Antwort
    0
    • ruhr70R Offline
      ruhr70R Offline
      ruhr70
      schrieb am zuletzt editiert von
      #6

      Ergänzung.

      @Rainer: Ich bin ganz froh, dass Du den Thread gesehen hast.

      Das Thema müsstes Du doch aus dem Handgelenk schütteln, so viele Testinstallationen, wie Du sie durchgeführt hast ;)

      Adapter: Fritzbox, Unify Circuit
      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

      1 Antwort Letzte Antwort
      0
      • HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #7

        @ruhr70:

        Ergänzung.

        @Rainer: Ich bin ganz froh, dass Du den Thread gesehen hast.

        Das Thema müsstes Du doch aus dem Handgelenk schütteln, so viele Testinstallationen, wie Du sie durchgeführt hast ;) `

        Aber ohne Angst etwas zu zerstören. Dann wird es eben neu gemacht.

        Ich würde jetzt auch dem angemeckerten verzeichis 777 geben, auch wenn ggf. Nur eine datei das bräuchte oder gar weniger Rechte reichen würden

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Antwort Letzte Antwort
        0
        • ruhr70R Offline
          ruhr70R Offline
          ruhr70
          schrieb am zuletzt editiert von
          #8

          @Homoran:

          Ich würde jetzt auch dem angemeckerten verzeichis 777 geben, auch wenn ggf. Nur eine datei das bräuchte oder gar weniger Rechte reichen würden `

          So. Mit Angst das mit der 777 durchgezogen und es funktioniert nun.

          23:39:56.447 [info] javascript.0 script.js.Systeminfos.npm_Version_Alarm: –--------- Skript: Abfrage npm Version gestartet -----------

          23:39:56.447 [info] javascript.0 script.js.Systeminfos.npm_Version_Alarm: npm in der Version: 4

          23:40:09.300 [info] javascript.0 script.js.Systeminfos.npm_Version_Alarm: stdout: /usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js /usr/lib └── npm@4.6.1

          23:40:09.300 [info] javascript.0 script.js.Systeminfos.npm_Version_Alarm: *** npm 4 wurde installiert ***

          Adapter: Fritzbox, Unify Circuit
          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

          1 Antwort Letzte Antwort
          0
          • HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #9

            Gut so!

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Antwort Letzte Antwort
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              schrieb am zuletzt editiert von
              #10

              @Homoran:

              Gut so! `

              Leider nicht ganz.

              Bei anderen Skripten hilft das nicht, bzw. nur temporär.

              Ich frage z.B. in einem Skript die Datei /var/lib/update-notifier/updates-available.

              Dies funktioniert, wenn ich vorher ein chmod 777 darauf angewendet habe.

              Die Datei wird aber anscheinend mit den Ursprungsrechten vom System neu geschrieben, sobald sie erneuert wird.

              -rw------- 1 root root 102 Jan  1 01:48 /var/lib/update-notifier/updates-available
              

              Bei meiner alten Installation konnte ich die Datei die ganze Zeit über abfragen.

              Die Rechte sind mit der Ausgabe oben identisch.

              Warum die Ursprungsinstallation mit anderen Rechten abfragt…, keine Ahnung?

              Die ursprüngliche Frage ist also noch offen.

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Antwort Letzte Antwort
              0
              • ruhr70R Offline
                ruhr70R Offline
                ruhr70
                schrieb am zuletzt editiert von
                #11

                @ruhr70:

                Ich frage z.B. in einem Skript die Datei /var/lib/update-notifier/updates-available.

                Dies funktioniert, wenn ich vorher ein chmod 777 darauf angewendet habe.

                Die Datei wird aber anscheinend mit den Ursprungsrechten vom System neu geschrieben, sobald sie erneuert wird.

                -rw------- 1 root root 102 Jan  1 01:48 /var/lib/update-notifier/updates-available
                ```` `  
                

                Leider bin ich hier noch nicht weiter.

                Ein Linux-Profi dabei, der sagen kann, was zu tun ist, um im Javascript-Adapter die Funktion exec() mit den richtigen Rechten auszuführen?

                Adapter: Fritzbox, Unify Circuit
                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                1 Antwort Letzte Antwort
                0
                • DutchmanD Offline
                  DutchmanD Offline
                  Dutchman
                  Developer Most Active Administrators
                  schrieb am zuletzt editiert von
                  #12

                  Läuft ioBroker unter root? Wenn nein kann man auch kein exec mit root ausführen

                  –-----------------------

                  Send from mobile device

                  Das schöne ios hat Auto Korrektur zum k****

                  Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

                  1 Antwort Letzte Antwort
                  0
                  • AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    schrieb am zuletzt editiert von
                    #13

                    Ich hab sowas mal gebraucht. Bin leider unterwegs daher kenne ich die exakte Syntax nicht. War irgendwas der Art

                    sudo su -c pi - befehl

                    Damit solltest du auch unter Angabe des Passwort Befehle als Root ausführen können.

                    Gesendet von iPhone mit Tapatalk

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

                    1 Antwort Letzte Antwort
                    0
                    • BuZZyB Offline
                      BuZZyB Offline
                      BuZZy
                      schrieb am zuletzt editiert von
                      #14

                      AlCalzone geht in die richtige Richtung:````
                      exec('sudo su -c "npm i npm@latest-4 -g" root');

                      
                      So könnte es auch gehen falls Passworteingabe benötigt wird:
                      

                      exec('echo -e "DEINPASSWORT\n" | sudo -S npm i npm@latest-4 -g')

                      
                      Gruß
                      1 Antwort Letzte Antwort
                      0
                      • ruhr70R Offline
                        ruhr70R Offline
                        ruhr70
                        schrieb am zuletzt editiert von
                        #15

                        danke!

                        probiere ich nachher, wenn das Haus noch steht [emoji51]

                        bin eigentlich der Meinung, dass ioBroker unter root installiert wurde.

                        kann ich das kontrollieren und ggf ändern?

                        ich geb Rückmeldung, ob die Tipps geholfen haben [emoji2]

                        Gesendet von iPhone mit Tapatalk

                        Adapter: Fritzbox, Unify Circuit
                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                        1 Antwort Letzte Antwort
                        0
                        • S Offline
                          S Offline
                          Solear
                          schrieb am zuletzt editiert von
                          #16

                          Muss eigentlich als root installiert gewesen sein, sonst würde er den reboot-Befehl ja auch nicht ausführen.

                          iobroker als LXC unter Proxmox

                          1 Antwort Letzte Antwort
                          0
                          • ruhr70R Offline
                            ruhr70R Offline
                            ruhr70
                            schrieb am zuletzt editiert von
                            #17

                            @Solear:

                            Muss eigentlich als root installiert gewesen sein, sonst würde er den reboot-Befehl ja auch nicht ausführen. `

                            Der reboot Befehl war nicht von mir, sondern aus der Doku entliehen.

                            Als Beispiel dafür, dass Befehle als root ausgeführt werden können.

                            Kann ich nachträglich rausfinden, ob ich wirklich als root ioBroker installiert habe (gehe ich eigentlich von aus).

                            Ich habe gerade noch ein "sudo chmod 777 /opt/iobroker" ausgeführt (bei laufendem ioBroker).

                            Das brachte keine Veränderung beim exec()

                            Adapter: Fritzbox, Unify Circuit
                            Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                            1 Antwort Letzte Antwort
                            0
                            • ruhr70R Offline
                              ruhr70R Offline
                              ruhr70
                              schrieb am zuletzt editiert von
                              #18

                              @BuZZy:

                              AlCalzone geht in die richtige Richtung:````
                              exec('sudo su -c "npm i npm@latest-4 -g" root');

                              
                              So könnte es auch gehen falls Passworteingabe benötigt wird:
                              

                              exec('echo -e "DEINPASSWORT\n" | sudo -S npm i npm@latest-4 -g')

                              
                              Gruß `  
                              

                              hat leider nicht funktioniert.

                              Bei der ersten Variante:

                              'sudo su -c "cat /var/lib/update-notifier/updates-available" root'
                              
                              ->
                              javascript.0	2018-01-18 18:06:48.751	error	sudo: Kein TTY vorhanden und kein »askpass«-Programm angegeben
                              javascript.0	2018-01-18 18:06:48.751	error	script.js.Systeminfos.Host.Ubuntu_Updates: Error: Command failed: sudo su -c "cat /var/lib/update-notifier/updates-available" root
                              

                              Und bei der zweiten Variante:

                              'echo -e "passwort\n" | sudo -S cat /var/lib/update-notifier/updates-available';
                              
                              ->
                              javascript.0	2018-01-18 18:11:29.153	error	script.js.Systeminfos.Host.Ubuntu_Updates: Error: Command failed: echo -e 'passwort ' | sudo -S cat /var/lib/update-notifier/updates-available [sudo] Passwort für michael: Das hat nicht funktioniert, bitte nochmal probieren. [sudo] Passwort für michael: Das hat nicht funktioniert, bitte nochmal probieren. [sudo] Passwort für michael: sudo: 2 Fehlversuche bei der Passwort-Eingabe
                              

                              Was bei der 2. Variante auffällt:

                              echo -e 'passwort '
                              

                              Hier kommt im Log hinter dem Passwort und vor dem Hochkomma noch ein Leerzeichen.

                              Adapter: Fritzbox, Unify Circuit
                              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                              1 Antwort Letzte Antwort
                              0
                              • ruhr70R Offline
                                ruhr70R Offline
                                ruhr70
                                schrieb am zuletzt editiert von
                                #19

                                @Dutchman:

                                Läuft ioBroker unter root? Wenn nein kann man auch kein exec mit root ausführen `

                                Ich frage Dich auch einmal :mrgreen:

                                Habe ich denn die Chance rauszufinden, ob ich ioBroker als root installiert habe, bzw. kann man das nachträglich ändern?

                                Adapter: Fritzbox, Unify Circuit
                                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                1 Antwort Letzte Antwort
                                0
                                • BuZZyB Offline
                                  BuZZyB Offline
                                  BuZZy
                                  schrieb am zuletzt editiert von
                                  #20
                                  exec('sudo -S su -c "npm i npm@latest-4 -g" root');
                                  ````:mrgreen:
                                  
                                  Probier es nochmal mit -S hinter sudo..
                                  
                                  Sonst hab ich keine Idee mehr.. :lol:
                                  
                                  Gruß
                                  1 Antwort Letzte Antwort
                                  0
                                  • ruhr70R Offline
                                    ruhr70R Offline
                                    ruhr70
                                    schrieb am zuletzt editiert von
                                    #21

                                    @BuZZy:

                                    exec('sudo -S su -c "npm i npm@latest-4 -g" root');
                                    ````:mrgreen:
                                    
                                    Probier es nochmal mit -S hinter sudo..
                                    
                                    Sonst hab ich keine Idee mehr.. :lol: `  
                                    

                                    mmhh… jetzt kommt kein Fehler, dafür kommt nach dem exec() gar keine Rückmeldung mehr...

                                    Die Abfrage:

                                    'sudo -S su -c "cat /var/lib/update-notifier/updates-available" root'
                                    

                                    Die Logs vor und nach dem exec()

                                    ...
                                        if(logOn) log("Abfrage wird angestossen");
                                        exec(abfrage, function(err, stdout, stderr) {
                                            if (err) {
                                                log(err,"error");
                                                return;
                                            }
                                            if(logOn) log("Test Abfrage durchgeführt");
                                    ...
                                    
                                    

                                    Nur das erste Log wird ausgegeben.

                                    Wäre schön, wenn das funktioniert hätte.

                                    Aber ich befürchte, dass meiner Installation die root Rechte fehlen.

                                    Das wäre dann meine Hoffnung, dass da jemand weiß, wie es geht.

                                    Danke für Deine Mühe!

                                    Adapter: Fritzbox, Unify Circuit
                                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                    1 Antwort Letzte Antwort
                                    0
                                    • ? Offline
                                      ? Offline
                                      Ein ehemaliger Benutzer
                                      schrieb am zuletzt editiert von
                                      #22

                                      Hallo Zusammen,

                                      ein Password im Rahmen eines Scriptes zu SU zu übergeben dürfte unter Linux NICHT gehen….. (meine Erfahrung) :)

                                      Dazu sollte, wenn es denn sicher sein sollte expect verwendet werden.

                                      Bitte mal nach Expect googlen.

                                      Bei mir wird das Root Passwort beständing rotiert, bei Bedarf checke ich das Password aus und übergebe es an die

                                      notwendigen Programme via Skript.

                                      Im Falle von "SU Root" um mir eine Rootshell temporär zu generieren verwende ich im Skript.

                                      my $suCaller = 'expect -c "set timeout 20; spawn -noecho su - ' . $tarUser . '; expect "Password:"; send "' . $tarPassword . '\r"; interact;"';

                                      My 2 Cents

                                      Equilora

                                      1 Antwort Letzte Antwort
                                      0
                                      • ruhr70R Offline
                                        ruhr70R Offline
                                        ruhr70
                                        schrieb am zuletzt editiert von
                                        #23

                                        @equilora:

                                        Im Falle von "SU Root" um mir eine Rootshell temporär zu generieren verwende ich im Skript.

                                        my $suCaller = 'expect -c "set timeout 20; spawn -noecho su - ' . $tarUser . '; expect "Password:"; send "' . $tarPassword . '\r"; interact;"';

                                        My 2 Cents

                                        Equilora `

                                        Danke für den Input. Ich muss zugeben, dass ich kein Wort verstanden habe. Einen Artikel zu expect lese ich gerade.

                                        Momentan verstehe ich nicht, wie das anzuwenden wäre :?

                                        Adapter: Fritzbox, Unify Circuit
                                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                        1 Antwort Letzte Antwort
                                        0
                                        • ? Offline
                                          ? Offline
                                          Ein ehemaliger Benutzer
                                          schrieb am zuletzt editiert von
                                          #24

                                          Jo Ruhr70,

                                          wollte Dich nicht verwirren….

                                          Wenn Du in der Linux Shell z.b "su root" eingibst.... dann kommt sicher ein Propmt, welcher nach dem Password frägt.

                                          Das kannst Du mit den üblichen Shell Scripts nicht mehr automatisiert erledigen, ausser Deine Linux Distribution ist noch aus der Steinzeit.

                                          Passwörter im Klartext in Skripts ist mittlerweile verboten :) :)

                                          Deswegen der Umweg mittels Expect.

                                          Equilora

                                          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

                                          886

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          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