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 Former User last edited by

      Hallo Ruhr70,

      entschuldige die holperige Konversation wir hatten einen heftigen Sturm hier und ich musste erstmal die Pferde ruhig bekommen und hier hat es grad ein Baum die Stromleitung geknickt….

      Mein Beispiel ist ein wenig holperig weil basierend auf Perl...

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

      Mittels exec rufst Du expect -c "set timeout ....

      ist warten das expect geladen wurde

      -nonecho ist eine Option welche Rückmeldungen unterdrückt,

      die $dingsda sind Parameter welche als Variablen vorliegen, welche ich dann einfach abrufe....

      Im Grunde muss das ganze nur in Java Script Notation verpackt werden.....

      Ich such mir mal ein paar Fälle wo root zwingend notwendig ist ohne gleich das gesamte System herunterfahren zu müssen, bin wie die Anderen

      auch noch beruflich tätig... please stay tuned.

      Equilora

      1 Reply Last reply Reply Quote 0
      • ruhr70
        ruhr70 last edited by

        Oh je, der Sturm hat Dich ja ganz schön erwischt.

        Ich danke Dir jedenfalls für die ausführlichen Erklärungen und Deine Geduld!

        1 Reply Last reply Reply Quote 0
        • ?
          A Former User last edited by

          Hi Ruhr70,

          man(n) baut für Katastrophen vor… 🙂

          @ruhr70:

          Oh je, der Sturm hat Dich ja ganz schön erwischt.

          Ich danke Dir jedenfalls für die ausführlichen Erklärungen und Deine Geduld! `

          Ich kann das erstmal nur als Prototyp bauen. Das Password für Root muss ich aus diesem Grund erstmal deklarieren als Variable und fest einbinden, da wohl kaum jemand hier seine Passwörter rotiert, jede paar Stunden diese ändert, und über einen Web Service abruft und nach Gebrauch, Rückgabe, Erledigung einer Aufgabe wieder rotiert. :)…... Bluefox killt mich ohnehin da ich Exec verwende 🙂

          Wo am Ende das Password hinterlegt wird, das darfst Du selbst festlegen.....

          In Linux sind einige Aufgaben nur mit Root Rechten ausführbar... z.b Port 80 einstellen.... alle Ports unter 1024 geht nur mit Root, auf eine Hardwareschnitte zugreifen zur Laufzeit geht auch nur mit Root Rechten usw usw....

          Expect ist StdIn and StdOut - Shit in and Shit Out.. bei Dir also Ubuntu.... hab mit grad ein Image gebaut...

          Equilora

          1 Reply Last reply Reply Quote 0
          • ruhr70
            ruhr70 last edited by

            @equilora:

            In Linux sind einige Aufgaben nur mit Root Rechten ausführbar… z.b Port 80 einstellen.... alle Ports unter 1024 geht nur mit Root, auf eine Hardwareschnitte zugreifen zur Laufzeit geht auch nur mit Root Rechten usw usw....

            Expect ist StdIn and StdOut - Shit in and Shit Out.. bei Dir also Ubuntu.... hab mit grad ein Image gebaut...

            Equilora `

            Machst Du das eigentlich beruflich oder warum bist Du da so tief drin?

            1 Reply Last reply Reply Quote 0
            • lost in translation
              lost in translation last edited by

              Ist das mittlerweile gelöst?
              Ich würde ebenfalls in einem exec gerne sudo machen auf einen anderen user, damit scp funktioniert.

              ciao
              frank

              AlCalzone 1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer @lost in translation last edited by

                @lost-in-translation Wenn du eine halbwegs aktuelle Installation hast, musst du dem User iobroker erlauben, sich als der andere User anzumelden.

                Dazu legst du am besten in /etc/sudoers.d eine Datei ab, z.B. iobroker-scp oder so. Darin definierst du, dass iobroker ein bestimmtes Kommando als ein anderer User ausführen darf. Ich nenne diesen User hier mal frank:

                iobroker  ALL=(frank) NOPASSWD: /pfad/zu/scp
                

                Den vollständigen Pfad zur scp binary findest du per which scp.

                Zum Erstellen der Datei am besten visudo verwenden, weil da gleich eine Prüfung auf Syntaxfehler ausgeführt wird, die im schlimmsten Fall zu nicht-Funktionieren von sudo führen. Mehr Details hier:
                https://kofler.info/sudo-ohne-passwort/

                Ich empfehle, sonst nichts zu ändern. Die Berechtigungen sind extra so gewählt, dass das System möglichst sicher im Umgang mit root-Rechten ist.

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

                  Hallo,

                  ich habe auch (wieder) ein Problem mit den Rechten meiner Installation.
                  Es lief ca. 6 Monate, und jetzt seit 2 Monaten läuft es nicht mehr.
                  Ob es mit einem Update zusammenhängt oder andere Ursachen hat kann ich jetzt nicht mehr sagen.
                  Mir ist es erst jetzt aufgefallen.

                  Wenn jemand bei mir klingelt kopiere ich Snapshots der Kamera auf ein NAS.
                  mit dem Befehl

                  cp -r /opt/iobroker/iobroker-data/files/vis.0/main/snapshots/Set1/ /mnt/DS112/FOTO/Besucherfotos/2019/2019.08.06_14.19.11/
                  

                  Dieser wird wohl auch immer noch abgesetzt, aber nicht mehr korrekt umgesetzt. Denn die Fotos liegen zwar im iobroker, aber nicht auf dem NAS. (Die letzten wurden eben vor 2 Monaten raus kopiert)
                  Wenn ich den Befehl im putty eingebe (angemeldet als root), funktioniert es.
                  In der sudoers.d habe ich folgende Anpassung gemacht:

                  iobroker        ALL=(ALL) NOPASSWD: /opt/iobroker/iobroker-data/files/vis.0/main/snapshots/
                  

                  Das scheint aber nicht auszureichen. Es funktioniert trotzdem nicht.

                  Was kann ich noch tun?

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

                    Hat denn der User "iobroker" überhaupt Schreibrechte auf deinem NAS?

                    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():

                      In der sudoers.d habe ich folgende Anpassung gemacht:
                      iobroker ALL=(ALL) NOPASSWD: /opt/iobroker/iobroker-data/files/vis.0/main/snapshots/

                      In der sudoers.d musst du Befehle angeben, nicht Ordnerpfade. Überprüfe mal, was @SBorg gefragt hat. iobroker bzw. ein User mit der gleichen UID benötigt Schreibzugriff aufs NAS.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            541
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

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