weewx auf Pi 4 - Berechtigungsprobleme

Für allgemeine Software
Antworten
cradi
Offline
Beiträge: 7
Registriert: 27 Mär 2024, 21:27

weewx auf Pi 4 - Berechtigungsprobleme

#1

Beitrag von cradi »

Hallo,

ich betreibe weewx auf einem Pi 4 mit Pi OS Lite 64Bit.
Ich habe das System heute neu aufgesetzt und nach Anleitung auf weewx konfiguriert.
Als Skin verwende ich Belchertown, Hardwareanbindung über den Ecoowitt-Treiber (Froggit DP1500 mit WH3000SE). Aktuell läuft das ganze aber noch mit dem Simulator, da die Hardware nicht vollständig hier steht.

Beim testen/konfigurieren verwende ich
sudo weectl report run
um die Reportengine zu starten. Das klappt auch einwandfrei, aber wenn die Reports automatisch ablaufen erhalte ich Permisson denied Fehler
2024-03-27T21:35:15.820120+01:00 weewx weewxd[1006]: ERROR weewx.reportengine:         ****  PermissionError: [Errno 13] Keine Berechtigung: '/var/www/html/belchertown-dark.min.css'
2024-03-27T21:35:15.820208+01:00 weewx weewxd[1006]: ERROR weewx.reportengine:         ****  Generator terminated
2024-03-27T21:35:15.820817+01:00 weewx weewxd[1006]: Traceback (most recent call last):
2024-03-27T21:35:15.821385+01:00 weewx weewxd[1006]:   File "/usr/share/weewx/weewx/reportengine.py", line 220, in run
2024-03-27T21:35:15.821524+01:00 weewx weewxd[1006]:     obj.start()
2024-03-27T21:35:15.821649+01:00 weewx weewxd[1006]:   File "/usr/share/weewx/weewx/reportengine.py", line 409, in start
2024-03-27T21:35:15.821751+01:00 weewx weewxd[1006]:     self.run()
2024-03-27T21:35:15.821849+01:00 weewx weewxd[1006]:   File "/usr/share/weewx/weewx/reportengine.py", line 560, in run
2024-03-27T21:35:15.821956+01:00 weewx weewxd[1006]:     ncopy += weeutil.weeutil.deep_copy_path(path, html_dest_dir)
2024-03-27T21:35:15.822051+01:00 weewx weewxd[1006]:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-03-27T21:35:15.822178+01:00 weewx weewxd[1006]:   File "/usr/share/weewx/weeutil/weeutil.py", line 1811, in deep_copy_path
2024-03-27T21:35:15.822277+01:00 weewx weewxd[1006]:     shutil.copy(path, d)
2024-03-27T21:35:15.822368+01:00 weewx weewxd[1006]:   File "/usr/lib/python3.11/shutil.py", line 419, in copy
2024-03-27T21:35:15.822461+01:00 weewx weewxd[1006]:     copyfile(src, dst, follow_symlinks=follow_symlinks)
2024-03-27T21:35:15.822554+01:00 weewx weewxd[1006]:   File "/usr/lib/python3.11/shutil.py", line 258, in copyfile
2024-03-27T21:35:15.822645+01:00 weewx weewxd[1006]:     with open(dst, 'wb') as fdst:
2024-03-27T21:35:15.822767+01:00 weewx weewxd[1006]:          ^^^^^^^^^^^^^^^
2024-03-27T21:35:15.822864+01:00 weewx weewxd[1006]: PermissionError: [Errno 13] Keine Berechtigung: '/var/www/html/belchertown-dark.min.css'
Dieser Fehler kommt für einige Dateien aus dem Skin. Andere Skins habe ich nicht laufen.

Als Webserver nutze ich nginx.
In der weewx.conf habe ich alles so eingestellt, dass der Report in /var/www/html erzeugt wird, damit ich keinen Ordner in der URL angeben muss.

Hat dazu jemand eine Idee?

Gruß
Chirstian
cradi
Offline
Beiträge: 7
Registriert: 27 Mär 2024, 21:27

Re: weewx auf Pi 4 - Berechtigungsprobleme

#2

Beitrag von cradi »

Hallo,

es scheint, ich konnte mein Problem gestern noch lösen.
# set the permissions
sudo find /var/www/html/weewx -type d -exec chmod 2775 {} \;
sudo find /var/www/html/weewx -type f -exec chmod 664 {} \;
# set the owner and group
sudo chown -R weewx /var/www/html/weewx
sudo chgrp -R weewx /var/www/html/weewx
Über die Google Group und das Wiki habe ich das gefunden:

https://github.com/weewx/weewx/wiki/Und ... ermissions

Ich habe in den obigen Befehlen nur das Verzeichnis angepasst, weil ich direkt in "html" schreibe. Das hat vermutlich auch die Probleme verursacht.

Dann ist das Ergebnis hier zumindest für die Nachwelt dokumentiert.

Gruß
Christian
spitzmaus
Offline
Beiträge: 63
Registriert: 15 Mär 2023, 21:40
Wohnort: im mittelsächsischen Tiefland
Hat sich bedankt: 7 mal
Danksagung erhalten: 11 mal
Kontaktdaten:

Re: weewx auf Pi 4 - Berechtigungsprobleme

#3

Beitrag von spitzmaus »

Vielleicht sollte man noch anmerken, daß die Berechtigungsprobleme erst seit WeeWX-Version 5.0 auftreten. Seit dieser Version läuft WeeWX unter dem Benutzer "weewx" und hat damit keine Administratorenprivilegien mehr. Es gibt grundsätzlich zwei Verfahren, wie man damit umgehen kann:
  • Man ändert den Eigentümer oder die Gruppe der betroffenen Dateien und Verzeichnisse zu weewx.
  • Man nimmt den Nutzer weewx in die Gruppen auf, die den Dateien und Verzeichnissen zugeordnet sind. Dieses Verfahren wird insbesondere dann angewendet, wenn WeeWX auf USB-Schnittstellen oder serielle Schnittstellen zugreifen soll.
Es gibt eine Gruppe www-data, die hier zu passen scheint, aber /var/www/html gehört von Haus aus nicht dieser Gruppe sondern der Gruppe root. Das müßte man dann ändern, wenn man das zweite Verfahren auf die Webseiten anwenden will.
fanaticart
Offline
Beiträge: 1
Registriert: 28 Mär 2024, 15:04

Re: weewx auf Pi 4 - Berechtigungsprobleme

#4

Beitrag von fanaticart »

Hallo
wir betreiben eine Vantage2pro mit weewx5 und Belchertown
beim Wind haben wir die Echtzeitanzeige.
Gibt es einen Weg diese Böe in Echtzeit auch als Maxwert zu setzen? Denn der gespeicherte Maxwert ist um einiges geringer, wie der, der in Echtzeit ausgegeben wird.
Gruß
Flo
cradi
Offline
Beiträge: 7
Registriert: 27 Mär 2024, 21:27

Re: weewx auf Pi 4 - Berechtigungsprobleme

#5

Beitrag von cradi »

@spitzmaus,

vielen Dank für die Erläuterung. Das Problem mit den Berechtigungen entsteht nach meiner Beobachtung, wenn man beim ersten Einrichten nicht einmal geartet hat bis der Hintergrundjob die Verzeichnisse im www/html Verzeichnis angelegt hat.
Macht man das mit sudo weectl report run wird root zum Owner der Verzeichnisse, und damit kann der weewx-User nicht mehr drauf zugreifen.

Wartet man bis der Dienst die Verzeichnisse angelegt hat ist alles ok, und man kann auch mit sudo einen manuellen Lauf der Reports ausführen. Das braucht man ja nur bei der Entwicklung, weil Änderungen an den Dateien dann schneller sichtbar werden, und man nicht immer 5 Minuten Warten muss.

Gruß
Christian
Antworten