homebridge von init.d auf systemd umstellen

  • Ich habs einach mit copy and paste übernommen, ohne Nachdenken! Macht natürlich Sinn.

    Danke! funktioniert!!!!!


  • Vielleicht noch eine letzte Frage?

    Ich habe das Plugin config-ui-x plugin installiert um etwas komfortabler die config.json zu bearbeiten.

    Weiß das Plugin automatische wo die config.json jetzt liegt oder muss ich da noch was ändern.

    Und.... wie lösche ich den alten Speicherort und die darin enthaltene config.json?


  • 1. rm -rf /root/.homebridge

    klappt - nicht keine Berechtigung

    rm -rf /home/pi/.homebridge

    klappt

    ja, wenn die config stimmt

    config des Plugin? Da ist keine Verweis auf ein Verzeichnis drin.


  • das wars! Danke !

    War dann alles doch nicht sooo schwer!! ;)


  • Jetzt habe ich doch noch ein kleines Problem.


    Wenn ichjetzt über config-ui-x ein plugin installieren will bekomme ich folgende Fehlermeldung


    "USER: homebridge

    DIR: /usr/local/lib/node_modules

    CMD: sudo -E -n npm --no-update-notifier install --unsafe-perm homebridge-http@latest


    sudo: Ein Passwort ist notwendig


    Command failed. Please review log for details"


    Grundsätzliche Verständnisfrage: meine Homebrigde läuft nicht mehr unter dem user pi, sondern unter dem user homebridge?

    Da kann ich aber kein password vergeben (passwd homebridge)

    Also was muss ich tun um das Plugin installieren zu können?


  • Wo kommt das Passwort dann hin, oder wo gebe ich das ein. Ich habe, soweit ich weiß, gar kein Root Password vergeben. Ist das nicht so, dass standardmäßig gar kein Password für root vergeben ist?


  • Standardmäßig ist kein Root Pw vergeben das muss du selber anlegen.



    Und nochmal der Hinweis:


    Homebridge Befehlssammlung

  • "USER: homebridge

    DIR: /usr/local/lib/node_modules

    CMD: sudo -E -n npm --no-update-notifier install --unsafe-perm homebridge-http@latest


    sudo: Ein Passwort ist notwendig

    Hast du dem User homebridge die Rechte eingeräumt, sudo überhaupt benutzen zu dürfen?


    Lege die Datei /etc/sudoers.d/homebridge an mit diesem Inhalt:

    Code
    homebridge ALL=(root) SETENV:NOPASSWD: /usr/local/bin/npm, /bin/systemctl restart homebridge, /bin/journalctl, /usr/local/bin/node /usr/local/lib/node_modules/homebridge-config-ui-x/node_modules/nsp/bin/nsp check


    Hier wird festgelegt, das der User homebridge die Rechte hat, die oben aufgeführten Befehle mit root-Rechten auszuführen. Bitte achte darauf, dass die Pfade stimmen.


    Sollte das zu keinem Erfolg führen, dann gib dem User homebridge für alle Befehle die root-Rechte (unelegant, weil dicker Hammer auf kleinen Nagel). Gleiche Datei wie oben, aber mit diesem Inhalt:


    Code
    homebridge ALL=(ALL) SETENV:NOPASSWD: ALL


    Du kannst das testen, indem du dich als User homebridge auf dem Raspi einloggst und auf der Shell den Installationsbefehl sudo -E -n npm --no-update-notifier install --unsafe-perm homebridge-http@latest eingibst. Geht es dort ohne Passwort, dann kann's auch config-ui-x.


    Gruß

  • Nein, vermutlich habe ich dem user hombridge keine Rechte eingeräumt.


    Entschuldige bitte wenn ich nochmal nachfrage. Aber da meine homebridge jetzt eigentlich läuft, möchte ich, trotz Sicherung, vorsichtig an die Sache rangehen.


    mkdir /etc/sudoers.d/homebridge und dann den Inhalt einfügen mit


    sudo nano ~/etc/sudoers.d/homebridge ??

    Bitte achte darauf, dass die Pfade stimmen.

    Sind die Pfade Standart oder woher weiß ich ob die richtig sind?

    Du kannst das testen, indem du dich als User homebridge auf dem Raspi einloggst

    Dazu eine Verständnissfrage: Wie legen ich den überhaupt fest mit welchem user sich Rasbian überhaupt einloggt?

    Ist das beim Starten des Pi und des Betriebssystems nicht immer der userr pi????


  • Und zuletzt. was ist den der richtige Weg.

    Soll nach dem Starten der User pi, homebridge oder root angemeldet sein?


  • Nein, kein mkdir, sondern nur sudo nano ~/etc/sudoers.d/homebridge.


    Jaja, die Pfade. Standard. Das sprechen wir jetzt gemeinsam aus und dann lachen wir ein bisschen. Ich hab zwei Raspis und zwei Homebridges, und auf beiden sind die Pfade unterschiedlich. Es ist sehr wahrscheinlich, dass die Pfade in meiner obigen Konfiguration auch für dich stimmen. Man kann's aber auch vorher nachchecken mit:


    which npm (sollte so etwas wie /usr/local/bin/npm anzeigen)

    which node (sollte so etwas wie /usr/local/bin/node anzeigen)

    ls -l /usr/local/lib/node_modules/homebridge-config-ui-x/node_modules/nsp/bin/nsp (sollte eine Datei anzeigen)


    Entweder befinden sich das Zeugs in /usr/local/lib und /usr/local/bin oder aber in /usr/lib und /usr/bin. Mit which kann man das herausfinden.


    systemctl und journalctl sind immer in /bin.


    Was das starten von homebridge angeht: ich logge mich als pi ein und starte mit sudo systemctl start homebridge. Meine Homebridge wird aber unter dem User homebridge gestartet. Der User homebridge wird festgelegt in /etc/systemd/system/homebridge.service. Startest du per initd, dann wird er festgelegt in /etc/init.d/homebridge.


    Was das automatische Starten angeht - mit einfachen Worten: der Rechner wird sozusagen mit root-Rechten gestartet. Das heißt, dass alle Startskripte von root ausgeführt werden. Nur root darf beispielsweise einen Service starten, der auf einem Port < 1024 lauscht, beispielsweise einen Webserver auf Port 80 oder einen Mailserver auf Port 25. So einem wie pi ist derartiges Treiben verboten.


    Das ist sehr vereinfacht ausgedrückt, bessere Informationen liefert https://wiki.ubuntuusers.de/Bootvorgang/. Die wesentliche Aussage ist aber richtig: beim Booten werden die Startskripte von root ausgeführt.


    Was das manuelle Starten angeht: natürlich kann man sich auch als User homebridge einloggen und dann starten. Da würde es dann sogar ohne sudo gehen. Als root sollte man sich nicht einloggen können. Aber was interessieren die Homebridge-Szene schon krude Sicherheitsstandards auf Linuxmaschinen :rolleyes:. Sind hier natürlich auch nicht so wichtig, aber nur solange, bis das Wundertöchterchen vom Smartphone aus die Büchse hackt, weil das root-Passwort "geheim" lautet.


    Ich kann mich nur als pi einloggen, weil ich weder das Passwort für den User homebridge kenne noch das für root.


    Stefan

  • Danke erstmal für Deine Geduld und Deine Hilfe Stefan!

    Nein, kein mkdir, sondern nur sudo nano ~/etc/sudoers.d/homebridge

    Dann bekomme ich im Editor die Meldung:

    "Verzeichnis „/home/pi/etc/sudoers.d“ existiert nicht"

    Was das starten von homebridge angeht: ich logge mich als pi ein und starte mit sudo systemctl start homebridge. Meine Homebridge wird aber unter dem User homebridge gestartet. Der User homebridge wird festgelegt in /etc/systemd/system/homebridge.service


    Ich habe meine Homebrigde ja inzwischen auch auf systemed umgestellt.


    Die sollte dann ja eigentlich auch beim pi -Neustart automatisch mit "sudo systemctl start homebridge" starten

    which npm (sollte so etwas wie /usr/local/bin/npm anzeigen)

    Den Befehl kannte ich eigentlich, habe aber den Zusammenhang mit node und npm nicht erkannt!

    Ich kann mich nur als pi einloggen, weil ich weder das Passwort für den User homebridge kenne noch das für root

    So geht es mir auch und so soll es , wenn es nach mir geht, auch bleiben.


    Grüße


    Peter


  • Fünfmal gelesen, und immer noch falsch. Es muss natürlich heißen:

    nano /etc/sudoers.d/homebridge

  • Jetzt kam(!!):

    [ Verzeichnis „/etc/sudoers.d“ ist schreibgeschützt ] aber

    mit sudo davor hat´s geklappt :)


    Wenn ich jetzt zum Test eingebe:

    sudo -E -n npm --no-update-notifier install --unsafe-perm homebridge-http@latest kommt diese Meldung:


    "pi@mein-pi:~ $ sudo -E -n npm --no-update-notifier install --unsafe-perm homebri dge-http@latest

    npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.jso n'

    npm notice created a lockfile as package-lock.json. You should commit this file.

    npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json'

    npm WARN pi No description

    npm WARN pi No repository field.

    npm WARN pi No README data

    npm WARN pi No license field.


    + [email protected]

    added 59 packages from 64 contributors in 7.992s

    pi@mein-pi:~ $"


    Läuft da was falsch?


  • Wenn das 1zu1 das log ist, dann faellt mir da auf, dass steht package.jso n... kann da der Fehler liegen? Dass er die Datei nicht findet.



    Sent from my iPhone using Community

  • Ist 1 zu 1.

    Ist mir auch aufgefallen. Das ist wohl durch mein paste and copy entstanden.

    Die Meldung ist tatsächlich ohne diese Leerstellen (auch in Zeile 1 ist homebridge im Original zusammen geschrieben)

    Mir fehlen leider die Kenntnisse wo diese Fehlermeldung herkommt.


    Auf jeden Fall funktioniert im config-ui-x Plugin die Installation der Plugins und der Restart der Homebridge jetzt einwandfrei!

    Danke Stefan!