Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [offen] root Rechte für exec()

    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

    [offen] root Rechte für exec()

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      aleks-83 last edited by aleks-83

      Der user "iobroker" ist im WebInterface der Synology mit Schreibrechten in dem Verzeichnis angelegt.
      ist dieser user dann nur für das WebInterface oder ist ein kompletter "Linux-User"?

      in der /etc/passwd steht der user folgendermaßen drin.
      Hat es damit überhaupt was zu tun? 🙃

      iobroker:x:1028:100:iobroker:/var/services/homes/iobroker:/bin/sh
      

      Wenn ich mich als root per putty am iobroker anmelde und den cp Befehl ausführe geht es ja.
      Über welchen user läuft das denn dann am NAS?

      Als "iobroker" kann ich mich per putty nicht am iobroker anmelden. Das Fenster schließt immer sofort wieder wenn ich das pw eingegeben habe. Ist das normal?

      AlCalzone 1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer @aleks-83 last edited by

        @aleks-83 sagte in [offen] root Rechte für exec():

        Als "iobroker" kann ich mich per putty nicht am iobroker anmelden. Das Fenster schließt immer sofort wieder wenn ich das pw eingegeben habe. Ist das normal?

        Der User iobroker hat keine Anmeldeshell, das ist normal. Du brauchst auf dem NAS einen User, der die gleiche UID hat wie der User iobroker mit dem ioBroker ausgeführt wird - zu ermitteln mit id -u iobroker. Dieser User benötigt Schreibrechte.
        Skripte etc werden nämlich als User iobroker ausgeführt und haben damit nur dessen Berechtigungen.

        1 Reply Last reply Reply Quote 0
        • A
          aleks-83 last edited by

          OK, danke.

          Die UIDs sind auf beiden Seiten gleich (1028)

          1 Reply Last reply Reply Quote 0
          • SBorg
            SBorg Forum Testing Most Active last edited by

            Versuche doch mal was er da als Fehler ausgibt:

            sudo -u iobroker cp -r /opt/iobroker/iobroker-data/files/vis.0/main/snapshots/Set1/ /mnt/DS112/FOTO/Besucherfotos/2019/2019.08.06_14.19.11/
            
            1 Reply Last reply Reply Quote 0
            • A
              aleks-83 last edited by

              root@ioBroker:~# sudo -u iobroker cp -r /opt/iobroker/iobroker-data/files/vis.0/main/snapshots/Set1/ /mnt/DS112/FOTO/Besucherfotos/2019/
              cp: auf '/mnt/DS112/FOTO/Besucherfotos/2019/' konnte nicht zugegriffen werden: Keine Berechtigung
              

              Die Rechte im gemounteten Verzeichnis sehen so aus:

              root@ioBroker:~# ls -ldh /mnt/DS112/FOTO/Besucherfotos/
              drwx------ 9 nobody users 4,0K Jun 19 09:16 /mnt/DS112/FOTO/Besucherfotos/
              
              SBorg 1 Reply Last reply Reply Quote 0
              • SBorg
                SBorg Forum Testing Most Active @aleks-83 last edited by

                @aleks-83 sagte in [offen] root Rechte für exec():

                Keine Berechtigung

                Jo, ist wohl ziemlich eindeutig 🙂
                Das Verzeichnis hat auch nur "rwx", also kann nur "nobody" schreiben/lesen/ausführen. Da stimmt etwas mit den Einstellungen der Berechtigungen (User und/oder [Unter-]Verzeichnis) deines NAS nicht.

                1 Reply Last reply Reply Quote 0
                • A
                  aleks-83 last edited by aleks-83

                  Offenbar...

                  Der user iobroker auf dem NAS hat iwie keinen Zugriff mehr auf die Ordnerebene

                  iobroker@DS112Plus:~$ ls -ldh /DS112/FOTO/Besucherfotos/
                  ls: cannot access /DS112/FOTO/Besucherfotos/: No such file or directory
                  iobroker@DS112Plus:~$ cd /DS112/
                  -sh: cd: /DS112/: No such file or directory
                  iobroker@DS112Plus:~$ dir
                  total 20
                  drwxr-xr-x  5 iobroker users 4096 Aug  7 08:20 .
                  drwxrwxrwx 10 root     root  4096 Jul 29 16:06 ..
                  drwxr-xr-x  3 iobroker users 4096 Aug  7 08:20 CloudStation
                  drwx------  2 iobroker users 4096 May 16 00:00 .Maildir
                  drwxr-xr-x  2 iobroker users 4096 Mar 15 13:17 www
                  iobroker@DS112Plus:~$
                  
                  

                  habe es mal per FTP getestet. Per iobroker angemeldet habe ich Zugriff bis auf die Ebene /DS112/FOTO/Besucherfotos/ tiefer rein darf ich aber nicht.

                  1 Reply Last reply Reply Quote 0
                  • A
                    aleks-83 last edited by aleks-83

                    Ich bin bisher nicht weiter gekommen.
                    Hat noch jemand eine Idee?

                    Per FTP als user "iobroker" komme ich bis ins Verzeichnis /DS112/FOTO/Besucherfotos/ in das 2019 komme ich dann nicht mehr. Ich bekomme ich die Meldung

                    Permission denied.
                    Error code: 3
                    Error message from server: Permission denied
                    

                    Wenn ich per SSH versuche in die Verzeichnisse zu schauen erhalte ich schon bei Besucherfotos die Meldung:

                    iobroker@DS112Plus:/volume1/DS112/FOTO$ cd Besucherfotos/
                    -sh: cd: Besucherfotos/: Permission denied
                    
                    AlCalzone 1 Reply Last reply Reply Quote 0
                    • AlCalzone
                      AlCalzone Developer @aleks-83 last edited by

                      @aleks-83 sagte in [offen] root Rechte für exec():

                      Permission denied

                      Was sagt ls -la in diesem Ordner?

                      A 1 Reply Last reply Reply Quote 0
                      • A
                        aleks-83 @AlCalzone last edited by aleks-83

                        @AlCalzone sagte in [offen] root Rechte für exec():

                        @aleks-83 Bitte die vollständige Ausgabe posten, nicht beschreiben

                        iobroker@DS112Plus:/volume1/DS112/FOTO$ ls -la
                        total 1608
                        drwxrwxrwx  37 admin users    4096 Jun 19 09:11 .
                        drwxrwxrwx  15 root  root     4096 Mar 29 12:31 ..
                        drwxrwxrwx  14 admin users    4096 Apr 28 19:02 2018
                        drwxrwxrwx   7 admin users    4096 Jun 20 15:30 2019
                        drwx------   9 admin users    4096 Jun 19 09:16 Besucherfotos
                        

                        Habe ein paar Zeilen zwischen drin weg genommen.

                        AlCalzone 1 Reply Last reply Reply Quote 0
                        • AlCalzone
                          AlCalzone Developer @aleks-83 last edited by

                          @aleks-83 Bitte die vollständige Ausgabe posten, nicht beschreiben

                          1 Reply Last reply Reply Quote 0
                          • A
                            aleks-83 last edited by aleks-83

                            Habe meinen alten post editiert...

                            Aber jetzt habe ich in der NAS Oberfläche nachgesehen.
                            Dort hatte der gesamte Ordner nicht genug Berechtigungen.
                            Nur der Besitzer durfte Lesen, Schreiben, Löschen.
                            Habs geändert. und es geht !

                            Ich dachte eigentlich dass ich den Ordner per SSH mit dem user iobroker erstellt hatte, aber dem war wohl nicht so.
                            Danke für eure Hilfe !

                            c4f1633f-24d0-41fc-a2ae-cad9b7744aff-image.png

                            AlCalzone 1 Reply Last reply Reply Quote 0
                            • AlCalzone
                              AlCalzone Developer @aleks-83 last edited by

                              @aleks-83 sagte in [offen] root Rechte für exec():

                              Aber jetzt habe ich in der NAS Oberfläche nachgesehen.

                              Du hättest es auch hier gesehen:

                              drwx------ 9 >>admin<< users 4096 Jun 19 09:16 Besucherfotos

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                aleks-83 @AlCalzone last edited by

                                Wie läuft das denn mit root und exec per blockly unter windows?

                                AlCalzone 1 Reply Last reply Reply Quote 0
                                • AlCalzone
                                  AlCalzone Developer @aleks-83 last edited by

                                  @aleks-83 Root gibt's auf Windows nicht. Daher auch kein sudo und das dazugehörige Geklüngel.

                                  A 1 Reply Last reply Reply Quote 1
                                  • A
                                    aleks-83 @AlCalzone last edited by

                                    @alcalzone
                                    Also unter Windows auch kein exec()?
                                    Weil meine exec Befehle funktionieren nicht. (Siehe oben verlinkten Thread)

                                    AlCalzone 1 Reply Last reply Reply Quote 0
                                    • AlCalzone
                                      AlCalzone Developer @aleks-83 last edited by

                                      @aleks-83 Was ist denn der Fehler? Wenn ein exec nicht geht, sollte der zumindest im Callback ankommen.

                                      A 1 Reply Last reply Reply Quote 0
                                      • A
                                        aleks-83 @AlCalzone last edited by

                                        @alcalzone
                                        Wenn ich "iobroker restart sonos.0" in der Konsole direkt unter Windows eingebe, funktioniert der Befehl.

                                        Wenn ich ihn per Javascript (Blockly Script) ausführen lasse, nicht.

                                        9353d1f6-23e1-4310-ab43-4cfc6a2dc42f-image.png

                                        javascript.0	2021-03-04 11:05:34.367	warn	(6216) script.js.Xiaomi.SonosDurchBWMschalten: exec: iobroker restart sonos.0
                                        javascript.0	2021-03-04 11:05:34.416	warn	(6216) script.js.Xiaomi.SonosDurchBWMschalten: *** Error. Please start the ioBroker commandline with the correct Windows startmenu shortcut. Aborting...
                                        

                                        b8508f92-aead-412e-9f81-131b76bea734-image.png

                                        AlCalzone 1 Reply Last reply Reply Quote 0
                                        • AlCalzone
                                          AlCalzone Developer @aleks-83 last edited by AlCalzone

                                          @aleks-83 Das Detail, dass du iobroker-Befehle ausführen willst, hattest du bisher verschwiegen.

                                          ioBroker hat unter Windows eine eigene Kommandozeile mit eigenem Environment. Bei mir lautet der Startbefehl für die Kommandozeile so:

                                          C:\WINDOWS\system32\cmd.exe /K "C:\Program Files\iobroker\Dev\nodejs\nodevars.bat"
                                          

                                          Um darin was auszuführen, müsste der wie folgt abgewandelt werden (Pfad anpassen!):

                                          C:\WINDOWS\system32\cmd.exe /K "C:\Program Files\iobroker\Dev\nodejs\nodevars.bat && iobroker restart sonos.0"
                                          

                                          Vermutlich ist es einfacher, wenn du stattdessen das Objekt system.adapter.sonos.0 liest und direkt wieder schreibst, damit wir der Adapter auch neu gestartet.


                                          Edit, siehe dein anderer Thread:
                                          Setze system.adapter.sonos.0.alive auf false und dann wieder auf true. Dann startet der Adapter auch neu.

                                          1 Reply Last reply Reply Quote 1
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          421
                                          Online

                                          31.8k
                                          Users

                                          79.9k
                                          Topics

                                          1.3m
                                          Posts

                                          javascript
                                          10
                                          55
                                          8295
                                          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