Homebridge auf mac mini mit Rechteproblem?

  • Hallo Forengemeinde,


    Auf meinem mac mini (OSX 10.14.5) der hier zuhause unter anderem auch als plex server läuft habe ich, so glaube ich jedenfalls, ein Problem mit den Zugriffsrechten, das Log erzeugt mir beim Start folgende Fehlermeldung:


    [9/20/2019, 10:43:43 PM] Loaded config.json with 0 accessories and 1 platforms.

    [9/20/2019, 10:43:43 PM] ---

    [9/20/2019, 10:43:43 PM] Loaded plugin: homebridge-config-ui-x

    [9/20/2019, 10:43:43 PM] Registering platform 'homebridge-config-ui-x.config'

    [9/20/2019, 10:43:43 PM] ---

    [9/20/2019, 10:43:43 PM] Loading 1 platforms...

    [9/20/2019, 10:43:43 PM] [Config] Initializing config platform...

    [9/20/2019, 10:43:43 PM] [Config] Spawning homebridge-config-ui-x with PID 508

    [9/20/2019, 10:43:43 PM] Loading 0 accessories...

    [9/20/2019, 10:43:43 PM] Error: EACCES: permission denied, open '/Users/bbuch/.homebridge/persist/AccessoryInfo.CC223DE3CE30.json'

    at Object.openSync (fs.js:443:3)

    at Object.writeFileSync (fs.js:1194:35)

    at LocalStorage.persistKeySync (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/node-persist/src/local-storage.js:476:16)

    at LocalStorage.setItemSync (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/node-persist/src/local-storage.js:277:14)

    at Object.nodePersist.setItemSync (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/node-persist/src/node-persist.js:99:29)

    at AccessoryInfo.save (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/model/AccessoryInfo.js:163:11)

    at Bridge.Accessory.publish (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:552:23)

    at Server._publish (/usr/local/lib/node_modules/homebridge/lib/server.js:132:16)

    at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:101:10)

    at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:59:10)

    [9/20/2019, 10:43:43 PM] Got SIGTERM, shutting down Homebridge...

    [9/20/2019, 10:43:43 PM] Error: EACCES: permission denied, open '/Users/benbuchloh/.homebridge/accessories/cachedAccessories'

    at Object.openSync (fs.js:443:3)

    at Object.writeFileSync (fs.js:1194:35)

    at LocalStorage.persistKeySync (/usr/local/lib/node_modules/homebridge/node_modules/node-persist/local-storage.js:457:12)

    at LocalStorage.setItemSync (/usr/local/lib/node_modules/homebridge/node_modules/node-persist/local-storage.js:275:14)

    at Server._updateCachedAccessories (/usr/local/lib/node_modules/homebridge/lib/server.js:581:20)

    at Server._teardown (/usr/local/lib/node_modules/homebridge/lib/server.js:586:8)

    at process.<anonymous> (/usr/local/lib/node_modules/homebridge/lib/cli.js:44:14)

    at process.emit (events.js:198:13)

    [9/20/2019, 10:43:49 PM] [Config] Homebridge Config UI X v4.6.1 is listening on :: port 8080


    Kann jemand helfen und weiß was zu tun ist?

    Danke und beste Grüße!


  • Wahrscheinlich weiß ich das 8). Mir fehlt aber weiterer Input zu einer glasklaren, eisenharten Analyse und Fehlerbehebung.


    Hier soll eine Datei geschrieben werden, was aber nicht erlaubt ist:

    Error: EACCES: permission denied, open '/Users/bbuch/.homebridge/persist/AccessoryInfo.CC223DE3CE30.json'


    Soll heißen: im Homeverzeichnis des Users bbuch soll im Unterverzeichnis .homebridge eine Datei im Ordner persist angelegt werden. Das sollte funktionieren, solange es der User bbuch ist, der die Homebridge startet. Input 1: wer startet die Homebridge und wie tut er das? Die Antwort "ich tue das und das möglichst heimlich" ist nicht ausreichend. Ich erwarte so etwas wie "ich bin eingeloggt als User bbuch und tippe im Terminal den Befehl homebridge ein, den ich mit einem beherzten Schlag auf die Entertaste zur Ausführung bringe" oder so.


    Wenn bbuch also die Homebridge startet, dann brauche ich Input 2: wie sehen die Rechte des Ordners .homebridge aus, was du ermitteln kannst mit dem Befehl ls -la /Users/bbuch/.homebridge . Den Output würde ich dann gern hier sehen.


    Weiter unten wird's dann interessanter. Wieder soll eine Datei geschrieben werden, aber nicht die, die oben schon Ärger gemacht hat:

    [9/20/2019, 10:43:43 PM] Error: EACCES: permission denied, open '/Users/benbuchloh/.homebridge/accessories/cachedAccessories'


    Öhm. Hier soll in das Homeverzeichnis des Users benbuchloh geschrieben werden. Verboten. Aber wie kommt es dazu, dass plötzlich ein weiterer User im Spiel ist? Das ist hochgradig unüblich. Da könnte möglicherweise Input 3 helfen: was steht denn in deiner config.json?


    Danke im Voraus für deine kompromisslose Zusammenarbeit ;)


    Stefan

  • :)

    Also, es gibt natürlich nur einen User mit dem ich angemeldet bin, der heisst benbuchloh und der startet mit einem Script bei Systemstart die Homebridge (den anderen User habe ich beim bearbeiten des Textes mit dicken Fingern auf dem iPad produziert), das sieht in etwa so aus:


    Code
    tell application "Terminal"
    activate
    do script "sudo homebridge"
    delay 1 -- pause for a second
    do script "passwort" in front window
    end tell


    Die Rechte des Homebridge Ordners sehen so aus, ich muss allerdings dazu sagen, dass ich mit größtmöglicher Inkompetenz und Furchtlosigkeit schon an den Rechten herumgeschraubt hatte da ich das Problem ja vermeintlich identifiziert hatte (Hausfrauenmethode: über Informationen > Teilen und Zugriffsrechte einfach mal alle Lesen und Schreiben...)


    bensminiserver:~ benbuchloh$ ls -la /Users/benbuchloh/.homebridge

    total 64

    drwxrwxrwx 11 benbuchloh staff 352 21 Sep 00:29 .

    drwxr-xr-x+ 32 benbuchloh staff 1024 21 Sep 00:44 ..

    -rw-rw-r--@ 1 benbuchloh staff 6148 20 Sep 23:57 .DS_Store

    -rw-rw-r-- 1 benbuchloh staff 81 20 Sep 22:03 .uix-secrets

    drwxrwxrwx 3 benbuchloh staff 96 20 Sep 21:53 accessories

    -rw-rw-r--@ 1 benbuchloh staff 359 20 Sep 22:03 auth.json

    -rw-r--r-- 1 root staff 640 21 Sep 00:29 config.json

    -rw-rw-rw-@ 1 benbuchloh staff 502 20 Sep 23:41 config.json.1569018358631

    -rw-r--r-- 1 root staff 574 21 Sep 00:25 config.json.1569018585221

    -rw-rw-r-- 1 benbuchloh staff 2648 20 Sep 22:43 logfile.log

    drwxrwxrwx 4 benbuchloh staff 128 20 Sep 21:52 persist


    Meine Config schaut im Moment so aus, hier fällt mir aber auch gerade auf, dass ich die gar nicht bearbeiten darf, das System meldet mit hier auch fehlende Schreibrechte, bei der Installation und Erstellung der config habe ich das ebenfalls mit oben beschriebener Hausfrauenmethode zumindestens temporär umgehen können:



    Danke schonmal für deine Mühe!:thumbup:

  • Ich würde die Homebridge nicht mit sudo homebridge aufrufen, sondern ohne sudo. Außerdem würde ich ihr den kompletten Pfad zum homebridge-Verzeichnis mitgeben und sie außerdem im insecure-Modus starten. Also so:


    homebridge -I -U /Users/benbuchloh/.homebridge


    Außerdem würde ich im Terminal diese drei Befehle eingeben, um die Dateirechte wieder hübsch zu machen:


    sudo find /Users/benbuchloh/.homebridge -type d -exec chmod 755 {} \;

    sudo find /Users/benbuchloh/.homebridge -type f -exec chmod 644 {} \;

    sudo chmod 755 /Users/benbuchloh/.homebridge


    Dann änderst du für alle Dateien den Besitzer. Es gehören nämlich nicht alle dem Benutzer benbuchloh. Beispielsweise gehört config.json dem Benutzer root. Das sollte nicht so sein, weil benbuchloh darf dann nicht mehr dort hineinschreiben. Also:


    sudo chown -R benbuchloh /Users/benbuchloh/.homebridge

    (Wahrscheinlich löst dieser Befehl allein schon all deine Probleme)


    Ich schätze, dass es dann geht. Das Problem wird erzeugt, wenn man homebridge mit sudo startet, dann werden nämlich die Dateien als mit root-Rechten angelegt.


    Stefan