Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [offen] root Rechte für exec()

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    276

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

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

[offen] root Rechte für exec()

[offen] root Rechte für exec()

Scheduled Pinned Locked Moved Skripten / Logik
javascript
55 Posts 10 Posters 10.4k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    wrote on last edited by Jey Cee
    #1

    Ich möchte folgendes Kommando unter Ubuntu 16.04 per exec() ausführen:

    exec('npm i npm@latest-4 -g');
    

    Genau für das Kommando sind aber wohl nicht die richtigen Rechte gesetzt.

    Gerade das Rechtethema ist unter Linux nicht meins.

    Eventuell behebt ein ****sudo chmod -R 777 ***** in dem Verzeichnis /usr/lib/node_modules/npm mein Problem.

    Ich kann mir in der Installation allerdings nicht erlauben einen Fehler zu machen.

    Ein Linux Crack hat bestimmt die Antwort 🙂

    Das excec() oben erzeugt folgende Fehlermeldungen im Log.

    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! A complete log of this run can be found in:
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! Please try running this command again as root/Administrator.
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR!
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! path: '/usr/lib/node_modules/npm' }
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! syscall: 'access',
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! code: 'EACCES',
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! errno: -13,
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! { Error: EACCES: permission denied, access '/usr/lib/node_modules/npm'
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules/npm'
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! syscall access
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! errno -13
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! code EACCES
    javascript.0	2017-12-23 19:33:31.944	warn	npm ERR! path /usr/lib/node_modules/npm
    javascript.0	2017-12-23 19:33:31.944	warn	npm WARN checkPermissions Missing write access to /usr/lib/node_modules
    javascript.0	2017-12-23 19:33:31.944	warn	npm WARN checkPermissions Missing write access to /usr/lib/node_modules/npm
    javascript.0	2017-12-23 19:33:31.944	warn	script.js.Systeminfos.npm_Version_Alarm: Fehler: Error: Command failed: npm i npm@latest-4 -g
    

    Prinzipiell wird es möglich sein. In der Doku zum Javascript_Adapter ist z.B. ein Rebbot als Beispiel aufgeführt.

    exec('reboot');
    

    https://github.com/ioBroker/ioBroker.ja … ile1-file2

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

    1 Reply Last reply
    0
    • HomoranH Do not disturb
      HomoranH Do not disturb
      Homoran
      Global Moderator Administrators
      wrote on last edited by
      #2

      Hallo ruhr70
      @ruhr70:

      Ich möchte folgendes Kommando unter Ubunte 16.04 per excec() ausführen: `
      Das meinst du doch nicht wirklich 😉

      exec('npm i npm@latest-4 -g');
      

      klingt schon besser :lol:

      Du hast aber anscheinend noch nicht die v3.5.1, die würde IMHO einen anderen Fehler werfen
      144_exec.jpg

      Gruß

      Rainer

      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 Reply Last reply
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        wrote on last edited by
        #3

        @Homoran:

        Du hast aber anscheinend noch nicht die v3.5.1, die würde IMHO einen anderen Fehler werfen `

        Hallo Rainer,

        doch ich habe die 3.5.1 und habe die Berechtigung auch gesetzt.

        Nutze exec() auch in diversen Skripten bei dem Host.

        Bei den Fehlern siehst Du, dass das Kommando über exec() auch ausgeführt ist, der Ubuntu Server aber meckert, dass der User, der es ausführt nicht die richtigen Rechte hat.

        Eher ein Linux/Rechte Problem.

        Für ioBroker ist es interessant, wie man solche Fälle behandelt und was man dagegen tun kann.

        Für mich ist interessant, das ich meine neue Hauptinstallation nicht schrotte, in dem ich, ohne Ahnung zu haben, nun wild Rechte innerhalb von Linux ändere. :mrgreen:

        [EDIT]

        @Homoran:

        Hallo ruhr70
        @ruhr70:

        Ich möchte folgendes Kommando unter Ubunte 16.04 per excec() ausführen: Das meinst du doch nicht wirklich ;-)

        Die Tippfehler im ersten Post habe ich dann mal korrigiert 😉

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

        1 Reply Last reply
        0
        • HomoranH Do not disturb
          HomoranH Do not disturb
          Homoran
          Global Moderator Administrators
          wrote on last edited by
          #4

          Hast du mal versucht ein sudo mitzugeben?

          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 Reply Last reply
          0
          • ruhr70R Offline
            ruhr70R Offline
            ruhr70
            wrote on last edited by
            #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 Reply Last reply
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              wrote on last edited by
              #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 Reply Last reply
              0
              • HomoranH Do not disturb
                HomoranH Do not disturb
                Homoran
                Global Moderator Administrators
                wrote on last edited by
                #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 Reply Last reply
                0
                • ruhr70R Offline
                  ruhr70R Offline
                  ruhr70
                  wrote on last edited by
                  #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 Reply Last reply
                  0
                  • HomoranH Do not disturb
                    HomoranH Do not disturb
                    Homoran
                    Global Moderator Administrators
                    wrote on last edited by
                    #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 Reply Last reply
                    0
                    • ruhr70R Offline
                      ruhr70R Offline
                      ruhr70
                      wrote on last edited by
                      #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 Reply Last reply
                      0
                      • ruhr70R Offline
                        ruhr70R Offline
                        ruhr70
                        wrote on last edited by
                        #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 Reply Last reply
                        0
                        • DutchmanD Offline
                          DutchmanD Offline
                          Dutchman
                          Developer Most Active Administrators
                          wrote on last edited by
                          #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 Reply Last reply
                          0
                          • AlCalzoneA Offline
                            AlCalzoneA Offline
                            AlCalzone
                            Developer
                            wrote on last edited by
                            #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 Reply Last reply
                            0
                            • BuZZyB Offline
                              BuZZyB Offline
                              BuZZy
                              wrote on last edited by
                              #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 Reply Last reply
                              0
                              • ruhr70R Offline
                                ruhr70R Offline
                                ruhr70
                                wrote on last edited by
                                #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 Reply Last reply
                                0
                                • S Offline
                                  S Offline
                                  Solear
                                  wrote on last edited by
                                  #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 Reply Last reply
                                  0
                                  • ruhr70R Offline
                                    ruhr70R Offline
                                    ruhr70
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    0
                                    • ruhr70R Offline
                                      ruhr70R Offline
                                      ruhr70
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      0
                                      • ruhr70R Offline
                                        ruhr70R Offline
                                        ruhr70
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        0
                                        • BuZZyB Offline
                                          BuZZyB Offline
                                          BuZZy
                                          wrote on last edited by
                                          #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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          195

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe