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. ioBroker Allgemein
  4. IoBroker User, file ownership und permissions

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

IoBroker User, file ownership und permissions

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
6 Beiträge 4 Kommentatoren 3.3k Aufrufe
  • Ä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.
  • P Offline
    P Offline
    peer6969
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    eine Frage, die ich mir bei allen Installationsanleitungen und allen ioBroker Installationen, die mir bisher untergekommen sind gefragt habe ist: warum werden Zugriffsrechte immer nach dem Maximalprinzip verteilt? Ich versteh den Vorteil, denn so ist die Fehleranfälligkeit etwas geringer. Die Nachteile liegen allerdings auch auf der Hand. Wir wollen alle nicht, dass Unberechtigte Zugriff auf unseren ioBroker bekommen. Wir wollen außerdem nicht, dass die zum Teil doch recht wertvollen Passwörter und Zugangsdaten, die auf dem ioBroker-System liegen "verloren" gehen.

    Daher die Fragen: Warum laufen die ioBroker-Prozesse als root? Warum und wofür sind die Permissives 777 für /opt/iobroker notwendig? Meines Erachtens hätte man da schon einen erheblichen Sicherheitsgewinn, wenn ioBroker als non-root User ausgeführt würde und das /opt/iobroker nicht world writable wäre. Denn wer greift denn auf diesen Ordner zu? Eigentlich nur die Prozesse von ioBroker, die alle entweder als root oder eben als der konfigurierte ioBroker-User ausgeführt werden. Für 777 sehe ich daher keine Notwendigkeit, lasse mich aber gern aufklären.

    Um nicht nur zu kritisieren habe ich heute eine Installation auf Basis von CentOS 7 umgesetzt mit der ioBroker nicht mehr als root läuft. /opt/iobroker hat von mir 770 bekommen, damit läuft alles. 750 sollte auch gehen, aber in der ioBroker-Group ist ohnehin kein weiterer User. Ich habe außerdem Capabilites für Node hinzugefügt, damit die Netzwerkzugriffe und Zugriffe auf Systemressourcen funktionieren. Könnte man möglicherweise noch weiter einschränken, das war heute nur ein erster Versuch. Auch die zu installierenden Pakete können sicher noch ausgedünnt werden.

    Einige Fallstricke gibts auch noch. Nach einem ioBroker update && ioBroker upgrade bekommt /opt/iobroker wieder 777. Da muss man also jedes Mal nacharbeiten oder ein eigenes Skript nutzen. Außerdem wäre ein systemd-Service schöner, die Installation bringt aber ein init-script mit, daher hab ich es erstmal dabei belassen.

    Hier die Bash History meiner Installation. Daraus sollte sich auch relativ leicht eine Installation automatisieren lassen (für andere Linux-Distris als RHEL/CentOS und ggf. Fedora natürlich so nicht einsetzbar).

    # Before Installation add user (other than root) for access via ssh, deploy public keys and disable password login, 
    # disable root login and use formerly created user to su to root for this installation
    # Execute the following using root: 
    yes | yum update 
    curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
    yum -y install nodejs
    yum -y install gcc gcc-c++ make
    yum -y groupinstall "Development Tools"
    yum -y install python
    yum -y install avahi 
    yum -y install arpwatch
    yum -y install avahi-devel
    yum -y install avahi-tools
    yum -y install avahi-compat-*
    yum -y install libusb*
    yum -y install mariadb-server
    sudo setcap "cap_net_admin,cap_net_raw,cap_sys_rawio,cap_sys_resource+eip" /usr/bin/node
    adduser iobroker
    usermod -aG dialout iobroker
    mkdir /opt/iobroker
    chown iobroker:iobroker /opt/iobroker
    chmod -R 755 /opt/iobroker
    cd /opt/iobroker
    sudo -u iobroker npm install iobroker
    sudo -u iobroker npm install serialport
    ln -s /opt/iobroker/node_modules/iobroker/install/iobroker /usr/bin/iobroker
    cp /opt/iobroker/node_modules/iobroker/install/linux/iobroker.sh /etc/init.d/
    sed -i '/IOBROKERUSER=*/c\IOBROKERUSER=iobroker' /etc/init.d/iobroker.sh
    firewall-cmd --permanent --zone=public --add-port=8081/tcp
    # Add more ports, if necessary! This is only to make the web interface available.
    firewall-cmd --reload
    chown -R iobroker:iobroker /opt/iobroker
    sudo -u iobroker iobroker update
    sudo -u iobroker iobroker upgrade
    # After every update /opt/iobroker is chmodded 777\. Therefore we have to correct it this time and every time we run the upgrader
    chown -R iobroker:iobroker /opt/iobroker
    sudo -u iobroker chmod -r 770 /opt/iobroker
    sudo -u iobroker iobroker start
    
    

    Anschließend liefert ein ps folgendes und es werden keine iobroker Prozesse mehr als root ausgeführt:

    iobroker  71177  0.2  2.8 1233972 53140 ?       Ssl  18:06   0:18 iobroker.js-controller
    iobroker  71187  0.1  2.8 1095868 52396 ?       Sl   18:06   0:15 io.admin.0
    iobroker  71197  0.0  1.6 986472 30556 ?        Sl   18:06   0:02 io.discovery.0
    iobroker  71207  0.0  1.8 998552 34252 ?        Sl   18:06   0:02 io.web.0
    iobroker  71701  0.0  1.6 987036 30928 ?        Sl   19:08   0:01 io.ping.0
    iobroker  71711  0.1  2.2 1006560 42084 ?       Sl   19:08   0:05 io.javascript.0
    iobroker  71721  0.0  2.0 1000188 39104 ?       Sl   19:08   0:02 io.cloud.0
    iobroker  71907  0.0  1.9 1012512 36372 ?       Sl   19:14   0:02 io.yahka.0
    
    1 Antwort Letzte Antwort
    0
    • HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      Hallo und Willkommen im Forum,

      Als lernwilliger Linux-noob bin ich gerne bereit das zu testen.

      Hast du Adapter laufen, die auf den Serialport (GPIOs oder USB) zugreifen.

      Hier kam es am häufigsten zu Problemen.

      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 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        peer6969
        schrieb am zuletzt editiert von
        #3

        Guter Hinweis, vielen Dank!

        Habe ich soeben getestet, da gibts tatsächlich Fehler vom cul Adapter:

        Cannot open port: Error: Error: Permission denied, cannot open /dev/ttyS0
        
        

        Die mir momentan am einfachsten erscheinende Lösung ist wohl, iobroker der Gruppe dialout hinzuzufügen, ich passe da oben mal an.

        Damit scheint es zu funktionieren:

        maxcul.0	2017-07-12 21:06:37.940	info	serialPort /dev/ttyS0 is open!
        maxcul.0	2017-07-12 21:06:37.932	info	using serial device /dev/ttyS0@38400
        maxcul.0	2017-07-12 21:06:37.808	info	starting. Version 0.3.0 in /opt/iobroker/node_modules/iobroker.maxcul, node: v8.1.4
        

        Hast Du noch einen Tipp für einen Adapter, den ich speziell für USB testen könnte?

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

          @peer6969:

          Hast Du noch einen Tipp für einen Adapter, den ich speziell für USB testen könnte? `
          zwave kann mit speziellen USB-Sticks kommunizieren. Aber glaube, das ist für Linux kein Unterschied zu nem normalen Serialport.

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

          1 Antwort Letzte Antwort
          0
          • haus-automatisierungH Online
            haus-automatisierungH Online
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #5

            Gibt es hierzu schon etwas Neues?

            Irgendwie habe ich kein gutes Gefühl alles per root auszuführen und zu installieren. Ist zumindest sehr ungewohnt. ;)

            Läuft die Variante mit eigenem Benutzer und eigener Gruppe (wie oben beschrieben) mittlerweile problemlos?

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              peer6969
              schrieb am zuletzt editiert von
              #6

              Es funktioniert so wie beschrieben. Aber ich habe nicht jeden erdenklichen Adapter getestet. Für mich reicht es, da mag aber noch das ein oder andere zu debuggen sein.

              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
              FAQ Cloud / IOT
              HowTo: Node.js-Update
              HowTo: Backup/Restore
              Downloads
              BLOG

              820

              Online

              32.4k

              Benutzer

              81.5k

              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