exec kann kein python ausführen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: exec kann kein python ausführen

Beitrag von peter-pan »

FrankH1 hat geschrieben: 28. Jan 2025 13:25 Also vereinfacht darf User openhabian das Drumherum und die Bestandteile ( Backup, mqtt etc) meines openhab-smarthomes bestimmen
...ja, wenn dein Standard-User so heisst; meiner heisst zur Zeit "hab4" und der openHAB-User heisst wohl bei allen "openhab", je nachdem wie du dein System aufgesetzt hast.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
udo1toni
Beiträge: 15242
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: exec kann kein python ausführen

Beitrag von udo1toni »

FrankH1 hat geschrieben: 28. Jan 2025 13:25 Also vereinfacht darf User openhabian das Drumherum und die Bestandteile ( Backup, mqtt etc) meines openhab-smarthomes bestimmen und User openhab den inneren Aufbau - also Things und Rules etc aber auch externe Aktionen wie die Ausführung eines Python-Scripts.
Es geht immer nur um Besitz und Rechte.
Wenn openHAB unter dem User openhab ausgeführt wird - was den Normalfall darstellt - dann muss der User openhab auf alle Dateien lesend zugreifen dürfen, die openHAB lesen können muss.
In gleicher Form muss der User openhab Schreibrechte an allen Dateien haben, auf die openHAB schreiben dürfen muss (z.B. die Logdateien, Konfigurationsdateien, die über die UI geändert werden können usw.)
Und im Beispiel oben war die auszuführende Datei an einem Platz gespeichert, auf den der User openhab keinen Zugriff hat - ein privates Verzeichnis eines anderen Users. Man hätte auch die Rechte dahingehend ändern können, dass der User openhab auf das Verzeichnis und dessen Inhalte zugreifen darf, aber das ist irgendwie von hinten durch die Brust ins Auge, vor allem, weil der User openhabian mit der Datei eigentlich gar nichts zu schaffen hat.

Um die Verwirrung jetzt auf die Spitze zu treiben (aber das ist echt wichtig!): die User openhab und openhabian (und viele andere User auch) sind lediglich "Namensschilder". Der "echte" User - genau wie die "echte" Gruppe - ist eine Zahl. Diese Zahl kann beim Erzeugen des Users vorgegeben werden - meist überlässt man es aber dem System, welche ID der User bekommt.
Als Folge davon können Besitzverhältnisse nach einem Restore verkehrt sein, obwohl beide beteiligten Systeme auf dem gleichen Image beruhen. Es ist also äußerst wichtig, nach einem Restore zu prüfen, ob die Daten wirklich openhab gehören.
openHAB bringt das Tool openhab-cli mit, welches mit der Option reset-ownership einfach allen Dateien, die per Definition dem User openhab gehören müssen die passende UID und GID zuweist. openhab-cli macht das anhand des Namens, so dass es egal ist, welche ID User und Gruppe auf dem aktuellen System tatsächlich haben. Möchte man mehrere Instanzen parallel nutzen und Daten hin und her schieben können, sollte man beim Einrichten des Systems darauf achten, dass alle Systeme das gleiche Mapping nutzen, sonst muss man ständig UID und GID anpassen.

Auf einem typischen System hat der User openhabian gewöhnlich UID 1000, während der User openhab z.B. 104 hat.
Die Gruppe openhab könnte evtl. die 113 haben, aber diese beiden sind definitiv nicht fix.
Dass openhabian die 1000 hat, liegt nur an der Tatsache, das es gewöhnlich der erste reguläre User ist, der auf dem System angelegt wird. Spätestens wenn man openHAB manuell aufsetzt und am Ende vielleicht schon andere User hat, die die IDs belegen, muss der User openhab eine andere ID verwenden. Der einzige User, dessen ID fix ist, ist der User root, der die ID 0 hat.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten